diff --git a/src/locales/en.ts b/src/locales/en.ts index dfd5f2e..89ada89 100644 --- a/src/locales/en.ts +++ b/src/locales/en.ts @@ -324,6 +324,8 @@ export const en = { create: "Create Tag", createTitle: "Create Tag", editTitle: "Edit Tag", + deleteTitle: "Delete Tag", + deleteConfirmMessage: (name: string) => `Are you sure you want to delete ${name}?`, searchPlaceholder: "Search tags...", nameLabel: "Tag Name", namePlaceholder: "e.g. Design", diff --git a/src/locales/fa.ts b/src/locales/fa.ts index a97677c..ed4318b 100644 --- a/src/locales/fa.ts +++ b/src/locales/fa.ts @@ -321,6 +321,8 @@ export const fa = { create: "ایجاد تگ", createTitle: "ایجاد تگ", editTitle: "ویرایش تگ", + deleteTitle: "حذف تگ", + deleteConfirmMessage: (name: string) => `آیا از حذف ${name} اطمینان دارید؟`, searchPlaceholder: "جست‌وجوی تگ‌ها...", nameLabel: "نام تگ", namePlaceholder: "مثلاً طراحی", diff --git a/src/pages/Tags.tsx b/src/pages/Tags.tsx index ed350a2..66215c7 100644 --- a/src/pages/Tags.tsx +++ b/src/pages/Tags.tsx @@ -36,6 +36,7 @@ export default function Tags() { const [formName, setFormName] = useState(""); const [formColor, setFormColor] = useState(DEFAULT_COLOR); const [isSaving, setIsSaving] = useState(false); + const [deleteModal, setDeleteModal] = useState<{ isOpen: boolean; tag: Tag | null }>({ isOpen: false, tag: null }); const orderingOptions = [ { value: "-updated_at", label: t.ordering?.updatedAtDesc || "Recently Updated" }, @@ -191,7 +192,12 @@ export default function Tags() { )} {canDeleteTag && ( - )} @@ -250,6 +256,37 @@ export default function Tags() { + + {deleteModal.tag && ( + setDeleteModal({ isOpen: false, tag: null })} + title={t.tags?.deleteTitle || "Delete Tag"} + maxWidth="max-w-md" + footer={ + <> + + + + } + > +

+ {(t.tags?.deleteConfirmMessage as ((name: string) => string) | undefined)?.(deleteModal.tag.name) || + `Are you sure you want to delete "${deleteModal.tag.name}"?`} +

+
+ )} ); }