// 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 getGlob = () => { try{ let v = props.collection["collection_data"]["glob"]; return v; } catch { return "null"; } } const saveGlob = async () => { await dbUpdateCollectionGlob(props.collection["collection_id"],props.collection["collection_data"]["glob"]) } const generateSummary = async () => { setOpen(true); let id = props.collection["collection_id"] await saveGlob() if (summarizer === "T5 Summarizer") { await dbUpdateCollectionSummary(id) } else if (summarizer === "BERT Summarizer") { await dbUpdateCollectionSummaryBERT(id) } else if (summarizer === "NLTK Summarizer") { await dbUpdateCollectionSummaryNLTK(id) } // await dbUpdateCollectionSummaryBERT(id) console.log(id,props.collection) props.onCollectionUpdate(await dbGetCollection(id)) setOpen(false); } // console.log("loadedRawFiles", props.loadedRawFiles) return ( <Box> <h2>{props.collection["collection_name"]}</h2> <List sx={{boxShadow:1}}> <ListItem> <ListItemButton component="label"> <ListItemIcon> <AddIcon/> </ListItemIcon> <ListItemText> Upload Documents </ListItemText> <input type="file" name="fileUpload" onChange={props.onFileUpload} hidden/> </ListItemButton> </ListItem> { props.loadedRawFiles.map((f) => { return ( <ListItem> <ListItemButton> <ListItemText> {f.path} </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 Summarizer">T5 Summarizer</MenuItem> <MenuItem value="NLTK Summarizer">NLTK Summarizer</MenuItem> <MenuItem value="BERT Summarizer">BERT Summarizer</MenuItem> </Select> </ListItem> </List> {/* <h3>Debug Collection Glob:</h3> <TextField multiline maxRows={15} fullWidth label="(Debug) Raw text:" value={getGlob()} onChange={(e) => updateGlob(e)}/> */} <h3>Generated Summary:</h3> <TextField disabled multiline maxRows={20} fullWidth label="Summary:" value={props.collection["collection_summary"]}/> <Button onClick={saveGlob}>(Debug) Save Glob</Button> <Button onClick={generateSummary}>Generate Summary</Button> {/* <Button onClick={generateNLTKSummary}>Generate NLTK summary</Button> <Button onClick={generateBERTSummary}>Generate BERT summary</Button> */} <Backdrop open={open} > <CircularProgress/> </Backdrop> </Box> ); } export default CollectionEditor;