@esri/calcite-components
Version:
Web Components for Esri's Calcite Design System.
26 lines (25 loc) • 820 B
JavaScript
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
import { makeGenericController } from "@arcgis/lumina/controllers";
const useFormTrigger = (options) => makeGenericController((component) => {
function submitHandler(event) {
const { form } = component.elementInternals;
if (event.defaultPrevented || component.disabled || options?.disabled?.() || !form) {
return;
}
if (component.type === "submit") {
form.requestSubmit();
} else if (component.type === "reset") {
form.reset();
}
}
component.listen("luminaFormAssociatedCallback", ({ detail: [form] }) => {
if (form) {
component.el.addEventListener("click", submitHandler);
} else {
component.el.removeEventListener("click", submitHandler);
}
});
});
export {
useFormTrigger as u
};