import React from 'react'; import { observer } from 'mobx-react-lite'; import { IconButton, SxProps } from '@mui/material'; import Box from '@mui/material/Box'; import Tabs from '@mui/material/Tabs'; import Tab from '@mui/material/Tab'; import AddIcon from '@mui/icons-material/Add'; import CloseIcon from '@mui/icons-material/Close'; import UploadIcon from '@mui/icons-material/Upload'; import DownloadIcon from '@mui/icons-material/Download'; import HelpOutlineIcon from '@mui/icons-material/HelpOutline'; import LogoIcon from '@/icons/LogoIcon'; import { globalStorage } from '@/storage'; export default observer(({ style = {} }: { style?: SxProps }) => { const pageTags = React.useMemo( () => ( globalStorage.focusPlan(newId || undefined) } aria-label="plan tabs" variant="scrollable" scrollButtons="auto" TabIndicatorProps={{ children: , }} sx={{ minHeight: '40px', height: '40px', '& .MuiTabs-indicator': { display: 'flex', justifyContent: 'center', backgroundColor: 'transparent', }, '& .MuiTabs-indicatorSpan': { maxWidth: 60, width: '100%', backgroundColor: 'rgb(168, 247, 227)', }, }} > } value="" sx={{ color: '#fffb', minHeight: '40px', height: '40px', background: '#fff1', width: '40px', minWidth: '0', '&.Mui-selected': { color: '#fff', fontWeight: 900, }, }} /> {globalStorage.planTabArrange.map(id => ( globalStorage.removePlan(id)} sx={{ opacity: 0.6, '&:hover': { opacity: 1 }, }} > Plan { const jsonString = JSON.stringify( globalStorage.dumpPlan(id), ); // download file const blob = new Blob([jsonString], { type: 'application/json', }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `plan-${id}.json`; a.click(); a.remove(); }} > } sx={{ color: '#fffb', minHeight: '40px', height: '40px', borderLeft: '1px solid #3333', background: '#fff1', '&.Mui-selected': { color: '#fff', fontWeight: 900, }, padding: '0 4px', }} /> ))} ), [globalStorage.planTabArrange, globalStorage.currentPlanId], ); return ( {globalStorage.devMode ? ( AGENTCOORD ) : ( pageTags )} { const file = e.target.files?.[0]; if (file) { const reader = new FileReader(); reader.onload = event => { const content = event.target?.result as string; globalStorage.loadPlan(JSON.parse(content)); }; reader.readAsText(file); } }} /> {globalStorage.devMode && globalStorage.currentPlanId && ( { const jsonString = JSON.stringify( globalStorage.dumpPlan(globalStorage.currentPlanId!), ); // download file const blob = new Blob([jsonString], { type: 'application/json', }); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `plan-${globalStorage.currentPlanId!}.json`; a.click(); a.remove(); }} > )} {!globalStorage.devMode && ( AgentCoord )} ); });