import { Button, Label, Slider } from "@methanium/ui"; import { invoke, isTauri } from "@tauri-apps/api/core"; import { RotateCcw } from "lucide-react"; import { useEffect, useState } from "react"; const DEFAULT_INITIAL_SCALE = 290; const MIN_INITIAL_SCALE = 210; const isAndroid = isTauri() && /Android/.test(navigator.userAgent); export default function Page() { const [initialScale, setInitialScale] = useState(DEFAULT_INITIAL_SCALE); const [loading, setLoading] = useState(isAndroid); useEffect(() => { if (!isAndroid) return; let active = true; void invoke("accessibility_get_initial_scale") .then((scale) => { if (active) setInitialScale(scale); }) .catch((error: unknown) => { console.error("Failed to load the Android initial scale", error); }) .finally(() => { if (active) setLoading(false); }); return () => { active = false; }; }, []); if (!isAndroid) return null; function updateInitialScale(nextScale: number) { setInitialScale(nextScale); void invoke("accessibility_set_initial_scale", { initialScale: nextScale, }).catch((error: unknown) => { console.error("Failed to update the Android initial scale", error); }); } return (
{initialScale}%
{ const nextScale = Array.isArray(value) ? value[0] : value; if (nextScale !== undefined) updateInitialScale(nextScale); }} />
); }