Skip to content

fix: stop https:// prepend on email fields in Links screen (NES-1451)#8950

Merged
jianwei1 merged 13 commits intomainfrom
jianweichong/nes-1451-cannot-edit-email-in-contact-us-link-for-journey-created
Apr 7, 2026
Merged

fix: stop https:// prepend on email fields in Links screen (NES-1451)#8950
jianwei1 merged 13 commits intomainfrom
jianweichong/nes-1451-cannot-edit-email-in-contact-us-link-for-journey-created

Conversation

@jianwei1
Copy link
Copy Markdown
Contributor

@jianwei1 jianwei1 commented Apr 6, 2026

Summary

  • Bug: The handleLinkBlur function on the template customization Links screen was blindly prepending https:// to all field values on blur, including email fields. This produced invalid values like https://info@yourchurch.com that triggered browser validation errors and blocked users from proceeding.
  • Fix: Made handleLinkBlur link-type-aware so email fields store bare addresses (no protocol prefix). Also strips mailto: (case-insensitive) if pasted, trims all values before normalization, and adds placeholder text (email@example.com / https://example.com) to clarify expected input format.
  • Bonus: Fixed pre-existing handleLinkBLur typo (capital B) to handleLinkBlur. Widened event type to HTMLInputElement | HTMLTextAreaElement to match MUI's onBlur signature.

Changed Files

File Change
LinksForm.tsx Rename handleLinkBLurhandleLinkBlur, add linkType param, trim-first logic, case-insensitive mailto: strip, widen event type, update onBlur bindings, add placeholders (not wrapped in t() — colon breaks i18next)
LinksForm.spec.tsx Added 8 new tests: email blur no-prefix, mailto strip, spaces-around-mailto, whitespace-only no-op, empty email no-op, chatButton blur regression, email placeholder, URL placeholder

Test plan

  • Open Admin → Templates → select a template with "Contact Us" button → click Customize → go to Links step
  • Type a plain email address (e.g. info@yourchurch.com) in the Contact Us field → blur → verify no https:// prepend
  • Paste mailto:info@yourchurch.com → blur → verify it normalizes to info@yourchurch.com
  • Paste MAILTO:info@yourchurch.com → blur → verify case-insensitive strip works
  • Verify email field shows email@example.com placeholder when empty
  • Verify URL fields still get https:// prepended on blur (no regression)
  • Verify URL fields show https://example.com placeholder when empty
  • Verify chat button fields still get https:// prepended on blur

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes

    • Improved email input handling in the Template Customization Links screen. Email fields no longer incorrectly add https:// prefixes and properly strip mailto: prefixes when present.
    • Dynamic placeholders now display based on field type (email@example.com for email, https://example.com for URLs).
  • Tests

    • Expanded test coverage for link normalization and placeholder rendering across different link types.

…ES-1451)

The handleLinkBlur function was blindly prepending https:// to all
field values on blur, including email fields. This produced invalid
values like https://info@church.com that triggered browser validation
errors and blocked users from proceeding.

- Make handleLinkBlur link-type-aware via a linkType parameter
- Email fields: store bare addresses, strip mailto: prefix, trim whitespace
- Sanitize previously corrupted email values on form load
- Add placeholder text to email/URL fields for clarity
- Fix handleLinkBLur typo (capital B) to handleLinkBlur

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jianwei1 jianwei1 self-assigned this Apr 6, 2026
@linear
Copy link
Copy Markdown

linear Bot commented Apr 6, 2026

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 6, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

This PR fixes the "Contact Us" email auto-normalization behavior on the Template Customization Links screen by updating the blur handler to apply link-type-specific normalization: email fields strip mailto: prefixes, while non-email fields ensure https:// protocol prefix.

Changes

Cohort / File(s) Summary
Links Form Implementation
apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx
Renamed and enhanced blur handler from handleLinkBLur to handleLinkBlur(e, isEmail) with input trimming and link-type-specific normalization: strips mailto: prefix for emails (case-insensitive), prefixes https:// for non-email fields. Updated TextField blur wiring and added dynamic placeholders (email@example.com for email, https://example.com otherwise).
Links Form Tests
apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.spec.tsx
Added comprehensive test coverage for blur-driven normalization: email fields strip mailto: prefixes without https:// prepending, empty/whitespace emails result in no-op, chat button fields continue prefixing https://, and placeholders render correctly per link type.
Documentation
docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md
Completed plan document detailing the email normalization fix, including renamed handler logic, protocol-specific behavior, placeholder implementation, and rationale for excluding initial-values sanitization.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 25.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: fixing the bug where https:// was being prepended to email fields in the Links screen. It is concise, specific, and reflects the primary purpose of the changeset.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch jianweichong/nes-1451-cannot-edit-email-in-contact-us-link-for-journey-created

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@nx-cloud
Copy link
Copy Markdown

nx-cloud Bot commented Apr 6, 2026

View your CI Pipeline Execution ↗ for commit 84c929a

Command Status Duration Result
nx run journeys-admin-e2e:e2e ✅ Succeeded 29s View ↗
nx run-many --target=vercel-alias --projects=jo... ✅ Succeeded 2s View ↗
nx run-many --target=upload-sourcemaps --projec... ✅ Succeeded 10s View ↗
nx run-many --target=deploy --projects=journeys... ✅ Succeeded 53s View ↗

☁️ Nx Cloud last updated this comment at 2026-04-07 02:31:45 UTC

@nx-cloud
Copy link
Copy Markdown

nx-cloud Bot commented Apr 6, 2026

View your CI Pipeline Execution ↗ for commit ba77e45

Command Status Duration Result
nx run-many --target=deploy --projects=journeys... ✅ Succeeded 2m 50s View ↗

☁️ Nx Cloud last updated this comment at 2026-04-06 23:23:25 UTC

@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 6, 2026 22:13 Inactive
@jianwei1 jianwei1 requested a review from csiyang April 6, 2026 22:16
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md (1)

45-66: Minor doc inconsistency: function name typo was also fixed in implementation.

The plan shows the proposed fix still using handleLinkBLur (capital B typo), but the actual implementation correctly renamed it to handleLinkBlur. This is a good additional fix that could be reflected in the plan for accuracy.

📝 Suggested documentation update
-**1a. Modify `handleLinkBLur` signature and logic (lines 70-75)**
+**1a. Modify `handleLinkBlur` signature and logic (lines 70-75)**
+
+Note: The function was also renamed from `handleLinkBLur` to `handleLinkBlur` to fix the capitalization typo.

 ```typescript
-function handleLinkBLur(
+function handleLinkBlur(
   e: React.FocusEvent<HTMLInputElement>,
   linkType: 'url' | 'email' | 'chatButtons'
 ): void {
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md` around
lines 45 - 66, Update the plan to match the implemented function name change:
replace any occurrences of the misspelled handleLinkBLur with the corrected
handleLinkBlur and ensure all references (including examples and call sites
described in the plan) use handleLinkBlur; also verify the documented behavior
for 'email' vs 'url'/'chatButtons' in the plan matches the implemented logic in
handleLinkBlur (stripping "mailto:" for emails and prepending "https://" for
URLs/chatButtons).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md`:
- Around line 45-66: Update the plan to match the implemented function name
change: replace any occurrences of the misspelled handleLinkBLur with the
corrected handleLinkBlur and ensure all references (including examples and call
sites described in the plan) use handleLinkBlur; also verify the documented
behavior for 'email' vs 'url'/'chatButtons' in the plan matches the implemented
logic in handleLinkBlur (stripping "mailto:" for emails and prepending
"https://" for URLs/chatButtons).

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 3ec09284-f215-40d6-924a-15b0a496850a

📥 Commits

Reviewing files that changed from the base of the PR and between 7ddecb9 and 5fa7906.

📒 Files selected for processing (4)
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.spec.tsx
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksScreen.tsx
  • docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 6, 2026

The latest updates on your projects.

Name Status Preview Updated (UTC)
journeys-admin ✅ Ready journeys-admin preview Tue Apr 7 14:28:40 NZST 2026

…NES-1451)

MUI TextField onBlur provides FocusEvent<HTMLInputElement | HTMLTextAreaElement>
but handleLinkBlur only accepted FocusEvent<HTMLInputElement>, causing a TS2345
type error in CI.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx`:
- Around line 74-84: The input handler in LinksForm is trimming after doing
normalization which lets values like " mailto:user@example.com " or
whitespace-only strings produce malformed results; update the onChange/onBlur
logic in LinksForm (where it reads e.target, linkType and calls setFieldValue)
to trim the raw value first, return early if trimmed is empty, then for linkType
=== 'email' strip a leading 'mailto:' from the already-trimmed value before
calling setFieldValue, otherwise run the URL normalization (prepend 'https://'
if missing) against the trimmed value and pass that to setFieldValue.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: f27314d1-e05b-411b-b8c9-ae66015439ea

📥 Commits

Reviewing files that changed from the base of the PR and between 5fa7906 and 341ee17.

📒 Files selected for processing (1)
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx

Trimming after normalization allowed edge cases:
- " mailto:user@example.com " bypassed the mailto: strip (leading space)
- " example.com " produced "https://   example.com " (embedded spaces)
- "   " (whitespace-only) passed the truthy check and triggered a no-op setFieldValue

Now trims first, then early-returns on empty, then normalizes the clean value.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot requested a deployment to Preview - journeys-admin April 6, 2026 22:27 Pending
…S-1451)

