mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-11 17:26:32 +02:00
fix(ui): add hydration guards to settings and grid pages to fix error #418
This commit is contained in:
1 parent
69e7db4a9d
commit
643b26dcf3
2 files changed
+35
-18
No files matched your search
@@ -59,6 +59,8 @@ export default function SettingsPage() {
|
||||
const [selectedModel, setSelectedModel] = useState("google/gemini-flash-1.5");
|
||||
const [modelsStatus, setModelsStatus] = useState<"idle" | "loading" | "ok" | "error">("idle");
|
||||
|
||||
const [isMounted, setIsMounted] = useState(false);
|
||||
|
||||
const {
|
||||
host, setHost,
|
||||
port, setPort,
|
||||
@@ -70,10 +72,27 @@ export default function SettingsPage() {
|
||||
} = useDbSettingsStore();
|
||||
|
||||
useEffect(() => {
|
||||
// Optionnel : On pourrait charger la config serveur au montage si on veut écraser le localStorage
|
||||
// Pour l'instant on laisse le localStorage faire son travail, mais on offre une fonction de reset
|
||||
setIsMounted(true);
|
||||
}, []);
|
||||
|
||||
const fetchModels = useCallback(async (key: string) => {
|
||||
if (!key.trim()) return;
|
||||
setModelsStatus("loading");
|
||||
try {
|
||||
const res = await fetch("/api/openrouter/models", { headers: { "x-openrouter-key": key } });
|
||||
if (!res.ok) throw new Error();
|
||||
const data = await res.json();
|
||||
setModels(data.models ?? []);
|
||||
setModelsStatus("ok");
|
||||
} catch {
|
||||
setModelsStatus("error");
|
||||
}
|
||||
}, []);
|
||||
|
||||
if (!isMounted) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const reloadFromServer = async () => {
|
||||
const config = await getSavedDatabaseConfig();
|
||||
if (config && config.url) {
|
||||
@@ -92,20 +111,6 @@ export default function SettingsPage() {
|
||||
}
|
||||
};
|
||||
|
||||
const fetchModels = useCallback(async (key: string) => {
|
||||
if (!key.trim()) return;
|
||||
setModelsStatus("loading");
|
||||
try {
|
||||
const res = await fetch("/api/openrouter/models", { headers: { "x-openrouter-key": key } });
|
||||
if (!res.ok) throw new Error();
|
||||
const data = await res.json();
|
||||
setModels(data.models ?? []);
|
||||
setModelsStatus("ok");
|
||||
} catch {
|
||||
setModelsStatus("error");
|
||||
}
|
||||
}, []);
|
||||
|
||||
const testDb = async () => {
|
||||
setDbStatus("testing");
|
||||
setDbError(null);
|
||||
|
||||
Reference in new issue
Block a user