Create monorepo from known-good production state
This commit is contained in:
commit
c034824338
651 changed files with 120469 additions and 0 deletions
93
bgbye/src/App.js
Normal file
93
bgbye/src/App.js
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
import React, { useState } from 'react';
|
||||
import { Box, ThemeProvider, createTheme, Paper, FormGroup, FormControlLabel, Checkbox, Divider, Typography } from '@mui/material';
|
||||
import { Toaster, toast } from 'react-hot-toast';
|
||||
import ImageUpload from './components/ImageUpload';
|
||||
import ResponsiveAppBar from './components/ResponsiveAppBar';
|
||||
import MethodSelector from './components/MethodSelector';
|
||||
import ModelsInfo from './components/ModelsInfo';
|
||||
|
||||
// Utility function to show error toast
|
||||
const showErrorToast = (message) => {
|
||||
toast.error(message, {
|
||||
duration: 4000,
|
||||
position: 'bottom-center',
|
||||
style: {
|
||||
background: '#FF4136',
|
||||
color: '#FFFFFF',
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const APP_ID = 'bgbye';
|
||||
|
||||
function App() {
|
||||
const [processedPanels, setProcessedPanels] = useState(0);
|
||||
const [darkMode, setDarkMode] = useState(() => {
|
||||
const storedTheme = localStorage.getItem(APP_ID + '_theme');
|
||||
return storedTheme !== null ? storedTheme === 'true' : false;
|
||||
});
|
||||
const [selectedModels, setSelectedModels] = useState(
|
||||
Object.keys(ModelsInfo).reduce((acc, key) => {
|
||||
acc[key] = true;
|
||||
return acc;
|
||||
}, {})
|
||||
);
|
||||
|
||||
const handleProcessed = () => {
|
||||
setProcessedPanels((prevCount) => prevCount + 1);
|
||||
};
|
||||
|
||||
const toggleTheme = () => {
|
||||
setDarkMode((prevMode) => !prevMode);
|
||||
localStorage.setItem(APP_ID + '_theme', !darkMode);
|
||||
};
|
||||
|
||||
const handleModelChange = (event) => {
|
||||
setSelectedModels({
|
||||
...selectedModels,
|
||||
[event.target.name]: event.target.checked
|
||||
});
|
||||
};
|
||||
|
||||
const theme = createTheme({
|
||||
palette: {
|
||||
mode: darkMode ? 'dark' : 'light',
|
||||
background: {
|
||||
default: darkMode
|
||||
? 'linear-gradient(180deg, #10364a 30%, #0d171c 90%)'
|
||||
: 'linear-gradient(180deg, #cbdbf2 30%, #b0ccff 90%)',
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
return (
|
||||
<ThemeProvider theme={theme}>
|
||||
<Box
|
||||
sx={{
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'center',
|
||||
minHeight: '100vh',
|
||||
background: theme.palette.background.default,
|
||||
}}
|
||||
>
|
||||
<ResponsiveAppBar toggleTheme={toggleTheme} darkMode={darkMode}/>
|
||||
{Array.from({ length: processedPanels + 1 }).map((_, index) => (
|
||||
<Box key={index} sx={{ mt: 4 }}>
|
||||
<ImageUpload
|
||||
onProcessed={handleProcessed}
|
||||
theme={theme}
|
||||
fileID={index}
|
||||
selectedModels={selectedModels}
|
||||
showErrorToast={showErrorToast}
|
||||
/>
|
||||
</Box>
|
||||
))}
|
||||
<MethodSelector selectedModels={selectedModels} handleModelChange={handleModelChange} />
|
||||
</Box>
|
||||
<Toaster />
|
||||
</ThemeProvider>
|
||||
);
|
||||
}
|
||||
|
||||
export default App;
|
||||
Loading…
Add table
Add a link
Reference in a new issue