feat: refactor folder refresh with toast notifications and console logging for toasts.

This commit is contained in:
2025-12-08 19:20:36 +01:00
parent dbff980792
commit a850f70e24
3 changed files with 22 additions and 5 deletions
@@ -578,13 +578,23 @@ const useDocumentsWorkspace = ({
[selectedDocumentIds], [selectedDocumentIds],
); );
const refreshCurrentFolder = useCallback(async () => { const refreshFolderData = useCallback(async () => {
if (selectedFolder) { if (selectedFolder) {
const { data, includeDocuments } = await fetchFolderData(selectedFolder); const { data, includeDocuments } = await fetchFolderData(selectedFolder);
updateViewState(selectedFolder, data, includeDocuments); updateViewState(selectedFolder, data, includeDocuments);
} }
}, [selectedFolder, fetchFolderData, updateViewState]); }, [selectedFolder, fetchFolderData, updateViewState]);
const handleManualRefresh = useCallback(async () => {
try {
await refreshFolderData();
showToast('Folder refreshed successfully', 'success');
} catch (error) {
showToast('Failed to refresh folder', 'error');
console.error('Failed to refresh folder:', error);
}
}, [refreshFolderData, showToast]);
const { const {
handleBulkTagAddFromDetail, handleBulkTagAddFromDetail,
handleBulkTagRemoveFromDetail, handleBulkTagRemoveFromDetail,
@@ -607,7 +617,7 @@ const useDocumentsWorkspace = ({
} = useDocumentUploads({ } = useDocumentUploads({
selectedFolder, selectedFolder,
currentFolderName, currentFolderName,
refreshCurrentFolder, refreshCurrentFolder: refreshFolderData,
shellRef, shellRef,
}); });
@@ -729,7 +739,6 @@ const useDocumentsWorkspace = ({
}; };
const actionsState = { const actionsState = {
refreshCurrentFolder,
closeDocumentPreview, closeDocumentPreview,
}; };
@@ -1109,6 +1118,7 @@ const useDocumentsWorkspace = ({
openSettings, openSettings,
closeSettings, closeSettings,
managementModals, managementModals,
refreshCurrentFolder: handleManualRefresh,
}; };
const uploadContext = { const uploadContext = {
@@ -1207,7 +1217,6 @@ const useDocumentsWorkspace = ({
creatingFolder, creatingFolder,
currentSubfolders, currentSubfolders,
breadcrumbs, breadcrumbs,
refreshCurrentFolder,
}; };
const selectionContext = { const selectionContext = {
@@ -81,7 +81,6 @@ export interface TagsState {
} }
export interface ActionsState { export interface ActionsState {
refreshCurrentFolder: () => Promise<void>;
closeDocumentPreview: CloseDocumentPreview; closeDocumentPreview: CloseDocumentPreview;
handleFileDrop?: (dataTransfer: DataTransfer, folderId: FolderId) => Promise<void> | void; handleFileDrop?: (dataTransfer: DataTransfer, folderId: FolderId) => Promise<void> | void;
moveDocumentsToFolder?: (docIds: FolderId[], folderId: FolderId) => Promise<void>; moveDocumentsToFolder?: (docIds: FolderId[], folderId: FolderId) => Promise<void>;
@@ -43,6 +43,15 @@ export const StatusToastProvider: React.FC<{ children: React.ReactNode }> = ({ c
}, []); }, []);
const showToast = useCallback((message: string, variant: ToastVariant = 'info', duration?: number) => { const showToast = useCallback((message: string, variant: ToastVariant = 'info', duration?: number) => {
// Log to console based on variant
if (variant === 'error') {
console.error(`[Toast] ${message}`);
} else if (variant === 'success') {
console.log(`[Toast] ${message}`);
} else {
console.info(`[Toast] ${message}`);
}
const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`; const id = `toast-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
const finalDuration = duration ?? DEFAULT_DURATIONS[variant]; const finalDuration = duration ?? DEFAULT_DURATIONS[variant];