From a560722ffd6450bff05840a541c3444807d02552 Mon Sep 17 00:00:00 2001 From: xiaoweii Date: Fri, 24 Jan 2025 14:50:44 +0800 Subject: [PATCH] feat: add tab container --- react-native/src/settings/SettingsScreen.tsx | 233 ++++++++++++++----- 1 file changed, 174 insertions(+), 59 deletions(-) diff --git a/react-native/src/settings/SettingsScreen.tsx b/react-native/src/settings/SettingsScreen.tsx index 7d66613..33f3d3d 100644 --- a/react-native/src/settings/SettingsScreen.tsx +++ b/react-native/src/settings/SettingsScreen.tsx @@ -89,6 +89,8 @@ function SettingsScreen(): React.JSX.Element { const [upgradeInfo, setUpgradeInfo] = useState(initUpgradeInfo); const [cost, setCost] = useState('0.00'); const controllerRef = useRef(null); + const [selectedTab, setSelectedTab] = useState('bedrock'); + useEffect(() => { return navigation.addListener('focus', () => { setCost(getTotalCost(getModelUsage()).toString()); @@ -248,71 +250,148 @@ function SettingsScreen(): React.JSX.Element { saveOpenAIProxyEnabled(value); }; - return ( - - - Amazon Bedrock - - - { - if (item.value !== '' && item.value !== region) { - setRegion(item.value); - saveRegion(item.value); - fetchAndSetModelNames().then(); - } - }} - placeholder="Select a region" - /> - - Other Model Provider - - - - - + const renderProviderSettings = () => { + switch (selectedTab) { + case 'bedrock': + return ( + <> + - - - Proxy - { + if (item.value !== '' && item.value !== region) { + setRegion(item.value); + saveRegion(item.value); + fetchAndSetModelNames().then(); + } + }} + placeholder="Select a region" /> + + ); + case 'ollama': + return ( + + ); + case 'deepseek': + return ( + + ); + case 'openai': + return ( + + + + + + Proxy + + + ); + default: + return null; + } + }; + + return ( + + + + setSelectedTab('bedrock')}> + + {isMac ? 'Amazon Bedrock' : 'Bedrock'} + + + setSelectedTab('ollama')}> + + Ollama + + + setSelectedTab('deepseek')}> + + DeepSeek + + + setSelectedTab('openai')}> + + OpenAI + + + + + {renderProviderSettings()} + + Select Model