diff --git a/web/src/components/MemoActionMenu/MemoActionMenu.tsx b/web/src/components/MemoActionMenu/MemoActionMenu.tsx
index afe2c0ce2..aaa6d386d 100644
--- a/web/src/components/MemoActionMenu/MemoActionMenu.tsx
+++ b/web/src/components/MemoActionMenu/MemoActionMenu.tsx
@@ -8,7 +8,6 @@ import {
FileTextIcon,
LinkIcon,
MoreVerticalIcon,
- SquareCheckIcon,
TrashIcon,
} from "lucide-react";
import { useState } from "react";
@@ -25,7 +24,6 @@ import {
} from "@/components/ui/dropdown-menu";
import { State } from "@/types/proto/api/v1/common_pb";
import { useTranslate } from "@/utils/i18n";
-import { hasCompletedTasks } from "@/utils/markdown-manipulation";
import { useMemoActionHandlers } from "./hooks";
import type { MemoActionMenuProps } from "./types";
@@ -35,10 +33,8 @@ const MemoActionMenu = (props: MemoActionMenuProps) => {
// Dialog state
const [deleteDialogOpen, setDeleteDialogOpen] = useState(false);
- const [removeTasksDialogOpen, setRemoveTasksDialogOpen] = useState(false);
// Derived state
- const hasCompletedTaskList = hasCompletedTasks(memo.content);
const isComment = Boolean(memo.parent);
const isArchived = memo.state === State.ARCHIVED;
@@ -51,13 +47,10 @@ const MemoActionMenu = (props: MemoActionMenuProps) => {
handleCopyContent,
handleDeleteMemoClick,
confirmDeleteMemo,
- handleRemoveCompletedTaskListItemsClick,
- confirmRemoveCompletedTaskListItems,
} = useMemoActionHandlers({
memo,
onEdit: props.onEdit,
setDeleteDialogOpen,
- setRemoveTasksDialogOpen,
});
return (
@@ -107,14 +100,6 @@ const MemoActionMenu = (props: MemoActionMenuProps) => {
{/* Write actions (non-readonly) */}
{!readonly && (
<>
- {/* Remove completed tasks (non-archived, non-comment, has completed tasks) */}
- {!isArchived && !isComment && hasCompletedTaskList && (
-
-
- {t("memo.remove-completed-task-list-items")}
-
- )}
-
{/* Archive/Restore (non-comment) */}
{!isComment && (
@@ -143,17 +128,6 @@ const MemoActionMenu = (props: MemoActionMenuProps) => {
onConfirm={confirmDeleteMemo}
confirmVariant="destructive"
/>
-
- {/* Remove completed tasks confirmation */}
-
);
};
diff --git a/web/src/components/MemoActionMenu/hooks.ts b/web/src/components/MemoActionMenu/hooks.ts
index 18db5b28d..67a889f36 100644
--- a/web/src/components/MemoActionMenu/hooks.ts
+++ b/web/src/components/MemoActionMenu/hooks.ts
@@ -11,16 +11,14 @@ import { handleError } from "@/lib/error";
import { State } from "@/types/proto/api/v1/common_pb";
import type { Memo } from "@/types/proto/api/v1/memo_service_pb";
import { useTranslate } from "@/utils/i18n";
-import { removeCompletedTasks } from "@/utils/markdown-manipulation";
interface UseMemoActionHandlersOptions {
memo: Memo;
onEdit?: () => void;
setDeleteDialogOpen: (open: boolean) => void;
- setRemoveTasksDialogOpen: (open: boolean) => void;
}
-export const useMemoActionHandlers = ({ memo, onEdit, setDeleteDialogOpen, setRemoveTasksDialogOpen }: UseMemoActionHandlersOptions) => {
+export const useMemoActionHandlers = ({ memo, onEdit, setDeleteDialogOpen }: UseMemoActionHandlersOptions) => {
const t = useTranslate();
const location = useLocation();
const navigateTo = useNavigateTo();
@@ -108,23 +106,6 @@ export const useMemoActionHandlers = ({ memo, onEdit, setDeleteDialogOpen, setRe
memoUpdatedCallback();
}, [memo.name, t, isInMemoDetailPage, navigateTo, memoUpdatedCallback, deleteMemo]);
- const handleRemoveCompletedTaskListItemsClick = useCallback(() => {
- setRemoveTasksDialogOpen(true);
- }, [setRemoveTasksDialogOpen]);
-
- const confirmRemoveCompletedTaskListItems = useCallback(async () => {
- const newContent = removeCompletedTasks(memo.content);
- await updateMemo({
- update: {
- name: memo.name,
- content: newContent,
- },
- updateMask: ["content"],
- });
- toast.success(t("message.remove-completed-task-list-items-successfully"));
- memoUpdatedCallback();
- }, [memo.name, memo.content, t, memoUpdatedCallback, updateMemo]);
-
return {
handleTogglePinMemoBtnClick,
handleEditMemoClick,
@@ -133,7 +114,5 @@ export const useMemoActionHandlers = ({ memo, onEdit, setDeleteDialogOpen, setRe
handleCopyContent,
handleDeleteMemoClick,
confirmDeleteMemo,
- handleRemoveCompletedTaskListItemsClick,
- confirmRemoveCompletedTaskListItems,
};
};
diff --git a/web/src/locales/ar.json b/web/src/locales/ar.json
index 3d36eebb1..1254aeacf 100644
--- a/web/src/locales/ar.json
+++ b/web/src/locales/ar.json
@@ -152,8 +152,6 @@
"no-archived-memos": "لا يوجد مذكرات مؤرشفة",
"no-memos": "لا يوجد مذكرات.",
"order-by": "ترتيب حسب",
- "remove-completed-task-list-items": "إزالة المنجز",
- "remove-completed-task-list-items-confirm": "هل أنت متأكد أنك تريد إزالة جميع المهام المنجزة؟ (هذه العملية لا يمكن التراجع عنها)",
"search-placeholder": "ابحث عن مذكرة...",
"show-less": "عرض أقل",
"show-more": "عرض المزيد",
@@ -183,7 +181,6 @@
"no-data": "لا توجد بيانات.",
"password-changed": "تم تغيير كلمة المرور",
"password-not-match": "كلمات المرور غير متطابقة.",
- "remove-completed-task-list-items-successfully": "تمت الإزالة بنجاح",
"restored-successfully": "تمت الاستعادة بنجاح",
"succeed-copy-link": "تم نسخ الرابط بنجاح.",
"update-succeed": "تم التحديث بنجاح",
diff --git a/web/src/locales/ca.json b/web/src/locales/ca.json
index 08561c989..cd1f714f4 100644
--- a/web/src/locales/ca.json
+++ b/web/src/locales/ca.json
@@ -152,8 +152,6 @@
"no-archived-memos": "No hi ha notes arxivades.",
"no-memos": "No hi ha notes.",
"order-by": "Ordena per",
- "remove-completed-task-list-items": "Elimina fets",
- "remove-completed-task-list-items-confirm": "Estàs segur que vols eliminar totes les tasques completades? AQUESTA ACCIÓ ÉS IRREVERSIBLE",
"search-placeholder": "Cerca notes...",
"show-less": "Mostra menys",
"show-more": "Mostra més",
@@ -183,7 +181,6 @@
"no-data": "No s'han trobat dades.",
"password-changed": "Contrasenya canviada",
"password-not-match": "Les contrasenyes no coincideixen.",
- "remove-completed-task-list-items-successfully": "Eliminació correcta",
"restored-successfully": "Restaurat correctament",
"succeed-copy-link": "Enllaç copiat correctament.",
"update-succeed": "Actualització correcta",
diff --git a/web/src/locales/cs.json b/web/src/locales/cs.json
index 7c70388dd..80d9b9d14 100644
--- a/web/src/locales/cs.json
+++ b/web/src/locales/cs.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Žádné archivované poznámky.",
"no-memos": "Žádné poznámky.",
"order-by": "Řadit dle",
- "remove-completed-task-list-items": "Odstranit dokončené",
- "remove-completed-task-list-items-confirm": "Jste si jisti, že chcete odstranit všechny dokončené úkoly? TATO AKCE JE NEVRATNÁ",
"search-placeholder": "Hledat poznámky...",
"show-less": "Zobrazit méně",
"show-more": "Zobrazit více",
@@ -181,7 +179,6 @@
"no-data": "Nebyly nalezeny žádné údaje.",
"password-changed": "Heslo změněno",
"password-not-match": "Hesla nesouhlasí.",
- "remove-completed-task-list-items-successfully": "Úspěšně odstraněno",
"restored-successfully": "Úspěšně obnoveno",
"succeed-copy-link": "Odkaz byl úspěšně zkopírován.",
"update-succeed": "Aktualizace proběhla úspěšně",
diff --git a/web/src/locales/de.json b/web/src/locales/de.json
index 09ca62cf1..70eaff34c 100644
--- a/web/src/locales/de.json
+++ b/web/src/locales/de.json
@@ -169,8 +169,6 @@
"no-archived-memos": "Keine archivierten Notizen.",
"no-memos": "Keine Notizen.",
"order-by": "Sortieren nach",
- "remove-completed-task-list-items": "Erledigte entfernen",
- "remove-completed-task-list-items-confirm": "Sind Sie sicher, dass Sie alle abgeschlossenen Aufgaben entfernen möchten?\n\nDIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN.",
"search-placeholder": "Notizen durchsuchen...",
"show-less": "Weniger anzeigen",
"show-more": "Mehr anzeigen",
@@ -198,7 +196,6 @@
"no-data": "Keine Daten gefunden.",
"password-changed": "Passwort geändert",
"password-not-match": "Passwörter stimmen nicht überein.",
- "remove-completed-task-list-items-successfully": "Erfolgreich entfernt!",
"restored-successfully": "Erfolgreich wiederhergestellt",
"succeed-copy-content": "Inhalt erfolgreich kopiert.",
"succeed-copy-link": "Link erfolgreich kopiert",
diff --git a/web/src/locales/en.json b/web/src/locales/en.json
index 199d26e65..51fbffb55 100644
--- a/web/src/locales/en.json
+++ b/web/src/locales/en.json
@@ -168,8 +168,6 @@
"no-archived-memos": "No archived memos.",
"no-memos": "No memos.",
"order-by": "Order By",
- "remove-completed-task-list-items": "Remove done",
- "remove-completed-task-list-items-confirm": "Are you sure you want to remove all completed to-dos? THIS ACTION IS IRREVERSIBLE",
"search-placeholder": "Search memos...",
"show-less": "Show less",
"show-more": "Show more",
@@ -199,7 +197,6 @@
"no-data": "No data found.",
"password-changed": "Password Changed",
"password-not-match": "Passwords do not match.",
- "remove-completed-task-list-items-successfully": "The removal was successful",
"restored-successfully": "Restored successfully",
"succeed-copy-content": "Content copied successfully.",
"succeed-copy-link": "Link copied successfully.",
diff --git a/web/src/locales/es.json b/web/src/locales/es.json
index 73896d773..8744b13fd 100644
--- a/web/src/locales/es.json
+++ b/web/src/locales/es.json
@@ -150,8 +150,6 @@
"no-archived-memos": "No hay memos archivados.",
"no-memos": "No hay memos.",
"order-by": "Ordenar por",
- "remove-completed-task-list-items": "Eliminar completados",
- "remove-completed-task-list-items-confirm": "¿Estás seguro de que quieres eliminar todas las tareas completadas? ESTA ACCIÓN ES IRREVERSIBLE",
"search-placeholder": "Buscar memos...",
"show-less": "Mostrar menos",
"show-more": "Mostrar más",
@@ -179,7 +177,6 @@
"no-data": "No se encontraron datos.",
"password-changed": "Contraseña cambiada",
"password-not-match": "Las contraseñas no coinciden.",
- "remove-completed-task-list-items-successfully": "¡Eliminado con éxito!",
"restored-successfully": "Restaurado con éxito",
"succeed-copy-link": "Enlace copiado correctamente.",
"update-succeed": "Actualización exitosa",
diff --git a/web/src/locales/fa.json b/web/src/locales/fa.json
index 8c5cf6638..5d8f1b1ef 100644
--- a/web/src/locales/fa.json
+++ b/web/src/locales/fa.json
@@ -138,8 +138,6 @@
"no-archived-memos": "یادداشت آرشیو شدهای وجود ندارد.",
"no-memos": "یادداشتی یافت نشد.",
"order-by": "مرتبسازی بر اساس",
- "remove-completed-task-list-items": "حذف کارهای انجام شده",
- "remove-completed-task-list-items-confirm": "آیا از حذف همه کارهای انجام شده اطمینان دارید؟ این عمل غیرقابل بازگشت است",
"search-placeholder": "جستجوی یادداشتها...",
"show-less": "نمایش کمتر",
"show-more": "نمایش بیشتر",
@@ -160,7 +158,6 @@
"description-is-required": "توضیحات اجباری است",
"failed-to-embed-memo": "درج یادداشت ناموفق بود",
"fill-all-required-fields": "لطفا همه فیلدهای ضروری را پر کنید",
- "remove-completed-task-list-items-successfully": "حذف با موفقیت انجام شد",
"update-succeed": "بروزرسانی موفق بود",
"restored-successfully": "با موفقیت بازیابی شد"
},
diff --git a/web/src/locales/fr.json b/web/src/locales/fr.json
index 54098ed11..3a4919e51 100644
--- a/web/src/locales/fr.json
+++ b/web/src/locales/fr.json
@@ -170,8 +170,6 @@
"no-archived-memos": "Aucune note archivée.",
"no-memos": "Aucune note.",
"order-by": "Trier par",
- "remove-completed-task-list-items": "Supprimer les tâches terminées",
- "remove-completed-task-list-items-confirm": "Êtes-vous sûr de vouloir supprimer toutes les tâches terminées ? CETTE ACTION EST IRRÉVERSIBLE",
"search-placeholder": "Rechercher des notes...",
"show-less": "Afficher moins",
"show-more": "Afficher plus",
@@ -199,7 +197,6 @@
"no-data": "Aucune donnée trouvée.",
"password-changed": "Mot de passe modifié",
"password-not-match": "Les mots de passe ne correspondent pas.",
- "remove-completed-task-list-items-successfully": "Suppression réussie",
"restored-successfully": "Restauré avec succès",
"succeed-copy-content": "Contenu copié avec succès.",
"succeed-copy-link": "Lien copié avec succès.",
diff --git a/web/src/locales/gl.json b/web/src/locales/gl.json
index c02fecc4b..d0799711b 100644
--- a/web/src/locales/gl.json
+++ b/web/src/locales/gl.json
@@ -166,8 +166,6 @@
"no-archived-memos": "Sen memos arquivadas.",
"no-memos": "Sen memos.",
"order-by": "Orde por",
- "remove-completed-task-list-items": "Eliminada",
- "remove-completed-task-list-items-confirm": "Tes certeza de querer eliminar todas as tarefas completadas? A ACCIÓN NON SE PODE REVERTER",
"search-placeholder": "Buscar memos...",
"show-less": "Mostrar menos",
"show-more": "Mostrar máis",
@@ -197,7 +195,6 @@
"no-data": "Non hai datos.",
"password-changed": "Contrasinal cambiado",
"password-not-match": "Non concordan os contrasinais.",
- "remove-completed-task-list-items-successfully": "Eliminación correcta",
"restored-successfully": "Recuperación correcta",
"succeed-copy-content": "Contido copiado correctamente.",
"succeed-copy-link": "Ligazón copiada correctamente.",
diff --git a/web/src/locales/hi.json b/web/src/locales/hi.json
index b57ccc66b..d64d0d0a9 100644
--- a/web/src/locales/hi.json
+++ b/web/src/locales/hi.json
@@ -152,8 +152,6 @@
"no-archived-memos": "कोई संग्रहीत मेमो नहीं।",
"no-memos": "कोई मेमो नहीं।",
"order-by": "क्रमबद्ध करें",
- "remove-completed-task-list-items": "पूरा किए गए हटाएँ",
- "remove-completed-task-list-items-confirm": "क्या आप सभी पूरे कार्यों को हटाना चाहते हैं? यह कार्रवाई वापस नहीं की जा सकती।",
"search-placeholder": "मेमो खोजें...",
"show-less": "कम दिखाएँ",
"show-more": "और दिखाएँ",
@@ -183,7 +181,6 @@
"no-data": "कोई डेटा नहीं मिला।",
"password-changed": "पासवर्ड बदल दिया गया",
"password-not-match": "पासवर्ड मेल नहीं खाते।",
- "remove-completed-task-list-items-successfully": "सफलतापूर्वक हटाया गया",
"restored-successfully": "सफलतापूर्वक पुनर्स्थापित किया गया",
"succeed-copy-link": "लिंक सफलतापूर्वक कॉपी किया गया।",
"update-succeed": "अपडेट सफल हुआ",
diff --git a/web/src/locales/hr.json b/web/src/locales/hr.json
index 3db7938c7..0b3883a6a 100644
--- a/web/src/locales/hr.json
+++ b/web/src/locales/hr.json
@@ -154,8 +154,6 @@
"no-archived-memos": "Nema arhiviranih memoa.",
"no-memos": "Nema memoa.",
"order-by": "Sortiraj po",
- "remove-completed-task-list-items": "Ukloni završene",
- "remove-completed-task-list-items-confirm": "Jesi li siguran da želiš ukloniti sve završene zadatke? OVA AKCIJA JE NEPOVRATNA",
"search-placeholder": "Pretraži memoe...",
"show-less": "Prikaži manje",
"show-more": "Prikaži više",
@@ -183,7 +181,6 @@
"no-data": "Nema podataka.",
"password-changed": "Lozinka je promijenjena",
"password-not-match": "Lozinke se ne podudaraju.",
- "remove-completed-task-list-items-successfully": "Uspješno uklonjeno",
"restored-successfully": "Uspješno vraćeno",
"succeed-copy-link": "Link je uspješno kopiran.",
"update-succeed": "Ažuriranje uspješno",
diff --git a/web/src/locales/hu.json b/web/src/locales/hu.json
index 6eb0d08b8..ebcd752df 100644
--- a/web/src/locales/hu.json
+++ b/web/src/locales/hu.json
@@ -154,8 +154,6 @@
"no-archived-memos": "Nincsenek archivált jegyzetek.",
"no-memos": "Nincsenek jegyzetek.",
"order-by": "Rendezés",
- "remove-completed-task-list-items": "Kész feladatok törlése",
- "remove-completed-task-list-items-confirm": "Biztos, hogy törölni akarod az összes kész feladatot? EZ A MŰVELET VÉGLEGES",
"search-placeholder": "Jegyzetek keresése...",
"show-less": "Kevesebb mutatása",
"show-more": "Több mutatása",
@@ -183,7 +181,6 @@
"no-data": "Nem található adat.",
"password-changed": "Jelszó megváltoztatva",
"password-not-match": "A jelszavak nem egyeznek.",
- "remove-completed-task-list-items-successfully": "Sikeresen eltávolítva!",
"restored-successfully": "Sikeres visszaállítás",
"succeed-copy-link": "Hivatkozás sikeresen másolva.",
"update-succeed": "Sikeres frissítés",
diff --git a/web/src/locales/id.json b/web/src/locales/id.json
index b651839db..903179b7e 100644
--- a/web/src/locales/id.json
+++ b/web/src/locales/id.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Tidak ada memo yang diarsipkan.",
"no-memos": "Tidak ada memo.",
"order-by": "Urutkan Berdasarkan",
- "remove-completed-task-list-items": "Hapus yang selesai",
- "remove-completed-task-list-items-confirm": "Anda yakin ingin menghapus semua daftar tugas yang selesai? TINDAKAN INI TIDAK DAPAT DIBATALKAN",
"search-placeholder": "Cari memo",
"show-less": "Tampilkan lebih sedikit",
"show-more": "Tampilkan lebih banyak",
@@ -183,7 +181,6 @@
"no-data": "Data tidak ditemukan.",
"password-changed": "Kata sandi diubah",
"password-not-match": "Kata sandi tidak cocok.",
- "remove-completed-task-list-items-successfully": "Berhasil dihapus",
"restored-successfully": "Berhasil dipulihkan",
"succeed-copy-link": "Tautan berhasil disalin.",
"update-succeed": "Pembaruan berhasil",
diff --git a/web/src/locales/it.json b/web/src/locales/it.json
index 753fb274d..4cd3869f5 100644
--- a/web/src/locales/it.json
+++ b/web/src/locales/it.json
@@ -163,8 +163,6 @@
"no-archived-memos": "Nessun memo archiviato.",
"no-memos": "Nessun memo.",
"order-by": "Ordina per",
- "remove-completed-task-list-items": "Rimuovi completati",
- "remove-completed-task-list-items-confirm": "Confermi di voler rimuovere tutti i compiti completati? QUESTA AZIONE È IRREVERSIBILE",
"search-placeholder": "Cerca memo...",
"show-less": "Mostra meno",
"show-more": "Mostra di più",
@@ -194,7 +192,6 @@
"no-data": "Nessun dato",
"password-changed": "Password cambiata",
"password-not-match": "Le password non corrispondono",
- "remove-completed-task-list-items-successfully": "Rimosso con successo!",
"restored-successfully": "Ripristinato con successo",
"succeed-copy-content": "Contenuto copiato con successo.",
"succeed-copy-link": "Link copiato.",
diff --git a/web/src/locales/ja.json b/web/src/locales/ja.json
index 633c56ecd..1547e0cbc 100644
--- a/web/src/locales/ja.json
+++ b/web/src/locales/ja.json
@@ -154,8 +154,6 @@
"no-archived-memos": "アーカイブされたメモはありません。",
"no-memos": "メモがありません。",
"order-by": "並び替え",
- "remove-completed-task-list-items": "完了を削除",
- "remove-completed-task-list-items-confirm": "すべての完了したタスクを削除してもよろしいですか?この操作は元に戻せません。",
"search-placeholder": "メモを検索...",
"show-less": "少なく表示",
"show-more": "もっと見る",
@@ -183,7 +181,6 @@
"no-data": "データが見つかりませんでした。",
"password-changed": "パスワードを変更しました",
"password-not-match": "パスワードが一致しません。",
- "remove-completed-task-list-items-successfully": "削除が成功しました!",
"restored-successfully": "リストア成功",
"succeed-copy-link": "リンクのコピーに成功しました。",
"update-succeed": "変更は保存されました",
diff --git a/web/src/locales/ka-GE.json b/web/src/locales/ka-GE.json
index 2c3258f20..11a220109 100644
--- a/web/src/locales/ka-GE.json
+++ b/web/src/locales/ka-GE.json
@@ -154,8 +154,6 @@
"no-archived-memos": "დაარქივებული მემოები არ არის.",
"no-memos": "მემოები არ არის.",
"order-by": "დალაგება",
- "remove-completed-task-list-items": "დასრულებულების წაშლა",
- "remove-completed-task-list-items-confirm": "დარწმუნებული ხართ, რომ გსურთ ყველა დასრულებული ამოცანის წაშლა? ეს ქმედება შეუქცევადია",
"search-placeholder": "მემოების ძიება...",
"show-less": "ნაკლების ჩვენება",
"show-more": "მეტის ჩვენება",
@@ -183,7 +181,6 @@
"no-data": "მონაცემები არ მოიძებნა.",
"password-changed": "პაროლი შეიცვალა",
"password-not-match": "პაროლები არ ემთხვევა.",
- "remove-completed-task-list-items-successfully": "წარმატებით წაიშალა",
"restored-successfully": "წარმატებით აღდგა",
"succeed-copy-link": "ლინკი წარმატებით კოპირდა.",
"update-succeed": "განახლება წარმატებით დასრულდა",
diff --git a/web/src/locales/ko.json b/web/src/locales/ko.json
index 852de360e..4c702b3d4 100644
--- a/web/src/locales/ko.json
+++ b/web/src/locales/ko.json
@@ -167,8 +167,6 @@
"no-archived-memos": "보관처리된 메모가 없습니다.",
"no-memos": "메모가 없습니다.",
"order-by": "정렬 기준",
- "remove-completed-task-list-items": "완료 제거",
- "remove-completed-task-list-items-confirm": "모든 완료된 작업을 삭제하겠습니까? 이 작업은 되돌릴 수 없습니다",
"search-placeholder": "메모 검색하기...",
"show-less": "간략히 보기",
"show-more": "더보기",
@@ -198,7 +196,6 @@
"no-data": "데이터가 없습니다.",
"password-changed": "비밀번호를 변경했습니다",
"password-not-match": "비밀번호가 맞지 않습니다.",
- "remove-completed-task-list-items-successfully": "성공적으로 제거되었습니다",
"restored-successfully": "성공적으로 복구했습니다",
"succeed-copy-content": "콘텐츠를 클립보드에 복사했습니다.",
"succeed-copy-link": "링크를 클립보드에 복사했습니다.",
diff --git a/web/src/locales/mr.json b/web/src/locales/mr.json
index 6b61423ca..cec123c23 100644
--- a/web/src/locales/mr.json
+++ b/web/src/locales/mr.json
@@ -154,8 +154,6 @@
"no-archived-memos": "कोणतेही संग्रहित मेमो नाहीत.",
"no-memos": "कोणतेही मेमो नाहीत.",
"order-by": "क्रमवारी",
- "remove-completed-task-list-items": "हटवा केलेले",
- "remove-completed-task-list-items-confirm": "तुम्ही सगळ्या पूर्ण केलेल्या कामांचे हटवणार आहात का? ही क्रिया अपरिवर्तनीय आहे",
"search-placeholder": "मेमोज शोधा...",
"show-less": "कमी दाखवा",
"show-more": "अधिक दाखवा",
@@ -183,7 +181,6 @@
"no-data": "माहिती आढळली नाही.",
"password-changed": "पासवर्ड बदलला",
"password-not-match": "पासवर्ड जुळत नाही.",
- "remove-completed-task-list-items-successfully": "सफळताने हटवा झाले!",
"restored-successfully": "यशस्वीरित्या पुनर्संचयित केले",
"succeed-copy-link": "लिंक यशस्वीरित्या कॉपी केली.",
"update-succeed": "अपडेट यशस्वी झाले",
diff --git a/web/src/locales/nb.json b/web/src/locales/nb.json
index dff761034..b701f0ee6 100644
--- a/web/src/locales/nb.json
+++ b/web/src/locales/nb.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Ingen arkiverte memoer.",
"no-memos": "Ingen memoer.",
"order-by": "Sorter etter",
- "remove-completed-task-list-items": "Fjerning utført",
- "remove-completed-task-list-items-confirm": "Er du sikker på at du vil fjerne alle utførte gjøremål? DENNE HANDLINGEN KAN IKKE ANGRES.",
"search-placeholder": "Søk etter memoer...",
"show-less": "Vis mindre",
"show-more": "Vis mer",
@@ -183,7 +181,6 @@
"no-data": "Ingen data funnet.",
"password-changed": "Passord endret",
"password-not-match": "Passordene samsvarer ikke",
- "remove-completed-task-list-items-successfully": "Fjerning vellykket",
"restored-successfully": "Gjenoppretting vellykket",
"succeed-copy-link": "Link kopiert.",
"update-succeed": "Oppdatering vellykket",
diff --git a/web/src/locales/nl.json b/web/src/locales/nl.json
index 1602643b2..33dd434a3 100644
--- a/web/src/locales/nl.json
+++ b/web/src/locales/nl.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Geen gearchiveerde memos.",
"no-memos": "Geen memos.",
"order-by": "Sorteren op",
- "remove-completed-task-list-items": "Verwijdering voltooid",
- "remove-completed-task-list-items-confirm": "Weet je zeker dat je alle voltooide taken wilt verwijderen? DEZE ACTIE IS NIET TERUG TE DRAAIEN",
"search-placeholder": "Memos zoeken…",
"show-less": "Minder tonen",
"show-more": "Meer tonen",
@@ -183,7 +181,6 @@
"no-data": "Geen gegevens gevonden.",
"password-changed": "Wachtwoord gewijzigd.",
"password-not-match": "Wachtwoorden komen niet overeen.",
- "remove-completed-task-list-items-successfully": "Succesvol verwijderd!",
"restored-successfully": "Succesvol teruggezet",
"succeed-copy-link": "Link gekopieërd naar klembord.",
"update-succeed": "Update voltooid",
diff --git a/web/src/locales/pl.json b/web/src/locales/pl.json
index d917396c2..2ecb82ea4 100644
--- a/web/src/locales/pl.json
+++ b/web/src/locales/pl.json
@@ -167,8 +167,6 @@
"no-archived-memos": "Brak zarchiwizowanych notatek.",
"no-memos": "Brak notatek.",
"order-by": "Sortuj według",
- "remove-completed-task-list-items": "Usuń zakończone",
- "remove-completed-task-list-items-confirm": "Czy jesteś pewny, że chcesz usunąć wszystkie zakończone zadania? TA AKCJA JEST NIEODWRACALNA",
"search-placeholder": "Szukaj notatek",
"show-less": "Pokaż mniej",
"show-more": "Pokaż więcej",
@@ -198,7 +196,6 @@
"no-data": "Nie znaleziono danych.",
"password-changed": "Hasło zostało zmienione",
"password-not-match": "Hasła nie pasują do siebie.",
- "remove-completed-task-list-items-successfully": "Pomyślnie usunięto!",
"restored-successfully": "Przywrócono pomyślnie",
"succeed-copy-content": "Treść została pomyślnie skopiowana.",
"succeed-copy-link": "Link skopiowany pomyślnie.",
diff --git a/web/src/locales/pt-BR.json b/web/src/locales/pt-BR.json
index 9612b667b..93f587031 100644
--- a/web/src/locales/pt-BR.json
+++ b/web/src/locales/pt-BR.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Nenhum memo arquivado.",
"no-memos": "Nenhum memo.",
"order-by": "Ordenar por",
- "remove-completed-task-list-items": "Remover concluídos",
- "remove-completed-task-list-items-confirm": "Você tem certeza de que deseja remover todos os itens concluídos? ESTA AÇÃO É IRREVERSÍVEL",
"search-placeholder": "Pesquisar memos...",
"show-less": "Mostrar menos",
"show-more": "Mostrar mais",
@@ -183,7 +181,6 @@
"no-data": "Nenhum dado encontrado.",
"password-changed": "Senha alterada",
"password-not-match": "As senhas não coincidem.",
- "remove-completed-task-list-items-successfully": "Remoção bem-sucedida!",
"restored-successfully": "Restaurado com êxito",
"succeed-copy-link": "Link copiado com êxito.",
"update-succeed": "Atualizado com êxito",
diff --git a/web/src/locales/pt-PT.json b/web/src/locales/pt-PT.json
index 1e97eafff..907a19893 100644
--- a/web/src/locales/pt-PT.json
+++ b/web/src/locales/pt-PT.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Não existem memos arquivados.",
"no-memos": "Não existem memos.",
"order-by": "Ordenar por",
- "remove-completed-task-list-items": "Remover concluídos",
- "remove-completed-task-list-items-confirm": "Tem a certeza de que deseja remover todas as tarefas concluídas? ESTA AÇÃO É IRREVERSÍVEL",
"search-placeholder": "Pesquisar memos...",
"show-less": "Mostrar menos",
"show-more": "Mostrar mais",
@@ -183,7 +181,6 @@
"no-data": "Nenhum dado encontrado.",
"password-changed": "Palavra-passe alterada",
"password-not-match": "As palavras-passe não coincidem.",
- "remove-completed-task-list-items-successfully": "Remoção bem-sucedida",
"restored-successfully": "Restaurado com sucesso",
"succeed-copy-link": "Link copiado com sucesso.",
"update-succeed": "Atualização bem-sucedida",
diff --git a/web/src/locales/ru.json b/web/src/locales/ru.json
index bff3898de..b7abf93e8 100644
--- a/web/src/locales/ru.json
+++ b/web/src/locales/ru.json
@@ -131,8 +131,6 @@
"direction-desc": "По убыванию",
"links": "Ссылки",
"no-archived-memos": "Нет заархивированных записей.",
- "remove-completed-task-list-items": "Удалить выполненные",
- "remove-completed-task-list-items-confirm": "Вы уверены, что хотите удалить все выполненные задачи? (Данное действие необратимо)",
"search-placeholder": "Поиск записей",
"show-less": "Показать меньше",
"show-more": "Подробнее",
@@ -162,7 +160,6 @@
"no-data": "Здесь ничего нет",
"password-changed": "Пароль изменён",
"password-not-match": "Пароли не совпадают.",
- "remove-completed-task-list-items-successfully": "Удалено успешно!",
"restored-successfully": "Успешно восстановлено.",
"succeed-copy-link": "Ссылка скопирована в буфер обмена.",
"update-succeed": "Успешно обновлено",
diff --git a/web/src/locales/sl.json b/web/src/locales/sl.json
index 4dda26a4e..89e8a7808 100644
--- a/web/src/locales/sl.json
+++ b/web/src/locales/sl.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Ni arhiviranih beležk.",
"no-memos": "Ni beležk.",
"order-by": "Razvrsti po",
- "remove-completed-task-list-items": "Odstrani končane",
- "remove-completed-task-list-items-confirm": "Ste prepričani, da želite odstraniti vse končane naloge? TO DEJANJE JE NEPOVRATNO",
"search-placeholder": "Poišči beležke",
"show-less": "Prikaži manj",
"show-more": "Prikaži več",
@@ -183,7 +181,6 @@
"no-data": "Ne najdem podatkov.",
"password-changed": "Geslo je spremenjeno",
"password-not-match": "Gesli se ne ujemata.",
- "remove-completed-task-list-items-successfully": "Odstranitev uspešna!",
"restored-successfully": "Uspešno obnovljeno",
"succeed-copy-link": "Povezava je uspešno skopirana.",
"update-succeed": "Posodobitev je uspešna",
diff --git a/web/src/locales/sv.json b/web/src/locales/sv.json
index 334d8c3d8..321ed3638 100644
--- a/web/src/locales/sv.json
+++ b/web/src/locales/sv.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Inga arkiverade anteckningar.",
"no-memos": "Inga anteckningar.",
"order-by": "Sortera efter",
- "remove-completed-task-list-items": "Ta bort avklarade",
- "remove-completed-task-list-items-confirm": "Är du säker på att du vill ta bort alla avklarade todo? DENNA ÅTGÄRD ÄR OÅTERKALLELIG",
"search-placeholder": "Sök anteckningar...",
"show-less": "Visa mindre",
"show-more": "Visa mer",
@@ -183,7 +181,6 @@
"no-data": "Ingen data hittades.",
"password-changed": "Lösenord ändrat",
"password-not-match": "Lösenorden matchar inte.",
- "remove-completed-task-list-items-successfully": "Borttagning avklarade todo lyckades!",
"restored-successfully": "Återställdes framgångsrikt",
"succeed-copy-link": "Länk kopierades framgångsrikt.",
"update-succeed": "Uppdatering lyckades",
diff --git a/web/src/locales/th.json b/web/src/locales/th.json
index 146f95223..205a2fc40 100644
--- a/web/src/locales/th.json
+++ b/web/src/locales/th.json
@@ -152,8 +152,6 @@
"no-archived-memos": "ไม่มีบันทึกช่วยจำที่ถูกเก็บถาวร",
"no-memos": "ไม่มีบันทึกช่วยจำ",
"order-by": "เรียงตาม",
- "remove-completed-task-list-items": "ลบที่ทำแล้ว",
- "remove-completed-task-list-items-confirm": "คุณแน่ใจว่าจะลบรายการที่ทำแล้วทั้งหมดหรือไม่? การกระทำนี้ไม่สามารถย้อนกลับได้",
"search-placeholder": "ค้นหาบันทึกช่วยจำ...",
"show-less": "แสดงน้อยลง",
"show-more": "แสดงเพิ่มเติม",
@@ -183,7 +181,6 @@
"no-data": "ไม่พบข้อมูล",
"password-changed": "เปลี่ยนรหัสผ่านแล้ว",
"password-not-match": "รหัสผ่านไม่ตรงกัน",
- "remove-completed-task-list-items-successfully": "ลบเรียบร้อย!",
"restored-successfully": "กู้คืนเรียบร้อยแล้ว",
"succeed-copy-link": "คัดลอกลิงก์เรียบร้อยแล้ว",
"update-succeed": "อัปเดตเรียบร้อยแล้ว",
diff --git a/web/src/locales/tr.json b/web/src/locales/tr.json
index b5f7008ac..8cbe6de0d 100644
--- a/web/src/locales/tr.json
+++ b/web/src/locales/tr.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Arşivlenmiş not yok.",
"no-memos": "Not yok.",
"order-by": "Sıralama Ölçütü",
- "remove-completed-task-list-items": "Tamamlananları kaldır",
- "remove-completed-task-list-items-confirm": "Tamamlanan tüm görevleri kaldırmak istediğinizden emin misiniz? BU İŞLEM GERİ ALINAMAZ",
"search-placeholder": "Notlarda ara",
"show-less": "Daha az göster",
"show-more": "Daha fazla göster",
@@ -183,7 +181,6 @@
"no-data": "Veri bulunamadı.",
"password-changed": "Şifre Değiştirildi",
"password-not-match": "Şifreler eşleşmiyor.",
- "remove-completed-task-list-items-successfully": "Kaldırma işlemi başarılı",
"restored-successfully": "Başarıyla geri yüklendi",
"succeed-copy-link": "Bağlantı başarıyla kopyalandı.",
"update-succeed": "Güncelleme başarılı",
diff --git a/web/src/locales/uk.json b/web/src/locales/uk.json
index 7e2005357..620afc950 100644
--- a/web/src/locales/uk.json
+++ b/web/src/locales/uk.json
@@ -152,8 +152,6 @@
"no-archived-memos": "Немає архівованих нотаток.",
"no-memos": "Немає нотаток.",
"order-by": "Впорядкувати за",
- "remove-completed-task-list-items": "Видалити виконані",
- "remove-completed-task-list-items-confirm": "Ви впевнені, що хочете видалити всі виконані задачі? ЦЯ ДІЯ Є НЕВІДКЛИКНОЮ",
"search-placeholder": "Пошук нотаток...",
"show-less": "Показувати менше",
"show-more": "Показати більше",
@@ -183,7 +181,6 @@
"no-data": "Дані не знайдено.",
"password-changed": "Пароль змінено",
"password-not-match": "Паролі не співпадають.",
- "remove-completed-task-list-items-successfully": "Видалення виконаних успішно!",
"restored-successfully": "Успішно відновлено",
"succeed-copy-link": "Посилання успішно скопійовано.",
"update-succeed": "Оновлення успішне",
diff --git a/web/src/locales/vi.json b/web/src/locales/vi.json
index 029917a42..103b86b54 100644
--- a/web/src/locales/vi.json
+++ b/web/src/locales/vi.json
@@ -114,8 +114,6 @@
"links": "Liên kết",
"load-more": "Tải thêm",
"no-archived-memos": "Không có ghi chú nào được lưu trữ.",
- "remove-completed-task-list-items": "Xóa đã hoàn thành",
- "remove-completed-task-list-items-confirm": "Bạn có chắc chắn muốn xóa tất cả các mục đã hoàn thành không? (Hành động này không thể đảo ngược)",
"search-placeholder": "Tìm kiếm ghi chú",
"show-less": "Hiển thị ít hơn",
"show-more": "Hiển thị thêm",
diff --git a/web/src/locales/zh-Hans.json b/web/src/locales/zh-Hans.json
index 4ec28096e..2d05e115a 100644
--- a/web/src/locales/zh-Hans.json
+++ b/web/src/locales/zh-Hans.json
@@ -169,8 +169,6 @@
"no-archived-memos": "没有已归档备忘录。",
"no-memos": "无备忘录",
"order-by": "排序",
- "remove-completed-task-list-items": "移除已办",
- "remove-completed-task-list-items-confirm": "您确定要移除所有完成的待办吗?(此操作不可逆)",
"search-placeholder": "搜索备忘录",
"show-less": "显示较少",
"show-more": "查看更多",
@@ -200,7 +198,6 @@
"no-data": "未找到任何数据。",
"password-changed": "密码已修改",
"password-not-match": "密码不一致。",
- "remove-completed-task-list-items-successfully": "移除成功!",
"restored-successfully": "恢复成功",
"succeed-copy-content": "复制内容到剪贴板成功。",
"succeed-copy-link": "复制链接到剪贴板成功。",
diff --git a/web/src/locales/zh-Hant.json b/web/src/locales/zh-Hant.json
index b973fe7b9..c2b7f0faa 100644
--- a/web/src/locales/zh-Hant.json
+++ b/web/src/locales/zh-Hant.json
@@ -169,8 +169,6 @@
"no-archived-memos": "無已封存的備忘錄",
"no-memos": "無備忘錄",
"order-by": "排序",
- "remove-completed-task-list-items": "移除已完成的待辦事項",
- "remove-completed-task-list-items-confirm": "您確定要移除所有完成的待辦事項嗎?此操作無法恢復。",
"search-placeholder": "搜尋備忘錄",
"show-less": "顯示較少",
"show-more": "查看更多",
@@ -200,7 +198,6 @@
"no-data": "或許尋覓虛空,或者改換選擇之軌跡。",
"password-changed": "密碼變更完成",
"password-not-match": "密碼不一致。",
- "remove-completed-task-list-items-successfully": "移除成功",
"restored-successfully": "還原成功",
"succeed-copy-content": "內容複製到剪貼簿成功。",
"succeed-copy-link": "複製連結到剪貼簿成功。",
diff --git a/web/src/utils/markdown-manipulation.ts b/web/src/utils/markdown-manipulation.ts
index 33d2a9158..80f7e1dcf 100644
--- a/web/src/utils/markdown-manipulation.ts
+++ b/web/src/utils/markdown-manipulation.ts
@@ -70,31 +70,6 @@ export function toggleTaskAtIndex(markdown: string, taskIndex: number, checked:
return toggleTaskAtLine(markdown, task.lineNumber, checked);
}
-export function removeCompletedTasks(markdown: string): string {
- const tasks = extractTasksFromAst(markdown);
- const completedLineNumbers = new Set(tasks.filter((t) => t.checked).map((t) => t.lineNumber));
-
- if (completedLineNumbers.size === 0) {
- return markdown;
- }
-
- const lines = markdown.split("\n");
- const result: string[] = [];
-
- for (let i = 0; i < lines.length; i++) {
- if (completedLineNumbers.has(i)) {
- // Also skip the following line if it's empty (preserve spacing)
- if (i + 1 < lines.length && lines[i + 1].trim() === "") {
- i++;
- }
- continue;
- }
- result.push(lines[i]);
- }
-
- return result.join("\n");
-}
-
export function countTasks(markdown: string): {
total: number;
completed: number;
@@ -112,11 +87,6 @@ export function countTasks(markdown: string): {
};
}
-export function hasCompletedTasks(markdown: string): boolean {
- const tasks = extractTasksFromAst(markdown);
- return tasks.some((t) => t.checked);
-}
-
export function getTaskLineNumber(markdown: string, taskIndex: number): number {
const tasks = extractTasksFromAst(markdown);