refactor: remove archived functionality from notifications and related components

- Removed the archived column from the Notification model and database schema, simplifying the notification structure.
- Deleted ArchiveRequest and ArchiveResponse models, along with associated API endpoints for archiving notifications.
- Updated InboxSidebar and related components to eliminate archiving functionality, streamlining the user experience.
- Adjusted filtering logic in the InboxSidebar to focus solely on unread notifications, enhancing clarity and usability.
This commit is contained in:
Anish Sarkar 2026-01-21 22:47:39 +05:30
parent 8dcdd27d10
commit 112f6ec4cc
8 changed files with 24 additions and 279 deletions

View file

@ -332,36 +332,11 @@ export function useInbox(
}
}, []);
// Archive/unarchive an inbox item via backend API
const archiveItem = useCallback(async (itemId: number, archived: boolean) => {
try {
const response = await authenticatedFetch(
`${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/notifications/${itemId}/archive`,
{
method: "PATCH",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ archived }),
}
);
if (!response.ok) {
const error = await response.json().catch(() => ({ detail: "Failed to update archive status" }));
throw new Error(error.detail || "Failed to update inbox item archive status");
}
return true;
} catch (err) {
console.error("Failed to update inbox item archive status:", err);
return false;
}
}, []);
return {
inboxItems,
unreadCount: totalUnreadCount,
markAsRead,
markAllAsRead,
archiveItem,
loading,
error,
};