Refactor and reorder functions in App.tsx
This commit is contained in:
56
src/App.tsx
56
src/App.tsx
@@ -723,6 +723,34 @@ export default function App() {
|
|||||||
[refreshTexts]
|
[refreshTexts]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const handleDeleteText = useCallback(
|
||||||
|
async (promptId: string) => {
|
||||||
|
await deleteText(promptId);
|
||||||
|
await refreshTexts();
|
||||||
|
if (selectedTextId === promptId) {
|
||||||
|
setSelectedTextId(null);
|
||||||
|
localStorage.removeItem("textdb.selectedTextId");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[refreshTexts, selectedTextId]
|
||||||
|
);
|
||||||
|
|
||||||
|
const handleDeleteFolder = useCallback(
|
||||||
|
async (folderId: string) => {
|
||||||
|
await deleteFolder(folderId);
|
||||||
|
await Promise.all([refreshFolders(), refreshTexts()]);
|
||||||
|
setExpandedFolders((prev) => {
|
||||||
|
const next = new Set(prev);
|
||||||
|
next.delete(folderId);
|
||||||
|
return next;
|
||||||
|
});
|
||||||
|
if (editingFolderId === folderId) {
|
||||||
|
clearFolderEditing();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[clearFolderEditing, editingFolderId, refreshFolders, refreshTexts]
|
||||||
|
);
|
||||||
|
|
||||||
const handleTextContextMenu = useCallback(
|
const handleTextContextMenu = useCallback(
|
||||||
async (event: React.MouseEvent, text: Text) => {
|
async (event: React.MouseEvent, text: Text) => {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
@@ -1036,34 +1064,6 @@ export default function App() {
|
|||||||
await createTextFromFile(path);
|
await createTextFromFile(path);
|
||||||
}, [createTextFromFile]);
|
}, [createTextFromFile]);
|
||||||
|
|
||||||
const handleDeleteText = useCallback(
|
|
||||||
async (promptId: string) => {
|
|
||||||
await deleteText(promptId);
|
|
||||||
await refreshTexts();
|
|
||||||
if (selectedTextId === promptId) {
|
|
||||||
setSelectedTextId(null);
|
|
||||||
localStorage.removeItem("textdb.selectedTextId");
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[refreshTexts, selectedTextId]
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleDeleteFolder = useCallback(
|
|
||||||
async (folderId: string) => {
|
|
||||||
await deleteFolder(folderId);
|
|
||||||
await Promise.all([refreshFolders(), refreshTexts()]);
|
|
||||||
setExpandedFolders((prev) => {
|
|
||||||
const next = new Set(prev);
|
|
||||||
next.delete(folderId);
|
|
||||||
return next;
|
|
||||||
});
|
|
||||||
if (editingFolderId === folderId) {
|
|
||||||
clearFolderEditing();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[clearFolderEditing, editingFolderId, refreshFolders, refreshTexts]
|
|
||||||
);
|
|
||||||
|
|
||||||
const handleSaveVersion = useCallback(async () => {
|
const handleSaveVersion = useCallback(async () => {
|
||||||
if (!selectedTextId || !canSave) return;
|
if (!selectedTextId || !canSave) return;
|
||||||
const normalizedTitle = title.trim() || DEFAULT_TITLE;
|
const normalizedTitle = title.trim() || DEFAULT_TITLE;
|
||||||
|
|||||||
Reference in New Issue
Block a user