Add custom warning message when leaving changing Data Model (segments and metrics) (#34398)
* Rename component to match the filename * Fix typo * Replace useBeforeUnload with LeaveConfirmationModal in SegmentForm * Replace useBeforeUnload with LeaveConfirmationModal in MetricForm * Update setup of MetricForm tests to allow testing navigation * Update setup of SegmentForm tests to allow testing navigation * Use proper history in MetricForm * Refactor SegmentForm test setup to be consistent with the one of MetricForm * Make MetricForm and SegmentForm tests consistent * Add tests for not showing custom warning * Add tests for showing custom warning when leaving with unsaved changes * Extract FORM_URL * Remove redundant asyncs and awaits * Rename MetricForm.unit.spec.tsx & SegmentForm.unit.spec.tsx to MetricApp.unit.spec.tsx & SegmentApp.unit.spec.tsx and move them near the components they're testing * Improve a11y * Add missing endpoint mocks * Improve selectors thanks to proper a11y * Add tests for not showing warning modal when saving changes * Convert CreateMetricForm to a functional component * Convert CreateSegmentForm to a functional component * Convert UpdateMetricFormInner to a functional component * Convert UpdateSegmentFormInner to a functional component * Disable LeaveConfirmationModal on scheduled navigation * Setup metrics & segments POST endpoints * Properly mock metric and segment creation * Lift LeaveConfirmationModal from SegmentForm to SegmentApp * Lift LeaveConfirmationModal from MetricForm to MetricApp * Sort props * Get rid of useCallbackEffect usage in MetricApp * Get rid of useCallbackEffect usage in SegmentApp
Showing
- frontend/src/metabase-types/api/mocks/table.ts 2 additions, 0 deletionsfrontend/src/metabase-types/api/mocks/table.ts
- frontend/src/metabase/admin/datamodel/components/FormLabel/FormLabel.tsx 9 additions, 3 deletions...tabase/admin/datamodel/components/FormLabel/FormLabel.tsx
- frontend/src/metabase/admin/datamodel/components/MetricForm/MetricForm.tsx 12 additions, 2 deletions...base/admin/datamodel/components/MetricForm/MetricForm.tsx
- frontend/src/metabase/admin/datamodel/components/MetricForm/MetricForm.unit.spec.tsx 0 additions, 57 deletions.../datamodel/components/MetricForm/MetricForm.unit.spec.tsx
- frontend/src/metabase/admin/datamodel/components/SegmentForm/SegmentForm.tsx 12 additions, 2 deletions...se/admin/datamodel/components/SegmentForm/SegmentForm.tsx
- frontend/src/metabase/admin/datamodel/components/SegmentForm/SegmentForm.unit.spec.tsx 0 additions, 60 deletions...atamodel/components/SegmentForm/SegmentForm.unit.spec.tsx
- frontend/src/metabase/admin/datamodel/containers/MetricApp.jsx 77 additions, 37 deletions...end/src/metabase/admin/datamodel/containers/MetricApp.jsx
- frontend/src/metabase/admin/datamodel/containers/MetricApp.unit.spec.tsx 157 additions, 0 deletions...tabase/admin/datamodel/containers/MetricApp.unit.spec.tsx
- frontend/src/metabase/admin/datamodel/containers/SegmentApp.jsx 77 additions, 37 deletions...nd/src/metabase/admin/datamodel/containers/SegmentApp.jsx
- frontend/src/metabase/admin/datamodel/containers/SegmentApp.unit.spec.tsx 157 additions, 0 deletions...abase/admin/datamodel/containers/SegmentApp.unit.spec.tsx
- frontend/src/metabase/status/components/StatusListing/StatusListing.tsx 2 additions, 2 deletions...etabase/status/components/StatusListing/StatusListing.tsx
- frontend/test/__support__/server-mocks/metric.ts 6 additions, 1 deletionfrontend/test/__support__/server-mocks/metric.ts
- frontend/test/__support__/server-mocks/segment.ts 6 additions, 1 deletionfrontend/test/__support__/server-mocks/segment.ts
Loading
Please register or sign in to comment