// import './login.css';
import { Backdrop, Box, Button, CircularProgress, TextField, List, ListItem, ListItemButton, ListItemText, ListItemIcon, Select, MenuItem } from '@mui/material';
import React, { useState, useEffect } from 'react'
import { dbGetCollection, dbGetItems, dbUpdateCollectionGlob, dbUpdateCollectionSummary, dbUpdateCollectionSummaryNLTK, dbUpdateCollectionSummaryBERT } from './database_util';

import AddIcon from '@mui/icons-material/Add';

const CollectionEditor = (props) => {
    const [open, setOpen] = useState(false);
    const [summarizer, setSummarizer] = useState('');

    const updateGlob = (event) => {
        // console.log();

        let copy =  JSON.parse(JSON.stringify(props.collection))

        copy["collection_data"]["glob"] = event.target.value

        props.onCollectionUpdate(copy)

        // console.log(copy);

    }

    const summary_array = () => {
        return [["T5",props.collection["t5_summary"]], ["NLTK", props.collection["nltk_summary"]], ["BERT",props.collection["bert_summary"]]]
    }
 
    const generateSummary = async () => {
        if (summarizer === '') {
            return;
        }
        setOpen(true);
        let id = props.collection["collection_id"]

        await dbUpdateCollectionSummary(id, summarizer);
        props.onCollectionUpdate(await dbGetCollection(id));
        setOpen(false);
    }

    return (
        <Box>
            <h1>{props.collection["collection_name"]}</h1>

            <h3>Loaded Files</h3>
            
            <List sx={{boxShadow:1}}>
            {
                props.loadedRawFiles.map((f) => {
                    return (
                        <ListItem>
                            <ListItemButton>
                                <ListItemText>
                                    {f}
                                </ListItemText>
                            </ListItemButton>
                        </ListItem>
                    );
                })
            }
            </List>
            <List sx={{boxShadow:1}}>
                <ListItem>
                    <ListItemText>
                        Please select which summarizer you would like to use to generate the summary
                    </ListItemText>
                    <Select 
                        value={summarizer} 
                        onChange={(e) => setSummarizer(e.target.value)} 
                        sx={{ width: "300px" }}
                    >
                        <MenuItem value="t5">T5 Summarizer</MenuItem>
                        <MenuItem value="nltk">NLTK Summarizer</MenuItem>
                        <MenuItem value="bert">BERT Summarizer</MenuItem>
                    </Select>
                </ListItem>
            </List>
            <Button onClick={generateSummary}>Generate Summary</Button>
            {
                summary_array().map((f) => {
                    return (
                        <div>
                            <h3>{f[0]}</h3>
                            <TextField disabled multiline maxRows={20} fullWidth label="Summary:" value={f[1]} />
                        </div>
                        
                    );
                })
            }
            {/* {summaries.map((summary) => summary)} */}

            <Backdrop
                open={open}
            >
                <CircularProgress/>
            </Backdrop>
        </Box>
    );
}

export default CollectionEditor;