File size: 696 Bytes
676fc08 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | "use client";
import { useRef, type ReactNode } from "react";
type Props = {
children: ReactNode;
accept?: string;
onChange: (files: FileList | null) => void;
};
function UploadWrapper({ children, accept, onChange }: Props) {
const fileInputRef = useRef<HTMLInputElement>(null);
function handleClick() {
if (fileInputRef.current) {
fileInputRef.current.click();
}
}
return (
<>
<input
ref={fileInputRef}
type="file"
accept={accept}
multiple
hidden
onChange={(ev) => onChange(ev.target.files)}
/>
<div onClick={() => handleClick()}>{children}</div>
</>
);
}
export default UploadWrapper;
|