"use client";

import { useEffect } from "react";

export default function DisableInspect() {
  useEffect(() => {
    const disableRightClick = (e: MouseEvent) => {
      e.preventDefault();
    };

    const disableKeys = (e: KeyboardEvent) => {
      const key = e.key.toLowerCase();

      // F12
      if (e.key === "F12") {
        e.preventDefault();
        return false;
      }

      // Ctrl + Shift + I / J / C
      if (e.ctrlKey && e.shiftKey && ["i", "j", "c"].includes(key)) {
        e.preventDefault();
        return false;
      }

      // Ctrl + U
      if (e.ctrlKey && key === "u") {
        e.preventDefault();
        return false;
      }

      // Ctrl + S
      if (e.ctrlKey && key === "s") {
        e.preventDefault();
        return false;
      }
    };

    const disableDrag = (e: DragEvent) => {
      e.preventDefault();
    };

    const disableSelect = (e: Event) => {
      e.preventDefault();
    };

    document.addEventListener("contextmenu", disableRightClick);
    document.addEventListener("keydown", disableKeys);
    document.addEventListener("dragstart", disableDrag);
    document.addEventListener("selectstart", disableSelect);

    return () => {
      document.removeEventListener("contextmenu", disableRightClick);
      document.removeEventListener("keydown", disableKeys);
      document.removeEventListener("dragstart", disableDrag);
      document.removeEventListener("selectstart", disableSelect);
    };
  }, []);

  return null;
}