Untitled
unknown
plain_text
a year ago
3.1 kB
4
Indexable
import React, { useState, useEffect } from 'react'; import { Grid, FormControl, InputLabel, Select, MenuItem, Button, Box, Typography } from '@mui/material'; import * as XLSX from 'xlsx'; const styles = { formControl: { color: '#000000', width: '100%', marginBottom: '20px', }, inputLabel: { color: '#0288d1', }, select: { '&:hover': { borderColor: '#00acc1', // Hover border color }, '&.Mui-focused': { borderColor: '#00acc1', // Focused border color }, }, button: { backgroundColor: '#00acc1', // Custom button color color: '#ffffff', // Button text color '&:hover': { backgroundColor: '#00838f', // Button hover color }, }, errorText: { color: '#d32f2f', marginTop: '10px', }, }; function ConverterForm({ inputFile, setOutputFile, onInputTypeChange, fileTypeError }) { const [inputType, setInputType] = useState(''); const [outputType, setOutputType] = useState(''); useEffect(() => { onInputTypeChange(inputType); }, [inputType, onInputTypeChange]); const handleConvert = () => { // Conversion logic here console.log('handle convert'); }; return ( <Box marginTop={2}> <Grid container spacing={2}> <Grid item xs={12} sm={6}> <FormControl variant="outlined" style={styles.formControl}> <InputLabel style={styles.inputLabel}>Input File Type</InputLabel> <Select value={inputType} onChange={(e) => setInputType(e.target.value)} label="Input File Type" style={styles.select} > <MenuItem value="json">JSON</MenuItem> <MenuItem value="csv">CSV</MenuItem> <MenuItem value="excel">Excel</MenuItem> </Select> </FormControl> </Grid> <Grid item xs={12} sm={6}> <FormControl variant="outlined" style={styles.formControl}> <InputLabel style={styles.inputLabel}>Output File Type</InputLabel> <Select value={outputType} onChange={(e) => setOutputType(e.target.value)} label="Output File Type" style={styles.select} > <MenuItem value="json">JSON</MenuItem> <MenuItem value="csv">CSV</MenuItem> <MenuItem value="xlsx">Excel</MenuItem> </Select> </FormControl> </Grid> {fileTypeError && ( <Grid item xs={12}> <Typography variant="body2" style={styles.errorText}> {fileTypeError} </Typography> </Grid> )} <Grid item xs={12}> <Button variant="contained" style={styles.button} fullWidth onClick={handleConvert} disabled={Boolean(fileTypeError)} > Convert </Button> </Grid> </Grid> </Box> ); } export default ConverterForm;
Editor is loading...
Leave a Comment