export const documentTimeStampUpdated = async (
queryClient: QueryClient,
response: AxiosResponse<IDocumentResponse[], any> | undefined,
documentIds: string[],
timestampKey: 'viewedAt' | 'displayedAt' | 'downloadedAt'
) => {
const data = (await response)?.data;
const contracts = queryClient.getQueryData<IContract[]>(['contracts']) || [];
if (!data || (data && data.length === 0)) return;
queryClient.setQueryData<IDocument[]>(['documents', contracts.map((c) => c.id)], (oldData) => {
const newData = oldData?.map((oldDocument: IDocument) => {
return {
...oldDocument,
[timestampKey]: documentIds.includes(oldDocument.id)
? data?.find((updatedDocument) => updatedDocument.id === oldDocument.id)?.[timestampKey] ||
oldDocument[timestampKey]
: oldDocument[timestampKey]
};
});
return newData;
});
};
export const documentTimeStampUpdated = async (
queryClient: QueryClient,
response: AxiosResponse<IDocumentResponse[], any> | undefined,
documentIds: string[],
timestampKey: 'viewedAt' | 'displayedAt' | 'downloadedAt'
) => {
const data = (await response)?.data;
const contracts = queryClient.getQueryData<IContract[]>(['contracts']) || [];
if (!data || (data && data.length === 0)) return;
queryClient.setQueryData<IDocument[]>(['documents', contracts.map((c) => c.id)], (oldData) => {
const newData = oldData?.map((oldDocument: IDocument) => {
return {
...oldDocument,
[timestampKey]: documentIds.includes(oldDocument.id)
? data?.find((updatedDocument) => updatedDocument.id === oldDocument.id)?.[timestampKey] ||
oldDocument[timestampKey]
: oldDocument[timestampKey]
};
});
return newData;
});
};