MCPcopy
hub / github.com/AsyncFuncAI/deepwiki-open / UserSelector

Function UserSelector

src/components/UserSelector.tsx:46–522  ·  view source on GitHub ↗
({
  provider,
  setProvider,
  model,
  setModel,
  isCustomModel,
  setIsCustomModel,
  customModel,
  setCustomModel,

  // File filter configuration
  showFileFilters = false,
  excludedDirs = '',
  setExcludedDirs,
  excludedFiles = '',
  setExcludedFiles,
  includedDirs = '',
  setIncludedDirs,
  includedFiles = '',
  setIncludedFiles
}: ModelSelectorProps)

Source from the content-addressed store, hash-verified

44}
45
46export default function UserSelector({
47 provider,
48 setProvider,
49 model,
50 setModel,
51 isCustomModel,
52 setIsCustomModel,
53 customModel,
54 setCustomModel,
55
56 // File filter configuration
57 showFileFilters = false,
58 excludedDirs = '',
59 setExcludedDirs,
60 excludedFiles = '',
61 setExcludedFiles,
62 includedDirs = '',
63 setIncludedDirs,
64 includedFiles = '',
65 setIncludedFiles
66}: ModelSelectorProps) {
67 // State to manage the visibility of the filters modal and filter section
68 const [isFilterSectionOpen, setIsFilterSectionOpen] = useState(false);
69 // State to manage filter mode: 'exclude' or 'include'
70 const [filterMode, setFilterMode] = useState<'exclude' | 'include'>('exclude');
71 const { messages: t } = useLanguage();
72
73 // State for model configurations from backend
74 const [modelConfig, setModelConfig] = useState<ModelConfig | null>(null);
75 const [isLoading, setIsLoading] = useState(true);
76 const [error, setError] = useState<string | null>(null);
77
78 // State for viewing default values
79 const [showDefaultDirs, setShowDefaultDirs] = useState(false);
80 const [showDefaultFiles, setShowDefaultFiles] = useState(false);
81
82 // Fetch model configurations from the backend
83 useEffect(() => {
84 const fetchModelConfig = async () => {
85 try {
86 setIsLoading(true);
87 setError(null);
88
89 const response = await fetch('/api/models/config');
90
91 if (!response.ok) {
92 throw new Error(`Error fetching model configurations: ${response.status}`);
93 }
94
95 const data = await response.json();
96 setModelConfig(data);
97
98 // Initialize provider and model with defaults from API if not already set
99 if (!provider && data.defaultProvider) {
100 setProvider(data.defaultProvider);
101
102 // Find the default provider and set its default model
103 const selectedProvider = data.providers.find((p: Provider) => p.id === data.defaultProvider);

Callers

nothing calls this directly

Calls 3

useLanguageFunction · 0.90
fetchModelConfigFunction · 0.85
handleProviderChangeFunction · 0.85

Tested by

no test coverage detected