import { useCallback, useState } from 'react' import { openExternalUrl } from '@janhq/core' import { Input, ScrollArea, Select, SelectTrigger, SelectValue, SelectContent, SelectGroup, SelectItem, } from '@janhq/uikit' import { useAtomValue } from 'jotai' import { SearchIcon } from 'lucide-react' import ExploreModelList from './ExploreModelList' import { HuggingFaceModal } from './HuggingFaceModal' import { configuredModelsAtom, downloadedModelsAtom, } from '@/helpers/atoms/Model.atom' const ExploreModelsScreen = () => { const configuredModels = useAtomValue(configuredModelsAtom) const downloadedModels = useAtomValue(downloadedModelsAtom) const [searchValue, setsearchValue] = useState('') const [sortSelected, setSortSelected] = useState('All Models') const sortMenu = ['All Models', 'Recommended', 'Downloaded'] const [showHuggingFaceModal, setShowHuggingFaceModal] = useState(false) const filteredModels = configuredModels.filter((x) => { if (sortSelected === 'Downloaded') { return ( x.name.toLowerCase().includes(searchValue.toLowerCase()) && downloadedModels.some((y) => y.id === x.id) ) } else if (sortSelected === 'Recommended') { return ( x.name.toLowerCase().includes(searchValue.toLowerCase()) && x.metadata.tags.includes('Featured') ) } else { return x.name.toLowerCase().includes(searchValue.toLowerCase()) } }) const onHowToImportModelClick = useCallback(() => { openExternalUrl('https://jan.ai/guides/using-models/import-manually/') }, []) const onHuggingFaceConverterClick = () => { setShowHuggingFaceModal(true) } return (
How to manually import models
or
Convert from Hugging Face