formUpdaterTrigger.ts 822 B

12345678910111213141516171819202122232425262728293031
  1. // Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
  2. import type { FormKitNode } from '@formkit/core'
  3. import type { FormUpdaterTrigger } from '../../types/form'
  4. const formUpdaterTrigger = (
  5. defaultTrigger: FormUpdaterTrigger = 'direct',
  6. defaultTriggerDelay = 300,
  7. ) => {
  8. return (node: FormKitNode) => {
  9. const { props } = node
  10. node.addProps(['triggerFormUpdater', 'formUpdaterTrigger'])
  11. node.on('created', () => {
  12. if (!props.formUpdaterTrigger) {
  13. props.formUpdaterTrigger = defaultTrigger
  14. }
  15. if (
  16. props.triggerFormUpdater &&
  17. props.formUpdaterTrigger === 'delayed' &&
  18. (!props.delay || props.delay < defaultTriggerDelay)
  19. ) {
  20. props.delay = defaultTriggerDelay
  21. }
  22. })
  23. }
  24. }
  25. export default formUpdaterTrigger