- Add URL placeholder test (was removed earlier due to JSDOM quirk, now
  using container.querySelector instead of getByPlaceholderText)
- Add whitespace-only input test (trim-first early return)
- Add spaces-around-mailto test (trim before startsWith check)
- Fix URL placeholder: remove t() wrapper since i18next interprets the
  colon in "https:" as a namespace separator, producing "//example.com"

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot requested a deployment to Preview - journeys-admin April 6, 2026 22:31 Pending
@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 6, 2026 22:36 Inactive
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx`:
- Around line 78-80: The code that strips "mailto:" from the trimmed input only
checks for lowercase 'mailto:' so values like 'MAILTO:user@x' remain
unnormalized; update the logic around linkType/email handling (the branch that
uses trimmed, bare and setFieldValue(name, bare)) to perform a case-insensitive
removal (e.g., test trimmed lowercased or use a case-insensitive regex for
'^mailto:') before slicing so the bare variable always contains the actual email
string when calling setFieldValue.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 0921ebb9-13be-454c-9235-ad7b4a4188e8

📥 Commits

Reviewing files that changed from the base of the PR and between 341ee17 and 9b21d22.

📒 Files selected for processing (3)
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.spec.tsx
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx
  • docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md
✅ Files skipped from review due to trivial changes (1)
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.spec.tsx
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md

…n test (NES-1451)

- Use case-insensitive regex for mailto: detection so MAILTO:user@example.com
  is also normalized to a bare email address
- Add LinksScreen integration test verifying that corrupted stored email values
  (https://user@example.com) are sanitized to bare addresses on form load

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot requested a deployment to Preview - journeys-admin April 6, 2026 22:45 Pending
jianwei1 and others added 2 commits April 6, 2026 22:46
…sanitization (NES-1451)

- Use .toLowerCase().startsWith('mailto:') instead of regex — simpler
  and more readable
- Remove initialValues sanitization for corrupted email values — the
  editor validates with .email() so https:// can never be stored, and
  the bug itself blocked form submission so no corrupt data was persisted
- Remove the corresponding LinksScreen integration test

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Mark status as complete, add PR link
- Update handleLinkBlur code to show trim-first, case-insensitive
  mailto, widened event type, and renamed function
- Remove File 2 (LinksScreen sanitization) with explanation of why
  it was unnecessary
- Update edge cases table with whitespace and case-insensitive rows
- Remove placeholder t() wrapping note (i18next colon issue)
- Check off all acceptance criteria

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot requested a deployment to Preview - journeys-admin April 6, 2026 22:51 Pending
@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 6, 2026 22:56 Inactive
…l boolean (NES-1451)

The only distinction that matters is email vs not-email. chatButtons and
url both get the same https:// prepend treatment, so a three-value union
type was unnecessary complexity. A boolean is clearer.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 6, 2026 23:11 Inactive
…S-1451)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot requested a deployment to Preview - journeys-admin April 6, 2026 23:16 Pending
@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 6, 2026 23:19 Inactive
@jianwei1 jianwei1 enabled auto-merge April 7, 2026 02:25
@github-actions github-actions Bot temporarily deployed to Preview - journeys-admin April 7, 2026 02:26 Inactive
@jianwei1 jianwei1 added this pull request to the merge queue Apr 7, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx (1)

290-294: Use t(...) for placeholder strings for i18n consistency.

These placeholders are user-facing strings in a TSX file and should follow the project translation pattern.

Suggested patch
-                  placeholder={
-                    link.linkType === 'email'
-                      ? 'email@example.com'
-                      : 'https://example.com'
-                  }
+                  placeholder={
+                    link.linkType === 'email'
+                      ? t('email@example.com')
+                      : t('https://example.com')
+                  }
As per coding guidelines, "Use hook useTranslation('apps-journeys-admin') for accessing translations in TypeScript/React component files" and "Use inline English strings as keys in translations (e.g., t('Edit {{title}}', { title }))".
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx`
around lines 290 - 294, The placeholder strings in LinksForm.tsx are hardcoded
and must use the translation hook; import and call
useTranslation('apps-journeys-admin') in the LinksForm component (e.g., const {
t } = useTranslation('apps-journeys-admin')) and replace the conditional
placeholders (the branch using link.linkType === 'email') with translation
lookups (e.g., t('email@example.com') and t('https://example.com')) following
the project's inline-English-key convention so the input placeholder uses t(...)
instead of raw literals.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx`:
- Around line 86-87: The current normalization uses /^\w+:\/\// and blindly
prepends "https://" which mangles protocol-relative URLs like "//example.com";
update the logic in LinksForm where url is derived (the regex /^\w+:\/\// and
setFieldValue usage) to mirror handleOpenLink’s protocol handling: first check
if trimmed startsWith("//") and prefix "https:" (not "https://"), else if
/^\w+:\/\// matches use trimmed as-is, otherwise prefix "https://", then call
setFieldValue(name, url).

---

Nitpick comments:
In
`@apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx`:
- Around line 290-294: The placeholder strings in LinksForm.tsx are hardcoded
and must use the translation hook; import and call
useTranslation('apps-journeys-admin') in the LinksForm component (e.g., const {
t } = useTranslation('apps-journeys-admin')) and replace the conditional
placeholders (the branch using link.linkType === 'email') with translation
lookups (e.g., t('email@example.com') and t('https://example.com')) following
the project's inline-English-key convention so the input placeholder uses t(...)
instead of raw literals.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 41d47272-fb92-4a92-bcba-9383c492b85f

📥 Commits

Reviewing files that changed from the base of the PR and between 8666362 and 84c929a.

📒 Files selected for processing (2)
  • apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx
  • docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md
✅ Files skipped from review due to trivial changes (1)
  • docs/plans/2026-04-06-001-fix-contact-us-email-https-prepend-plan.md

Comment on lines +86 to 87
const url = /^\w+:\/\//.test(trimmed) ? trimmed : `https://${trimmed}`
void setFieldValue(name, url)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Protocol-relative URLs can be malformed during normalization.

