import { useAtom } from "jotai"; import { selectedAppIdAtom } from "@/atoms/appAtoms"; import { useLoadApps } from "@/hooks/useLoadApps"; import { useRouter } from "@tanstack/react-router"; import { useSettings } from "@/hooks/useSettings"; import { Button } from "@/components/ui/button"; // @ts-ignore import logo from "../../assets/logo_transparent.png"; import { providerSettingsRoute } from "@/routes/settings/providers/$provider"; import { cn } from "@/lib/utils"; import { useDeepLink } from "@/contexts/DeepLinkContext"; import { useEffect, useState } from "react"; import { DyadProSuccessDialog } from "@/components/DyadProSuccessDialog"; import { useTheme } from "@/contexts/ThemeContext"; import { IpcClient } from "@/ipc/ipc_client"; export const TitleBar = () => { const [selectedAppId] = useAtom(selectedAppIdAtom); const { apps } = useLoadApps(); const { navigate } = useRouter(); const { settings, refreshSettings } = useSettings(); const [isSuccessDialogOpen, setIsSuccessDialogOpen] = useState(false); const [showWindowControls, setShowWindowControls] = useState(false); useEffect(() => { // Check if we're running on Windows const checkPlatform = async () => { try { const platform = await IpcClient.getInstance().getSystemPlatform(); setShowWindowControls(platform !== "darwin"); } catch (error) { console.error("Failed to get platform info:", error); } }; checkPlatform(); }, []); const showDyadProSuccessDialog = () => { setIsSuccessDialogOpen(true); }; const { lastDeepLink } = useDeepLink(); useEffect(() => { const handleDeepLink = async () => { if (lastDeepLink?.type === "dyad-pro-return") { await refreshSettings(); showDyadProSuccessDialog(); } }; handleDeepLink(); }, [lastDeepLink]); // Get selected app name const selectedApp = apps.find((app) => app.id === selectedAppId); const displayText = selectedApp ? `App: ${selectedApp.name}` : "(no app selected)"; const handleAppClick = () => { if (selectedApp) { navigate({ to: "/app-details", search: { appId: selectedApp.id } }); } }; const isDyadPro = !!settings?.providerSettings?.auto?.apiKey?.value; const isDyadProEnabled = settings?.enableDyadPro; return ( <>