61a1f008d0
- i18next 23->26 + react-i18next 15->17 - prettier 2->3, reformat all files - replace @fontsource/inter with @fontsource-variable/inter 5, update import path - domhandler 5->6 (aligns with transitive deps) - lint-staged 16->17
16 lines
423 B
TypeScript
16 lines
423 B
TypeScript
import { useCallback } from 'react';
|
|
import { selectFile } from '../utils/dom';
|
|
|
|
export const useFilePicker = <M extends boolean | undefined = undefined>(
|
|
onSelect: (file: M extends true ? File[] : File) => void,
|
|
multiple?: M,
|
|
) =>
|
|
useCallback(
|
|
async (accept: string) => {
|
|
const file = await selectFile(accept, multiple);
|
|
if (!file) return;
|
|
onSelect(file);
|
|
},
|
|
[multiple, onSelect],
|
|
);
|