//example.com fails ^\w+:\/\/ and becomes https:////example.com. Consider aligning this check with handleOpenLink’s protocol logic.

Suggested patch
-    const url = /^\w+:\/\//.test(trimmed) ? trimmed : `https://${trimmed}`
+    const hasProtocol = /^(https?:)?\/\//i.test(trimmed)
+    const url = hasProtocol ? trimmed : `https://${trimmed}`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@apps/journeys-admin/src/components/TemplateCustomization/MultiStepForm/Screens/LinksScreen/LinksForm/LinksForm.tsx`
around lines 86 - 87, The current normalization uses /^\w+:\/\// and blindly
prepends "https://" which mangles protocol-relative URLs like "//example.com";
update the logic in LinksForm where url is derived (the regex /^\w+:\/\// and
setFieldValue usage) to mirror handleOpenLink’s protocol handling: first check
if trimmed startsWith("//") and prefix "https:" (not "https://"), else if
/^\w+:\/\// matches use trimmed as-is, otherwise prefix "https://", then call
setFieldValue(name, url).

Merged via the queue into main with commit 74dc141 Apr 7, 2026
21 checks passed
@jianwei1 jianwei1 deleted the jianweichong/nes-1451-cannot-edit-email-in-contact-us-link-for-journey-created branch April 7, 2026 02:32
tanflem pushed a commit that referenced this pull request Apr 13, 2026
…#8950)

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants