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);