export {};
// import { useState, useEffect, useMemo, HTMLProps, useRef } from "react";
// import styles from "./settings.module.scss";
// import ResetIcon from "../icons/reload.svg";
// import AddIcon from "../icons/add.svg";
// import CloseIcon from "../icons/close.svg";
// import CopyIcon from "../icons/copy.svg";
// import ClearIcon from "../icons/clear.svg";
// import LoadingIcon from "../icons/three-dots.svg";
// import EditIcon from "../icons/edit.svg";
// import EyeIcon from "../icons/eye.svg";
// import {
// Input,
// List,
// ListItem,
// Modal,
// PasswordInput,
// Popover,
// Select,
// } from "./ui-lib";
// import { ModelConfigList } from "./model-config";
// import { IconButton } from "./button";
// import {
// SubmitKey,
// useChatStore,
// Theme,
// useUpdateStore,
// useAccessStore,
// useAppConfig,
// } from "../store";
// import Locale, {
// AllLangs,
// ALL_LANG_OPTIONS,
// changeLang,
// getLang,
// } from "../locales";
// import { copyToClipboard } from "../utils";
// import Link from "next/link";
// import { Path, UPDATE_URL } from "../constant";
// import { Prompt, SearchService, usePromptStore } from "../store/prompt";
// import { ErrorBoundary } from "./error";
// import { InputRange } from "./input-range";
// import { useNavigate } from "react-router-dom";
// import { Avatar, AvatarPicker } from "./emoji";
// function EditPromptModal(props: { id: number; onClose: () => void }) {
// const promptStore = usePromptStore();
// const prompt = promptStore.get(props.id);
// return prompt ? (
//
// ) : null;
// }
// function UserPromptModal(props: { onClose?: () => void }) {
// const promptStore = usePromptStore();
// const userPrompts = promptStore.getUserPrompts();
// const builtinPrompts = SearchService.builtinPrompts;
// const allPrompts = userPrompts.concat(builtinPrompts);
// const [searchInput, setSearchInput] = useState("");
// const [searchPrompts, setSearchPrompts] = useState([]);
// const prompts = searchInput.length > 0 ? searchPrompts : allPrompts;
// const [editingPromptId, setEditingPromptId] = useState();
// useEffect(() => {
// if (searchInput.length > 0) {
// const searchResult = SearchService.search(searchInput);
// setSearchPrompts(searchResult);
// } else {
// setSearchPrompts([]);
// }
// }, [searchInput]);
// return (
//
//
props.onClose?.()}
// actions={[
//
// promptStore.add({
// title: "Empty Prompt",
// content: "Empty Prompt Content",
// })
// }
// icon={}
// bordered
// text={Locale.Settings.Prompt.Modal.Add}
// />,
// ]}
// >
//
//
setSearchInput(e.currentTarget.value)}
// >
//
// {prompts.map((v, _) => (
//
//
//
{v.title}
//
// {v.content}
//
//
//
// {v.isUser && (
// }
// className={styles["user-prompt-button"]}
// onClick={() => promptStore.remove(v.id!)}
// />
// )}
// {v.isUser ? (
// }
// className={styles["user-prompt-button"]}
// onClick={() => setEditingPromptId(v.id)}
// />
// ) : (
// }
// className={styles["user-prompt-button"]}
// onClick={() => setEditingPromptId(v.id)}
// />
// )}
// }
// className={styles["user-prompt-button"]}
// onClick={() => copyToClipboard(v.content)}
// />
//
//
// ))}
//
//
//
// {editingPromptId !== undefined && (
//
setEditingPromptId(undefined)}
// />
// )}
//
// );
// }
// function formatVersionDate(t: string) {
// const d = new Date(+t);
// const year = d.getUTCFullYear();
// const month = d.getUTCMonth() + 1;
// const day = d.getUTCDate();
// return [
// year.toString(),
// month.toString().padStart(2, "0"),
// day.toString().padStart(2, "0"),
// ].join("");
// }
// export function Settings() {
// const navigate = useNavigate();
// const [showEmojiPicker, setShowEmojiPicker] = useState(false);
// const config = useAppConfig();
// const updateConfig = config.update;
// const resetConfig = config.reset;
// const chatStore = useChatStore();
// const updateStore = useUpdateStore();
// const [checkingUpdate, setCheckingUpdate] = useState(false);
// const currentVersion = formatVersionDate(updateStore.version);
// const remoteId = formatVersionDate(updateStore.remoteVersion);
// const hasNewVersion = currentVersion !== remoteId;
// function checkUpdate(force = false) {
// setCheckingUpdate(true);
// updateStore.getLatestVersion(force).then(() => {
// setCheckingUpdate(false);
// });
// console.log(
// "[Update] local version ",
// new Date(+updateStore.version).toLocaleString(),
// );
// console.log(
// "[Update] remote version ",
// new Date(+updateStore.remoteVersion).toLocaleString(),
// );
// }
// const usage = {
// used: updateStore.used,
// subscription: updateStore.subscription,
// };
// const [loadingUsage, setLoadingUsage] = useState(false);
// function checkUsage(force = false) {
// setLoadingUsage(true);
// updateStore.updateUsage(force).finally(() => {
// setLoadingUsage(false);
// });
// }
// const accessStore = useAccessStore();
// const enabledAccessControl = useMemo(
// () => accessStore.enabledAccessControl(),
// // eslint-disable-next-line react-hooks/exhaustive-deps
// [],
// );
// const promptStore = usePromptStore();
// const builtinCount = SearchService.count.builtin;
// const customCount = promptStore.getUserPrompts().length ?? 0;
// const [shouldShowPromptModal, setShowPromptModal] = useState(false);
// const showUsage = accessStore.isAuthorized();
// useEffect(() => {
// // checks per minutes
// checkUpdate();
// showUsage && checkUsage();
// // eslint-disable-next-line react-hooks/exhaustive-deps
// }, []);
// useEffect(() => {
// const keydownEvent = (e: KeyboardEvent) => {
// if (e.key === "Escape") {
// navigate(Path.Home);
// }
// };
// document.addEventListener("keydown", keydownEvent);
// return () => {
// document.removeEventListener("keydown", keydownEvent);
// };
// // eslint-disable-next-line react-hooks/exhaustive-deps
// }, []);
// return (
//
//
//
//
// {Locale.Settings.Title}
//
//
// {Locale.Settings.SubTitle}
//
//
//
//
// }
// onClick={() => {
// if (confirm(Locale.Settings.Actions.ConfirmClearAll)) {
// chatStore.clearAllData();
// }
// }}
// bordered
// title={Locale.Settings.Actions.ClearAll}
// />
//
//
// }
// onClick={() => {
// if (confirm(Locale.Settings.Actions.ConfirmResetAll)) {
// resetConfig();
// }
// }}
// bordered
// title={Locale.Settings.Actions.ResetAll}
// />
//
//
// }
// onClick={() => navigate(Path.Home)}
// bordered
// title={Locale.Settings.Actions.Close}
// />
//
//
//
//
//
// );
// }