diff --git a/src/app/(withAuth)/dashboard/receipt/damages/page.js b/src/app/(withAuth)/dashboard/damage-items/page.js similarity index 80% rename from src/app/(withAuth)/dashboard/receipt/damages/page.js rename to src/app/(withAuth)/dashboard/damage-items/page.js index 7310363..23e0190 100644 --- a/src/app/(withAuth)/dashboard/receipt/damages/page.js +++ b/src/app/(withAuth)/dashboard/damage-items/page.js @@ -1,4 +1,4 @@ -import DamagesPage from "@/components/dashboard/receipt/damages"; +import DamagesPage from "@/components/dashboard/damageItems"; import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { diff --git a/src/components/dashboard/receipt/damages/Actions/Create/Form/CreateFormContent.jsx b/src/components/dashboard/damageItems/Actions/Create/Form/CreateFormContent.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/Actions/Create/Form/CreateFormContent.jsx rename to src/components/dashboard/damageItems/Actions/Create/Form/CreateFormContent.jsx diff --git a/src/components/dashboard/receipt/damages/Actions/Create/Form/index.jsx b/src/components/dashboard/damageItems/Actions/Create/Form/index.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/Actions/Create/Form/index.jsx rename to src/components/dashboard/damageItems/Actions/Create/Form/index.jsx diff --git a/src/components/dashboard/receipt/damages/Actions/Create/index.jsx b/src/components/dashboard/damageItems/Actions/Create/index.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/Actions/Create/index.jsx rename to src/components/dashboard/damageItems/Actions/Create/index.jsx diff --git a/src/components/dashboard/receipt/damages/DamagesList.jsx b/src/components/dashboard/damageItems/DamagesList.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/DamagesList.jsx rename to src/components/dashboard/damageItems/DamagesList.jsx diff --git a/src/components/dashboard/receipt/damages/RowActions/Activity/index.jsx b/src/components/dashboard/damageItems/RowActions/Activity/index.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/RowActions/Activity/index.jsx rename to src/components/dashboard/damageItems/RowActions/Activity/index.jsx diff --git a/src/components/dashboard/receipt/damages/RowActions/Edit/Form/index.jsx b/src/components/dashboard/damageItems/RowActions/Edit/Form/index.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/RowActions/Edit/Form/index.jsx rename to src/components/dashboard/damageItems/RowActions/Edit/Form/index.jsx diff --git a/src/components/dashboard/receipt/damages/RowActions/Edit/index.jsx b/src/components/dashboard/damageItems/RowActions/Edit/index.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/RowActions/Edit/index.jsx rename to src/components/dashboard/damageItems/RowActions/Edit/index.jsx diff --git a/src/components/dashboard/receipt/damages/RowActions/index.jsx b/src/components/dashboard/damageItems/RowActions/index.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/RowActions/index.jsx rename to src/components/dashboard/damageItems/RowActions/index.jsx diff --git a/src/components/dashboard/receipt/damages/Toolbar.jsx b/src/components/dashboard/damageItems/Toolbar.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/Toolbar.jsx rename to src/components/dashboard/damageItems/Toolbar.jsx diff --git a/src/components/dashboard/receipt/damages/index.jsx b/src/components/dashboard/damageItems/index.jsx similarity index 100% rename from src/components/dashboard/receipt/damages/index.jsx rename to src/components/dashboard/damageItems/index.jsx diff --git a/src/core/utils/pageMenu.js b/src/core/utils/pageMenu.js index 19d7689..05dee59 100644 --- a/src/core/utils/pageMenu.js +++ b/src/core/utils/pageMenu.js @@ -477,7 +477,7 @@ export const pageMenu = [ id: "damageItems", label: "آیتم خسارات", type: "page", - route: "/dashboard/receipt/damages", + route: "/dashboard/damage-items", icon: , permissions: ["manage-damage"], }, diff --git a/src/lib/hooks/usePersianInput.js b/src/lib/hooks/usePersianInput.js new file mode 100644 index 0000000..069606f --- /dev/null +++ b/src/lib/hooks/usePersianInput.js @@ -0,0 +1,49 @@ +import { useEffect } from 'react'; +function usePersianInput(inputRef, onChange) { + useEffect(() => { + const input = inputRef.current; + if (!input) return; + + const handleInput = (event) => { + const originalValue = event.target.value; + const filteredValue = originalValue.replace(/[A-Za-z]/g, ''); + if (filteredValue !== originalValue) { + event.target.value = filteredValue; + if (onChange) { + onChange(filteredValue); + } + } else if (onChange) { + onChange(originalValue); + } + }; + + const handleKeyDown = (event) => { + const controlKeys = [ + 'Backspace', + 'Delete', + 'Tab', + 'Escape', + 'Enter', + 'ArrowLeft', + 'ArrowRight', + 'ArrowUp', + 'ArrowDown' + ]; + if (controlKeys.includes(event.key)) return; + + if (/[A-Za-z]/.test(event.key)) { + event.preventDefault(); + } + }; + + input.addEventListener('input', handleInput); + input.addEventListener('keydown', handleKeyDown); + + return () => { + input.removeEventListener('input', handleInput); + input.removeEventListener('keydown', handleKeyDown); + }; + }, [inputRef, onChange]); +} + +export default usePersianInput; \ No newline at end of file