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
)}
);
});