Issue #3522130: Add client-side transform for daterange_default widget

Summary

Fixes https://www.drupal.org/project/canvas/issues/3522130 by adding client-side transform support for the daterange_default widget path.

What changed

  • Add daterange_default mapping in ReduxIntegratedFieldWidgetsHooks::fieldWidgetInfoAlter().
  • Add dateRange transform in ui/src/utils/transforms.ts.
  • Register transform library in ShapeMatchingHooks.
  • Add/update coverage in:
    • tests/src/Kernel/EcosystemSupport/FieldWidgetSupportTest.php
    • tests/src/Kernel/HookCanvasStorablePropAlterTest.php
    • ui/tests/vitest/unit/transforms.test.js
    • ui/tests/e2e/prop-types.cy.js
  • Harden Cypress date-range test by waiting for each autosave PATCH after each blur.
  • Update docs in docs/redux-integrated-field-widgets.md.

Local verification

  1. ddev phpcs src/Hook/ReduxIntegratedFieldWidgetsHooks.php src/Hook/ShapeMatchingHooks.php tests/src/Kernel/EcosystemSupport/FieldWidgetSupportTest.php tests/src/Kernel/HookCanvasStorablePropAlterTest.php (pass)
  2. ddev phpunit tests/src/Kernel/EcosystemSupport/FieldWidgetSupportTest.php tests/src/Kernel/HookCanvasStorablePropAlterTest.php (pass)
  3. ddev exec 'npm run lint:eslint -- ui/src/utils/transforms.ts ui/tests/vitest/unit/transforms.test.js ui/tests/e2e/prop-types.cy.js' (pass)
  4. ddev exec 'cd ui && npm run test -- tests/vitest/unit/transforms.test.js' (pass)
  5. ddev exec 'npm run type-check --workspace=@drupal-canvas/ui' (pass)

Notes

  • Current schema requires both from and to; partial ranges currently resolve to null.
  • Related context: #3523379 and #3546401.

Merge request reports

Loading