Add icon picker for service icon

Co-authored-by: Meier Lukas <meierschlumpf@gmail.com>
This commit is contained in:
Manuel Ruwe
2022-12-05 21:43:47 +01:00
parent b7bb1302e4
commit d7bec26ee2
8 changed files with 172 additions and 35 deletions

View File

@@ -0,0 +1,26 @@
import { useQuery } from '@tanstack/react-query';
import { IconSelectorItem } from '../../types/iconSelector/iconSelectorItem';
export const useRepositoryIconsQuery = <TRepositoryIcon extends object>({
url,
converter,
}: {
url: string;
converter: (value: TRepositoryIcon) => IconSelectorItem;
}) =>
useQuery({
queryKey: ['repository-icons', { url }],
queryFn: async () => fetchRepositoryIcons<TRepositoryIcon>(url),
select(data) {
return data.map(x => converter(x));
},
refetchOnWindowFocus: false,
});
const fetchRepositoryIcons =
async <TRepositoryIcon extends object>(url: string): Promise<TRepositoryIcon[]> => {
const response = await fetch(
'https://api.github.com/repos/walkxcode/Dashboard-Icons/contents/png'
);
return response.json();
};