Spaces:
Sleeping
Sleeping
File size: 1,436 Bytes
56fda74 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
import React, { useState } from 'react';
import { Container, CssBaseline, ThemeProvider, createTheme } from '@mui/material';
import FileUpload from './components/FileUpload';
import ChatInterface from './components/ChatInterface';
import Header from './components/Header';
const theme = createTheme({
palette: {
primary: {
main: '#1976d2',
},
secondary: {
main: '#dc004e',
},
background: {
default: '#f5f5f5',
},
},
});
function App() {
const [fileUploaded, setFileUploaded] = useState(false);
const [fileName, setFileName] = useState('');
const [isProcessing, setIsProcessing] = useState(false);
const handleFileUploadSuccess = (name) => {
setFileUploaded(true);
setFileName(name);
};
const handleProcessingStart = () => {
setIsProcessing(true);
};
const handleProcessingEnd = () => {
setIsProcessing(false);
};
return (
<ThemeProvider theme={theme}>
<CssBaseline />
<Container maxWidth="md" sx={{ py: 4 }}>
<Header />
<FileUpload
onUploadSuccess={handleFileUploadSuccess}
onProcessingStart={handleProcessingStart}
onProcessingEnd={handleProcessingEnd}
/>
{fileUploaded && (
<ChatInterface
fileName={fileName}
isProcessing={isProcessing}
/>
)}
</Container>
</ThemeProvider>
);
}
export default App; |