feat(mrf-cutover): default UseTemplateModal to MRF with storage-mode escape hatch (6/6)#9467
Merged
kevin9foong merged 3 commits intoJun 4, 2026
Conversation
8421393 to
ce0f849
Compare
1ed91c8 to
56488d5
Compare
eliotlim
approved these changes
Jun 2, 2026
ce0f849 to
34806ce
Compare
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…cutover Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
56488d5 to
d54ddb5
Compare
06719b5
into
feat/duplicate-form-modal-cutover
23 of 24 checks passed
kevin9foong
added a commit
that referenced
this pull request
Jun 8, 2026
…e escape hatch (5/6) (#9466) * feat: default CreateFormModal to MRF with escape-hatch link to storage mode When mrf-cutover is on, the create-form details screen no longer offers a response-mode choice — Multirespondent is the implicit default. An "old version of FormSG" link composed from the user's beta flags navigates to a new storage-mode-only screen (title + create + back). Submitting routes through the existing storage-mode mutation. Closes #9453. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(create-form-modal): match Figma fidelity for cutover flow - Wrap escape-hatch link in an info InlineMessage to match Figma - Storage-mode page header reads "Set up a Storage mode form" - Add storage-mode subtitle explaining that storage mode is outdated Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(create-form-modal): hide data-classification infobox + use 2.5rem spacing in cutover flow The MRF default screen previously showed both the escape-hatch infobox and the existing data-classification infobox, cluttering the layout. The cutover Figma drops the latter and uses 2.5rem rhythm around the escape-hatch infobox and between input/button on the storage-mode page. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: sliding animation bug and undefined email during escape hatch flow * feat: add story for all 3 exceptions * test(duplicate-form-modal): pin MRF default + dispatch under cutover Covers the dupe-flow contract introduced by #9454 ACs 1 and 6: the wizard defaults responseMode to Multirespondent regardless of the source form's mode, and the default submit fires the multirespondent dupe mutation. These tests are a regression net on top of the shared cutover behaviour added in #9453. Refs #9454 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix(duplicate-form-modal): default storage dupe emails to admin email Post-cutover, the escape-hatch storage screen has no email-recipients input, so the wizard form's `emails` field is undefined on submit and the existing `emails.filter(Boolean)` would crash. Mirror the `emails ? filter : cutoverDefaultEmails` guard used by the create flow (CreateFormWizardProvider.tsx) so the two paths stay symmetric. Refs #9454 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * feat(duplicate-form-modal): add cutover Storybook stories No stories existed for DuplicateFormModal. Mirror the CreateFormModal.stories.tsx variants so Chromatic can baseline the post-cutover dupe modal: pre-cutover Default, MrfCutoverOn, and the three beta-flag copy variants (children, webhook v1, both). Closes AC8 for #9454. Refs #9454 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Merge pull request #9467 from opengovsg/feat/use-template-modal-cutover feat(mrf-cutover): default UseTemplateModal to MRF with storage-mode escape hatch (6/6) --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Per the PRD: when admins create a form from a template, the use-template flow currently inherits the template's response mode, locking admins into storage mode whenever they pick a legacy template. Closes #9455.
Solution
Under the
mrf-cutoverflag:UseTemplateModalto Multirespondent, regardless of the template'sresponseMode.UseTemplateWizardProvider.cutover.test.tsxpinning the MRF default + dispatch under cutover.When the flag is off, the original use-template flow renders unchanged.
Breaking Changes
No - gated behind
mrf-cutoverfeature flag.Tests
TC1: storage-mode template → MRF default
TC2: escape hatch from use-template flow
TC3: flag off