import type { Shortcut } from "./types/proto/api/v2/shortcut_service_pb"; import { Button, Divider, Input } from "@mui/joy"; import { useStorage } from "@plasmohq/storage/hook"; import { useEffect, useState } from "react"; import { Toaster, toast } from "react-hot-toast"; import Icon from "./components/Icon"; import Logo from "./components/Logo"; import PullShortcutsButton from "./components/PullShortcutsButton"; import ShortcutsContainer from "./components/ShortcutsContainer"; import "./style.css"; interface SettingState { domain: string; accessToken: string; } const IndexOptions = () => { const [domain, setDomain] = useStorage("domain", (v) => (v ? v : "")); const [accessToken, setAccessToken] = useStorage("access_token", (v) => (v ? v : "")); const [settingState, setSettingState] = useState({ domain, accessToken, }); const [shortcuts] = useStorage("shortcuts", []); const isInitialized = domain && accessToken; useEffect(() => { setSettingState({ domain, accessToken, }); }, [domain, accessToken]); const setPartialSettingState = (partialSettingState: Partial) => { setSettingState((prevState) => ({ ...prevState, ...partialSettingState, })); }; const handleSaveSetting = () => { setDomain(settingState.domain); setAccessToken(settingState.accessToken); toast.success("Setting saved"); }; return ( <>

Slash / Setting

Domain {domain !== "" && ( Go to my Slash )}
setPartialSettingState({ domain: e.target.value })} />
Access Token
setPartialSettingState({ accessToken: e.target.value })} />
{isInitialized && ( <>

Shortcuts ({shortcuts.length})

)}
); }; export default IndexOptions;