eigen icon indicating copy to clipboard operation
eigen copied to clipboard

feat: add Typeform embed support with /typeform/:id route

Open dblandin opened this issue 5 months ago • 1 comments

[!IMPORTANT] I'm not planning to merge this PR until we have aligned on the survey content and prompt logic.

Description

Implements a new modal screen for displaying Typeform surveys using a customized WebView. The component integrates with analytics tracking to monitor survey engagement.

Key features:

  • Embeds Typeform surveys via WebView
  • Modal presentation with custom header ("Survey")
  • Tracks survey viewed, submitted, and abandoned events
  • Fullscreen form display with hidden Typeform branding
  • Thank you screen with close button after submission
  • Generic survey tracking hook for reusability

Technical implementation:

  • New /typeform/:id route with alwaysPresentModally option
  • Event handling via window.ReactNativeWebView.postMessage bridge
  • CSS to ensure fullscreen display and hide Typeform close button

Jira: ONYX-1984 🔒

PR Checklist

  • [ ] I have tested my changes on the following platforms:
    • [ ] Android.
    • [x] iOS.
  • [x] I hid my changes behind a feature flag, or they don't need one.
  • [x] I have included screenshots or videos at least on Android, or I have not changed the UI.
  • [x] I have added tests, or my changes don't require any.
  • [x] I added an app state migration, or my changes do not require one.
  • [x] I have documented any follow-up work that this PR will require, or it does not require any.
  • [x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

  • [ ] I would like at least one of the reviewers to run this PR on the simulator or device.
Changelog updates

Changelog updates

Cross-platform user-facing changes

  • add typeform-backed survey support

Screen Recording

Platform After
iOS

Need help with something? Have a look at our docs, or get in touch with us.

dblandin avatar Nov 24 '25 20:11 dblandin

This PR contains the following changes:

  • Cross-platform user-facing changes (add typeform-backed survey support - dblandin)

Generated by :no_entry_sign: dangerJS against c20d10177b0b04404476bec762e2a47155a98bad

ArtsyOpenSource avatar Nov 24 '25 20:11 ArtsyOpenSource