/
githubmirror
/
halo
Обзор
Документация
Войти
/
githubmirror
/
halo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
ui/src/formkit/plugins/auto-scroll-to-errors.ts
34 строки
871 B
John Niang
Move folder console to ui
02 фев 2024, 17:22
02 фев 2024, 17:22
15f7fe2
Код
Авторство
О чём код?
import type { FormKitNode } from "@formkit/core"; export default function autoScrollToErrors(node: FormKitNode) { const scrollTo = (node: FormKitNode) => { if (!node.props.id) { return; } const el = document.getElementById(node.props.id); if (el) { el.scrollIntoView({ block: "end", inline: "nearest" }); } }; const scrollToErrors = () => { node.walk((child) => { if (child.ledger.value("blocking") || child.ledger.value("errors")) { scrollTo(child); return false; } }, true); }; if (node.props.type === "form") { const onOldSubmitInvalid = node.props.onSubmitInvalid; node.props.onSubmitInvalid = () => { if (onOldSubmitInvalid) { onOldSubmitInvalid(node); } scrollToErrors(); }; node.on("unsettled:errors", scrollToErrors); } return false; }