mirror of
https://github.com/asadbek064/hyparquet.git
synced 2026-01-04 10:36:37 +00:00
demo: fix styles and click to select file
This commit is contained in:
parent
e0a9a25577
commit
b10c38147c
@ -22,7 +22,7 @@ Online parquet file reader demo available at:
|
||||
|
||||
https://hyparam.github.io/hyparquet/
|
||||
|
||||
[](https://hyparam.github.io/hyparquet/)
|
||||
[](https://hyparam.github.io/hyparquet/)
|
||||
|
||||
## Features
|
||||
|
||||
|
||||
BIN
demo.png
BIN
demo.png
Binary file not shown.
|
Before Width: | Height: | Size: 130 KiB |
@ -34,8 +34,8 @@ export default function Dropzone({ children, onFileDrop, onUrlDrop, onError }: D
|
||||
* @param {MouseEvent} e - click
|
||||
*/
|
||||
function triggerFileSelect(e: React.MouseEvent<HTMLDivElement>) {
|
||||
// If click inside '.dropzone-select', activate file input dialog
|
||||
if ((e.target as Element).closest('.dropzone-select')) {
|
||||
// If click inside '.dropzone', activate file input dialog
|
||||
if ((e.target as Element).classList.contains('dropzone')) {
|
||||
fileInputRef.current?.click()
|
||||
}
|
||||
}
|
||||
@ -48,11 +48,8 @@ export default function Dropzone({ children, onFileDrop, onUrlDrop, onError }: D
|
||||
*/
|
||||
function handleFileSelect(e: React.ChangeEvent<HTMLInputElement>) {
|
||||
const { files } = e.target
|
||||
if (!files) return
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
const file = files[i]
|
||||
// TODO: Load file view
|
||||
}
|
||||
if (!files || files.length !== 1) return
|
||||
onFileDrop(files[0])
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
@ -95,16 +92,16 @@ export default function Dropzone({ children, onFileDrop, onUrlDrop, onError }: D
|
||||
}
|
||||
}
|
||||
|
||||
dropzone.addEventListener('dragenter', onDragEnter)
|
||||
dropzone.addEventListener('dragover', onDragOver)
|
||||
dropzone.addEventListener('dragleave', onDragLeave)
|
||||
window.addEventListener('dragenter', onDragEnter)
|
||||
window.addEventListener('dragover', onDragOver)
|
||||
window.addEventListener('dragleave', onDragLeave)
|
||||
dropzone.addEventListener('drop', handleFileDrop)
|
||||
|
||||
// Cleanup event listeners when component is unmounted
|
||||
return () => {
|
||||
dropzone.removeEventListener('dragenter', onDragEnter)
|
||||
dropzone.removeEventListener('dragover', onDragOver)
|
||||
dropzone.removeEventListener('dragleave', onDragLeave)
|
||||
window.removeEventListener('dragenter', onDragEnter)
|
||||
window.removeEventListener('dragover', onDragOver)
|
||||
window.removeEventListener('dragleave', onDragLeave)
|
||||
dropzone.removeEventListener('drop', handleFileDrop)
|
||||
}
|
||||
})
|
||||
@ -121,7 +118,6 @@ export default function Dropzone({ children, onFileDrop, onUrlDrop, onError }: D
|
||||
</div>
|
||||
</div>
|
||||
<input
|
||||
multiple
|
||||
onChange={handleFileSelect}
|
||||
ref={fileInputRef}
|
||||
style={{ display: 'none' }}
|
||||
|
||||
BIN
demo/assets/demo.png
Normal file
BIN
demo/assets/demo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 558 KiB |
4
demo/bundle.min.js
vendored
4
demo/bundle.min.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -407,7 +407,7 @@ table:focus-visible {
|
||||
text-align: left;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: pre-wrap;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
/* pending state */
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
"@rollup/plugin-terser": "0.4.4",
|
||||
"@rollup/plugin-typescript": "11.1.6",
|
||||
"@types/node": "22.5.5",
|
||||
"@types/react": "18.3.6",
|
||||
"@types/react": "18.3.7",
|
||||
"@types/react-dom": "18.3.0",
|
||||
"@typescript-eslint/eslint-plugin": "8.6.0",
|
||||
"@vitest/coverage-v8": "2.1.1",
|
||||
|
||||
Loading…
Reference in New Issue
Block a user