tududi/frontend/utils/noteDeleteUtils.ts
Antonis c9f7fbb522
Fix notes.js & areas.js UID usage and remove IDs. (#355)
* Add logging placeholder functions, fix notes.js uids

* Fix areas.js uids and remove ids

* Add UIDs to inbox items. Includes migration.

* id -> uid for task-events.js

---------

Co-authored-by: antanst <>
2025-09-29 16:03:46 +03:00

39 lines
1.1 KiB
TypeScript

import { deleteNote as apiDeleteNote } from './notesService';
import { useStore } from '../store/useStore';
import { Note } from '../entities/Note';
/**
* Shared utility function to delete a note and update the global store
* @param noteOrUid - The note object or UID of the note to delete
* @param showSuccessToast - Function to show success toast
* @param t - Translation function
* @returns Promise<void>
*/
export const deleteNoteWithStoreUpdate = async (
noteOrUid: Note | string,
showSuccessToast: (message: string) => void,
t: (key: string) => string
): Promise<void> => {
let noteUid: string;
if (typeof noteOrUid === 'object') {
// It's a Note object
noteUid = noteOrUid.uid!;
} else {
// It's a UID string
noteUid = noteOrUid;
}
await apiDeleteNote(noteUid);
// Remove note from global store
const currentNotes = useStore.getState().notesStore.notes;
useStore
.getState()
.notesStore.setNotes(
currentNotes.filter((note: Note) => note.uid !== noteUid)
);
// Show success toast
showSuccessToast(t('success.noteDeleted'));
};