Remove asset/document hydration pipeline and introduce client-side cache updates for correspondents, tags, and search results

This commit is contained in:
2025-11-20 02:18:33 +01:00
parent b76f1df27f
commit 0eb4c0a294
14 changed files with 316 additions and 329 deletions
-7
View File
@@ -23,11 +23,6 @@ type DocumentLink = {
expiresAt?: number;
};
interface AssetManagerLike {
hydrateDetail: (payload: unknown) => { document?: DocumentLike } | null;
hydrateDocument: (payload: unknown) => DocumentLike | null;
}
interface ApiClient {
get: <T = unknown>(path: string) => Promise<{ data: T }>;
}
@@ -44,7 +39,6 @@ interface UseDocumentPreviewArgs {
ingest: (docs: unknown[]) => { canonical: DocumentLike[]; changed: boolean };
};
selectedFolder?: FolderId | null;
assetManager: AssetManagerLike;
api: ApiClient;
resolveApiPath?: (path: string) => string;
notifyApiError: (error: unknown, message: string) => void;
@@ -72,7 +66,6 @@ const useDocumentPreview = ({
routeDocumentId,
documentsManager,
selectedFolder,
assetManager: _assetManager,
api,
resolveApiPath,
notifyApiError,
+8
View File
@@ -45,6 +45,7 @@ interface UseDocumentsSearchResult {
clearFilters: () => void;
handleSearchChange: (value: string) => void;
handleSearchSubmit: () => void;
refetchSearchResults: () => void;
documentsFilterValue: {
query: string;
searchResultIds: Identifier[] | null;
@@ -82,6 +83,7 @@ const useDocumentsSearch = ({
const [activeCorrespondentFilters, setActiveCorrespondentFilters] = useState<Identifier[]>([]);
const [searchResultIds, setSearchResultIds] = useState<Identifier[] | null>(null);
const [searchLoading, setSearchLoading] = useState<boolean>(false);
const [searchTrigger, setSearchTrigger] = useState<number>(0);
const toggleTagFilter = useCallback((tagId: Identifier) => {
if (!tagId) return;
@@ -171,6 +173,10 @@ const useDocumentsSearch = ({
],
);
const refetchSearchResults = useCallback(() => {
setSearchTrigger(Date.now());
}, []);
useEffect(() => {
if (!token) return undefined;
@@ -269,6 +275,7 @@ const useDocumentsSearch = ({
notifyApiError,
setLoading,
documentsManager,
searchTrigger,
]);
return {
@@ -288,6 +295,7 @@ const useDocumentsSearch = ({
clearFilters,
handleSearchChange,
handleSearchSubmit,
refetchSearchResults,
documentsFilterValue,
};
};