UNPKG

@kobalte/core

Version:

Unstyled components and primitives for building accessible web apps and design systems with SolidJS.

30 lines (28 loc) 794 B
// src/primitives/create-form-reset-listener/create-form-reset-listener.ts import { createEffect, on, onCleanup } from "solid-js"; function createFormResetListener(element, handler) { createEffect( on(element, (element2) => { if (element2 == null) { return; } const form = getClosestForm(element2); if (form == null) { return; } form.addEventListener("reset", handler, { passive: true }); onCleanup(() => { form.removeEventListener("reset", handler); }); }) ); } function getClosestForm(element) { return isFormElement(element) ? element.form : element.closest("form"); } function isFormElement(element) { return element.matches("textarea, input, select, button"); } export { createFormResetListener };