From a277add6018e16010839c97cf9c44b4403fcc7df Mon Sep 17 00:00:00 2001 From: Andre Padez Date: Tue, 17 Feb 2026 00:36:31 +0000 Subject: [PATCH] no passkey gate --- .../officer-web/Screens/Dashboard/Layout.tsx | 3 +- .../Settings/ResourceSettings/index.tsx | 48 ++++++++++++++++++- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/src/apps/officer-web/Screens/Dashboard/Layout.tsx b/src/apps/officer-web/Screens/Dashboard/Layout.tsx index 91522d2b..8d25bab6 100644 --- a/src/apps/officer-web/Screens/Dashboard/Layout.tsx +++ b/src/apps/officer-web/Screens/Dashboard/Layout.tsx @@ -130,7 +130,8 @@ export function DashboardLayout({ children, mobileFull }: DashboardLayoutProps)
- {isProduction && passkeyCount === 0 ? : children} + {/* {isProduction && passkeyCount === 0 ? : children} */} + {children}
diff --git a/src/apps/officer-web/Screens/Dashboard/Settings/ResourceSettings/index.tsx b/src/apps/officer-web/Screens/Dashboard/Settings/ResourceSettings/index.tsx index 024dc351..c9a99de9 100644 --- a/src/apps/officer-web/Screens/Dashboard/Settings/ResourceSettings/index.tsx +++ b/src/apps/officer-web/Screens/Dashboard/Settings/ResourceSettings/index.tsx @@ -6,6 +6,8 @@ import { Button } from '@/components/ui/button'; import { Card } from '@/components/Card'; import { useClient } from 'hooks/useClient'; import { DashboardLayout } from '../../Layout'; +import { EmbeddableChat, useClaude, useOpenCode } from 'plugins/Chat/client'; +import { useVisibleClaudeModels, useVisibleOpenCodeModels } from '@/state/useModels'; type AppStatus = { id: string; @@ -77,10 +79,12 @@ export const ResourceSettings = () => { return app.hasUpdate && !(app.manualUpdateCommand ?? app.manualInstallCommand); }; + const [provider, setProvider] = useState<'claude' | 'opencode'>('claude'); + return ( -
- +
+

Applications

System tools and dependencies used by Officer.dev

@@ -163,7 +167,47 @@ export const ResourceSettings = () => {
)}
+ + + {provider === 'claude' ? ( + + ) : ( + + )} +
); }; + +type ChatInnerProps = { + onProviderChange: (p: 'claude' | 'opencode') => void; +}; + +const ClaudeChat = ({ onProviderChange }: ChatInnerProps) => { + const chat = useClaude(undefined, undefined, { replaceUrl: false }); + const models = useVisibleClaudeModels(); + return ( + + ); +}; + +const OpenCodeChat = ({ onProviderChange }: ChatInnerProps) => { + const chat = useOpenCode(undefined, undefined, { replaceUrl: false }); + const models = useVisibleOpenCodeModels(); + return ( + + ); +};