From 759bc621d53af6fef96ff681634f1592f6269d8c Mon Sep 17 00:00:00 2001 From: AmirHossein Mahmoodi Date: Sun, 23 Feb 2025 13:33:21 +0000 Subject: [PATCH] Feature/amiriis add units --- .../{receipt/damages => damage-items}/page.js | 2 +- .../Actions/Create/Form/CreateFormContent.jsx | 0 .../Actions/Create/Form/index.jsx | 0 .../Actions/Create/index.jsx | 0 .../damages => damageItems}/DamagesList.jsx | 0 .../RowActions/Activity/index.jsx | 0 .../RowActions/Edit/Form/index.jsx | 0 .../RowActions/Edit/index.jsx | 0 .../RowActions/index.jsx | 0 .../damages => damageItems}/Toolbar.jsx | 0 .../damages => damageItems}/index.jsx | 0 src/core/utils/pageMenu.js | 2 +- src/lib/hooks/usePersianInput.js | 49 +++++++++++++++++++ 13 files changed, 51 insertions(+), 2 deletions(-) rename src/app/(withAuth)/dashboard/{receipt/damages => damage-items}/page.js (80%) rename src/components/dashboard/{receipt/damages => damageItems}/Actions/Create/Form/CreateFormContent.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/Actions/Create/Form/index.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/Actions/Create/index.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/DamagesList.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/RowActions/Activity/index.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/RowActions/Edit/Form/index.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/RowActions/Edit/index.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/RowActions/index.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/Toolbar.jsx (100%) rename src/components/dashboard/{receipt/damages => damageItems}/index.jsx (100%) create mode 100644 src/lib/hooks/usePersianInput.js 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