import { IconButton } from '@/app/components/button'; import { SideBarBody, SideBarContainer, SideBarHeader, SideBarTail, useDragSideBar, useHotKey, } from '@/app/components/sidebar'; import { showToast } from '@/app/components/ui-lib'; import { Path, REPO_URL } from '@/app/constant'; import GithubIcon from '@/app/icons/github.svg'; import HistoryIcon from '@/app/icons/history.svg'; import ReturnIcon from '@/app/icons/return.svg'; import SDIcon from '@/app/icons/sd.svg'; import Locale from '@/app/locales'; import { useSdStore } from '@/app/store/sd'; import { useMobileScreen } from '@/app/utils'; import dynamic from 'next/dynamic'; import { useNavigate } from 'react-router-dom'; import { getModelParamBasicData, getParams } from './sd-panel'; 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; } } } const 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={( )} />
); }