import { type Accessor, type Setter, createContext, useContext, } from "solid-js"; import type { FileFieldIntlTranslations } from "./file-field.intl"; import type { FileRejection } from "./types"; export interface FileFieldContextValue { translations: Accessor; inputId: Accessor; fileInputRef: Accessor; setFileInputRef: Setter; dropzoneRef: Accessor; setDropzoneRef: Setter; disabled: Accessor; multiple: Accessor; accept: Accessor; allowDragAndDrop: Accessor; processFiles: (files: File[]) => void; acceptedFiles: File[]; // store rejectedFiles: FileRejection[]; // store removeFile: (file: File) => void; } export const FileFieldContext = createContext(); export function useFileFieldContext() { const context = useContext(FileFieldContext); if (context === undefined) { throw new Error( "[kobalte]: `useFileFieldContext` must be used within a `FileFieldContext.Root` component", ); } return context; }