diff --git a/apps/desktop/src/renderer/src/components/qr-code.tsx b/apps/desktop/src/renderer/src/components/qr-code.tsx index 0dd5eef6..6ea9a019 100644 --- a/apps/desktop/src/renderer/src/components/qr-code.tsx +++ b/apps/desktop/src/renderer/src/components/qr-code.tsx @@ -35,7 +35,7 @@ function generateToken(): string { * - Auto-refreshes when expired * - Registers token with Hub */ -function useQRToken(agentId: string, expirySeconds: number) { +export function useQRToken(agentId: string, expirySeconds: number) { const [token, setToken] = useState(generateToken) const [expiresAt, setExpiresAt] = useState(() => Date.now() + expirySeconds * 1000) @@ -59,7 +59,7 @@ function useQRToken(agentId: string, expirySeconds: number) { * Hook for countdown timer * Returns remaining seconds, auto-updates every second */ -function useCountdown(expiresAt: number, onExpire: () => void) { +export function useCountdown(expiresAt: number, onExpire: () => void) { const [remaining, setRemaining] = useState(() => Math.max(0, Math.ceil((expiresAt - Date.now()) / 1000)) ) @@ -121,7 +121,7 @@ function CornerAccent({ position }: { position: 'tl' | 'tr' | 'bl' | 'br' }) { } /** QR code frame with corner accents */ -function QRCodeFrame({ children }: { children: React.ReactNode }) { +export function QRCodeFrame({ children }: { children: React.ReactNode }) { return (
{error}
+Connect messaging platforms to chat with your agent.
+ +- Message @multica_bot on Telegram to get started. Discord and Slack coming soon.
- Create bots that talk to your local agent from anywhere. + Scan the QR code with your phone camera to connect on Telegram.
- Your bot connects directly to this machine — - chat from your phone, tablet, or any device. + Chat with your agent from your phone via Telegram. + Your messages are routed through the Gateway to this machine.
Telegram
-- Bot API long polling -
-- Get a bot token -
-- {isRunning - ? 'Bot is running. Send it a message to test.' - : isStarting - ? 'Starting bot...' - : 'Bot configured.'} -
-{localError}
- )} - {state?.status === 'error' && state.error && ( -{state.error}
- )} -