UNPKG

jb-image-input

Version:
28 lines (26 loc) 1.45 kB
import { useEvent } from "jb-core/react"; import { RefObject } from "react"; import type { JBImageInputEventType, JBImageInputWebComponent } from 'jb-image-input'; export type EventProps<TValue> = { /** * when component loaded, in most cases component is already loaded before react mount so you dont need this but if you load web-component dynamically with lazy load it will be called after react mount */ onLoad?: (e: JBImageInputEventType<CustomEvent, TValue>) => void, /** * when all property set and ready to use, in most cases component is already loaded before react mount so you dont need this but if you load web-component dynamically with lazy load it will be called after react mount */ onInit?: (e: JBImageInputEventType<CustomEvent, TValue>) => void, /** * when value changed to invalid value */ onChange?: (e: JBImageInputEventType<Event, TValue>) => void, onImageSelected?: (e: JBImageInputEventType<CustomEvent, TValue>) => void, onMaxSizeExceed?: (e: JBImageInputEventType<Event, TValue>) => void, } export function useEvents<TValue>(element: RefObject<JBImageInputWebComponent>, props: EventProps<TValue>) { useEvent(element, 'load', props.onLoad, true); useEvent(element, 'init', props.onInit, true); useEvent(element, "change", props.onChange); useEvent(element, "imageSelected", props.onImageSelected); useEvent(element, "maxSizeExceed", props.onMaxSizeExceed); }