Skip to content

Commit 78c8a88

Browse files
committed
fix file upload
1 parent 7d8b65c commit 78c8a88

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

client/src/App.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,6 @@ function App() {
152152

153153
// Parse args
154154
let args = parseArgs()
155-
console.debug(args)
156155
if (args.code) {
157156
let _code = decodeURIComponent(args.code)
158157
setContent(_code)

client/src/Navigation.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -92,16 +92,16 @@ const FlexibleMenu: React.FC <{
9292
const [loadZulipOpen, setLoadZulipOpen] = useState(false)
9393

9494
const loadFileFromDisk = (event: React.ChangeEvent<HTMLInputElement>) => {
95-
console.log('Triggered loading')
95+
console.debug('Loading file from disk')
9696
const fileToLoad = event.target.files![0]
9797
var fileReader = new FileReader();
9898
fileReader.onload = (fileLoadedEvent) => {
9999
var textFromFileLoaded = fileLoadedEvent.target!.result as string;
100-
console.log(`Loaded file! Content: ${textFromFileLoaded}`)
101100
setContent(textFromFileLoaded)
102101
}
103102
fileReader.readAsText(fileToLoad, "UTF-8")
104-
setOpenNav(false)
103+
// Manually close the menu as we prevent it closing below.
104+
setOpenLoad(false)
105105
}
106106

107107
return <>
@@ -121,12 +121,14 @@ const FlexibleMenu: React.FC <{
121121
<Dropdown open={openLoad} setOpen={setOpenLoad} icon={faUpload} text="Load"
122122
useOverlay={isInDropdown}
123123
onClick={() => {setOpenExample(false); (!isInDropdown && setOpenNav(false))}}>
124-
<label htmlFor="file-upload" className="nav-link" >
124+
<input id="file-upload" type="file" onChange={loadFileFromDisk} onClick={(ev) => ev.stopPropagation()} />
125+
{/* Need `ev.stopPropagation` to prevent closing until the file is loaded.
126+
Otherwise the file-upload is destroyed too early. */}
127+
<label htmlFor="file-upload" className="nav-link" onClick={(ev) => ev.stopPropagation()} >
125128
<FontAwesomeIcon icon={faUpload} /> Load file from disk
126129
</label>
127130
<NavButton icon={faCloudArrowUp} text="Load from URL" onClick={() => {setLoadUrlOpen(true)}} />
128131
<NavButton iconElement={<ZulipIcon />} text="Load Zulip Message" onClick={() => {setLoadZulipOpen(true)}} />
129-
<input id="file-upload" type="file" onChange={loadFileFromDisk} />
130132
</Dropdown>
131133
{/* {restart && <NavButton icon={faArrowRotateRight} text="Restart server" onClick={restart} />} */}
132134
<LoadUrlPopup open={loadUrlOpen} handleClose={() => setLoadUrlOpen(false)} loadFromUrl={loadFromUrl} />

0 commit comments

Comments
 (0)