import { Check, X } from 'lucide-react'; import { useEffect, useState } from 'react'; import CloseButton from '~renderer/components/styled/CloseButton'; import IconSpinner from '~renderer/components/styled/IconSpinner'; import TextButton from '~renderer/components/styled/TextButton'; import { api } from '~renderer/utils/api'; import { useT } from '~renderer/i18n'; const useDebounced = (value: string, delay: number) => { const [debouncedValue, setDebouncedValue] = useState(value); useEffect(() => { const timeout = setTimeout(() => setDebouncedValue(value), delay); return () => clearTimeout(timeout); }, [value, delay]); return debouncedValue; }; const CustomAddonDialog = ({ close }: { close: () => void }) => { const t = useT(); const [url, setUrl] = useState(''); const debouncedUrl = useDebounced(url, 500); const response = api.addons.checkGitUrl.useQuery(debouncedUrl, { enabled: !!debouncedUrl }); const update = api.addons.install.useMutation(); return (
{response.data ? t('addons.readyToInstall') : t('addons.invalidGitUrl')}