import { IconButton } from "@/app/components/button"; import GithubIcon from "@/app/icons/github.svg"; import SDIcon from "@/app/icons/sd.svg"; import ReturnIcon from "@/app/icons/return.svg"; import HistoryIcon from "@/app/icons/history.svg"; import Locale from "@/app/locales"; import { Path, REPO_URL } from "@/app/constant"; import { useNavigate } from "react-router-dom"; import dynamic from "next/dynamic"; import { SideBarContainer, SideBarBody, SideBarHeader, SideBarTail, useDragSideBar, useHotKey, } from "@/app/components/sidebar"; import { getParams, getModelParamBasicData } from "./sd-panel"; import { useSdStore } from "@/app/store/sd"; import { showToast } from "@/app/components/ui-lib"; import { useMobileScreen } from "@/app/utils"; const SdPanel = dynamic( async () => (await import("@/app/components/sd")).SdPanel, { loading: () => null, }, ); export function SideBar(props: { className?: string }) { useHotKey(); const isMobileScreen = useMobileScreen(); const { onDragStart, shouldNarrow } = useDragSideBar(); const navigate = useNavigate(); const sdStore = useSdStore(); const currentModel = sdStore.currentModel; const params = sdStore.currentParams; const setParams = sdStore.setCurrentParams; const handleSubmit = () => { const columns = getParams?.(currentModel, params); const reqParams: any = {}; for (let i = 0; i < columns.length; i++) { const item = columns[i]; reqParams[item.value] = params[item.value] ?? null; if (item.required) { if (!reqParams[item.value]) { showToast(Locale.SdPanel.ParamIsRequired(item.name)); return; } } } let data: any = { model: currentModel.value, model_name: currentModel.name, status: "wait", params: reqParams, created_at: new Date().toLocaleString(), img_data: "", }; sdStore.sendTask(data, () => { setParams(getModelParamBasicData(columns, params, true)); navigate(Path.SdNew); }); }; return ( {isMobileScreen ? (
} bordered title={Locale.Sd.Actions.ReturnHome} onClick={() => navigate(Path.Home)} />
} bordered title={Locale.Sd.Actions.History} onClick={() => navigate(Path.SdNew)} />
) : ( } bordered title={Locale.Sd.Actions.ReturnHome} onClick={() => navigate(Path.Home)} /> } logo={} > )} } shadow /> } secondaryAction={ } />
); }