+ {isDesktop && (
+
+ setUrl(e.target.value)} placeholder="https://footpr.linyux.cn" />
+
+ )}
setUsername(e.target.value)} placeholder="3-32 位字母数字-_" onKeyDown={e => { if (e.key === 'Enter') void submit(); }} />
diff --git a/app/src/components/layout/AppShell.tsx b/app/src/components/layout/AppShell.tsx
index bd3e411..18bce68 100644
--- a/app/src/components/layout/AppShell.tsx
+++ b/app/src/components/layout/AppShell.tsx
@@ -5,10 +5,9 @@ import { Header } from './Header';
import { ToastProvider } from '@/components/ui';
import { LoginPage } from '@/components/auth/LoginPage';
import { getToken } from '@/lib/api';
-import { isTauriRef } from '@/lib/api';
export function AppShell() {
- const [authed, setAuthed] = useState(() => isTauriRef() || !!getToken());
+ const [authed, setAuthed] = useState(() => !!getToken());
const [navOpen, setNavOpen] = useState(false);
useEffect(() => {
diff --git a/app/src/components/layout/Sidebar.tsx b/app/src/components/layout/Sidebar.tsx
index 8f3c69b..26d5c0b 100644
--- a/app/src/components/layout/Sidebar.tsx
+++ b/app/src/components/layout/Sidebar.tsx
@@ -1,8 +1,8 @@
import { useState } from 'react';
import { NavLink } from 'react-router-dom';
-import { useQuery } from '@tanstack/react-query';
-import { CalendarDays, Rows3, ChartColumn, GraduationCap, Shapes, SlidersHorizontal, LogIn, ShieldCheck } from 'lucide-react';
-import { syncStatus, serverMe, clearToken, isTauriRef, getToken } from '@/lib/api';
+import { useQuery, useQueryClient } from '@tanstack/react-query';
+import { CalendarDays, Rows3, ChartColumn, GraduationCap, Shapes, SlidersHorizontal, LogIn, ShieldCheck, Cloud } from 'lucide-react';
+import { serverMe, clearToken, getToken } from '@/lib/api';
import { LoginDialog } from '@/components/auth/LoginDialog';
import { cn } from '@/lib/utils';
@@ -36,21 +36,16 @@ function LogoMark() {
);
}
-function baseUrl() {
- return isTauriRef() ? (localStorage.getItem('fp-server-url') || '') : '';
-}
-
export function Sidebar({ open, onClose }: { open: boolean; onClose: () => void }) {
- const isWeb = !isTauriRef();
- const sync = useQuery({ queryKey: ['sync-status'], queryFn: syncStatus, refetchInterval: 15000 });
+ const qc = useQueryClient();
const meQ = useQuery({
queryKey: ['me'],
- queryFn: () => serverMe(baseUrl()),
+ queryFn: () => serverMe(),
enabled: !!getToken(),
retry: 0
});
- const me = meQ.data ?? null;
const [loginOpen, setLoginOpen] = useState(false);
+ const me = meQ.data ?? null;
return (