import { Fragment, VNode, h } from "preact"; import { UIFormProps } from "./FormProvider.js"; import { LabelWithTooltipMaybeRequired } from "./InputLine.js"; import { useField } from "./useField.js"; export function InputFile( props: { maxBites: number; accept?: string } & UIFormProps, ): VNode { const { name, label, placeholder, tooltip, required, help: propsHelp, maxBites, accept, } = props; const { value, onChange, state } = useField(name); const help = propsHelp ?? state.help if (state.hidden) { return
; } return (
{!value || !(value as string).startsWith("data:image/") ? (
{!state.disabled &&
{/*

or drag and drop

*/}
}
) : (
{!state.disabled &&
{ onChange(undefined!); }} > Clear
}
)} {help &&

{help}

}
); }