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