Skip to content

PAY-12564: add GlobalMessage display rule to EmbeddedCheckoutV3AppearanceRules#1991

Merged
pabloe-crossmint merged 1 commit into
mainfrom
devin/PAY-12564-sdk-globalmessage-appearance
Jul 24, 2026
Merged

PAY-12564: add GlobalMessage display rule to EmbeddedCheckoutV3AppearanceRules#1991
pabloe-crossmint merged 1 commit into
mainfrom
devin/PAY-12564-sdk-globalmessage-appearance

Conversation

@pabloe-crossmint

Copy link
Copy Markdown
Contributor

Description

Mirrors the new appearance rule introduced in Paella-Labs/crossbit-main#27986 into the public @crossmint/client-sdk-base types.

Adds GlobalMessage to EmbeddedCheckoutV3AppearanceRules so integrators can opt in/out of global-message banners in the embedded checkout:

appearance: {
  rules: {
    GlobalMessage: {
      display: "visible", // or "hidden"
    },
  },
}

This is the SDK-side type that backs the runtime GlobalMessage behavior in the web checkout (Express Checkout now uses defaultVisible={false} and only renders the banner when rules.GlobalMessage.display === "visible").

Test plan

  • pnpm --filter @crossmint/client-sdk-base build passes (after building workspace deps).
  • pnpm exec biome check --diagnostic-level=error --max-diagnostics=200 packages/client/base/src/types/embed/v3/CrossmintEmbeddedCheckoutV3Props.ts passes.
  • Added a changeset for @crossmint/client-sdk-base.

Package updates

  • @crossmint/client-sdk-base: minor bump (new optional GlobalMessage rule in EmbeddedCheckoutV3AppearanceRules).

Link to Devin session: https://crossmint.devinenterprise.com/sessions/52f46c7183fa4e76a894c8d6c4b71f1a
Requested by: @pabloe-crossmint

@pabloe-crossmint pabloe-crossmint self-assigned this Jul 24, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor
Original prompt from Peg

SYSTEM:
=== BEGIN THREAD HISTORY (in #help-payments) ===
Jorge (U0757E01YJV): hey team, flagging a memecoin checkout UX bug opensea hit: google pay + apple pay tabs silently swallow sardine pre-PSP rejections. card tab works fine.

looks like finalizePayment() in usePaymentProcessingCommon.tsx correctly fires setGlobalMessage({…, displayLocation: "bottom"}) on sardine rejection, but <GlobalMessage> is location-scoped, so it only renders if a matching <GlobalMessage displayLocation="bottom" /> is mounted nearby.

card tab mounts it in SubmitPaymentButton.tsx:60, but express-checkout subtree (ExpressCheckoutPaymentMethodContent.tsx) didn't → state set, no renderer, timed out invisible after 8s.

it seems to impact all 3 express-checkout providers (basis-theory, stripe, checkout-com) on both google pay + apple pay tabs.

proposed fix: <https://github.com/Paella-Labs/crossbit-main/pull/25629> to mount &amp;lt;GlobalMessage displayLocation="bottom" /&amp;gt; outside &amp;lt;FatalGlobalMessageGuard&amp;gt; in ExpressCheckoutPaymentMethodContent.tsx.

could you take a look?

Linear Asks (U064YQRSWJC): Jorge Villamil created a General Ask <https://linear.app/crossmint/issue/PAY-12564/fix-memecoin-checkout-ux-bug-for-googleapple-pay-tabs|PAY-12564> Fix memecoin checkout UX bug for Google/Apple Pay tabs

Jorge Villamil created a General Ask <https://linear.app/crossmint/issue/PAY-12564/fix-memecoin-checkout-ux-bug-for-googleapple-pay-tabs|PAY-12564>

[Slack unfurl — this is an automatic link preview, not a user message]
Preview of a link: https://linear.app/crossmint/issue/PAY-12564/fix-memecoin-checkout-ux-bug-for-googleapple-pay-tabs

Pylon (U08GKGR1JMQ): Synced as an internal thread for <https://app.usepylon.com/issues?issueNumber=7479|Issue #7479>. Messages from this thread will sync into the issue as internal conversations and are not visible to customers.

Synced as an internal thread for <https://app.usepylon.com/issues?issueNumber=7479|Issue #7479>. M... (7962 chars truncated...)

@changeset-bot

changeset-bot Bot commented Jul 24, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 4cbe793

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 16 packages
Name Type
@crossmint/client-sdk-base Minor
@crossmint/client-sdk-nextjs-starter Patch
@crossmint/client-sdk-auth Patch
@crossmint/client-sdk-react-base Patch
@crossmint/client-sdk-react-native-ui Patch
@crossmint/client-sdk-react-ui Patch
@crossmint/client-sdk-verifiable-credentials Patch
@crossmint/client-sdk-smart-wallet Patch
@crossmint/common-sdk-auth Patch
@crossmint/wallets-playground-expo Patch
@crossmint/auth-ssr-nextjs-demo Patch
@crossmint/wallets-quickstart-devkit Patch
@crossmint/wallets-playground-react Patch
@crossmint/server-sdk Patch
@crossmint/wallets-sdk Patch
crossmint-auth-node Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@pabloe-crossmint
pabloe-crossmint marked this pull request as ready for review July 24, 2026 19:07
@pabloe-crossmint
pabloe-crossmint enabled auto-merge (squash) July 24, 2026 19:08

@devin-ai-integration devin-ai-integration Bot left a comment

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.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@greptile-apps

greptile-apps Bot commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Reviews (1): Last reviewed commit: "feat(base): add GlobalMessage display ru..." | Re-trigger Greptile

@pabloe-crossmint
pabloe-crossmint merged commit 4028c8b into main Jul 24, 2026
2 checks passed
@pabloe-crossmint
pabloe-crossmint deleted the devin/PAY-12564-sdk-globalmessage-appearance branch July 24, 2026 19:16
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