diff --git a/frontend/src/Home.tsx b/frontend/src/Home.tsx index ee6e3ab..a64d6b1 100644 --- a/frontend/src/Home.tsx +++ b/frontend/src/Home.tsx @@ -5,10 +5,13 @@ import { ButtonGroup, CircularProgress, Container, + FormControl, Grid, IconButton, InputAdornment, + MenuItem, Paper, + Select, Snackbar, styled, TextField, @@ -44,6 +47,9 @@ export default function Home({ socket }: Props) { const [pickedAudioFormat, setPickedAudioFormat] = useState(''); const [pickedBestFormat, setPickedBestFormat] = useState(''); + const [downloadPath, setDownloadPath] = useState(0); + const [availableDownloadPaths, setAvailableDownloadPaths] = useState([]); + const [url, setUrl] = useState(''); const [workingUrl, setWorkingUrl] = useState(''); const [showBackdrop, setShowBackdrop] = useState(false); @@ -106,6 +112,14 @@ export default function Home({ socket }: Props) { }) }, []) + useEffect(() => { + fetch(`${window.location.protocol}//${settings.serverAddr}:${settings.serverPort}/tree`) + .then(res => res.json()) + .then(data => { + setAvailableDownloadPaths(data.flat) + }) + }, []) + /* -------------------- component functions -------------------- */ /** @@ -119,6 +133,7 @@ export default function Home({ socket }: Props) { socket.emit('send-url', { url: immediate || url || workingUrl, + path: availableDownloadPaths[downloadPath], params: settings.cliArgs.toString() + toFormatArgs(codes), }) setUrl('') @@ -211,25 +226,44 @@ export default function Home({ socket }: Props) { flexDirection: 'column', }} > - - - - ), - }} - /> + + + + + + ), + }} + /> + + + + + + +