22 lines
803 B
TypeScript
22 lines
803 B
TypeScript
import useSWR from 'swr';
|
|
import { loadDirectory, FileObject } from '@/api/server/files';
|
|
import { cleanDirectoryPath } from '@/helpers';
|
|
import { ServerContext } from '@/state/server';
|
|
|
|
export const getDirectorySwrKey = (uuid: string, directory: string): string => `${uuid}:files:${directory}`;
|
|
|
|
export default () => {
|
|
const uuid = ServerContext.useStoreState(state => state.server.data!.uuid);
|
|
const directory = ServerContext.useStoreState(state => state.files.directory);
|
|
|
|
return useSWR<FileObject[]>(
|
|
getDirectorySwrKey(uuid, directory),
|
|
() => loadDirectory(uuid, cleanDirectoryPath(directory)),
|
|
{
|
|
focusThrottleInterval: 30000,
|
|
revalidateOnMount: false,
|
|
refreshInterval: 0,
|
|
errorRetryCount: 2,
|
|
},
|
|
);
|
|
};
|