refactor: extract utility hook

This commit is contained in:
Carlos Valente
2024-11-21 19:18:29 +01:00
committed by Carlos Valente
parent 5d6345717f
commit c5a5eab225
2 changed files with 26 additions and 16 deletions
@@ -1,3 +1,4 @@
import { useMemo } from 'react';
import { useQuery } from '@tanstack/react-query';
import { ProjectFileListResponse } from 'ontime-types';
@@ -22,3 +23,23 @@ export function useProjectList() {
});
return { data: data ?? placeholderProjectList, status, refetch };
}
export function useOrderedProjectList() {
const response = useProjectList();
const { files, lastLoadedProject } = response.data;
const reorderedProjectFiles = useMemo(() => {
if (!files.length) return [];
const currentlyLoadedIndex = files.findIndex((project) => project.filename === lastLoadedProject);
if (currentlyLoadedIndex === -1) return files;
const projectFiles = [...files];
const current = projectFiles.splice(currentlyLoadedIndex, 1)[0];
return [current, ...projectFiles];
}, [files, lastLoadedProject]);
return { ...response, data: { reorderedProjectFiles, lastLoadedProject: response.data.lastLoadedProject } };
}