Skip to content

refactor: extract HyprCloudCTAButton and unify cloud UI#4128

Merged
yujonglee merged 4 commits intomainfrom
feat/hypr-cloud-button-refactor
Feb 21, 2026
Merged

refactor: extract HyprCloudCTAButton and unify cloud UI#4128
yujonglee merged 4 commits intomainfrom
feat/hypr-cloud-button-refactor

Conversation

@yujonglee
Copy link
Contributor

@yujonglee yujonglee commented Feb 20, 2026

Summary

  • Extracts duplicated cloud CTA button logic into a shared HyprCloudCTAButton component (used by both STT and LLM settings)
  • Removes requires_entitlement: pro from the hyprnote LLM provider definition — auth is now sufficient for eligibility, matching the STT pattern
  • Gates non-pro users at the dropdown interaction level: selecting hyprnote in the LLM provider dropdown calls upgradeToPro() instead of changing the provider
  • Moves Pro lock check from useConfiguredMapping (proLocked field) into the provider dropdown render, reading directly from provider.requirements
  • Auto-opens the hyprnote accordion when no LLM provider is configured, improving onboarding UX
  • Renames display labels: "Pro""Pro (Cloud)" and "Cloud""Pro (Cloud)" for consistency
  • Adds Pro badge + lock state to provider select dropdown items (for any provider with requires_entitlement: pro)

Updates since last revision

  • Reverted the earlier requires_entitlement: pro restoration on the hyprnote provider (keeping it removed was intentional)
  • Instead, added an onValueChange interceptor in the LLM provider Select: when a non-pro user picks "hyprnote", it calls billing.upgradeToPro() and returns early without changing the form value — same gating pattern as STT

Review & Testing Checklist for Human

  • As a non-pro user, select "hyprnote" from the LLM provider dropdown and confirm it triggers the upgrade flow (not setting the provider/model). This is the key fix — the dropdown item will appear enabled but the interaction is intercepted.
  • As a non-pro user, confirm the hyprnote accordion CTA button ("Start Free Trial" / "Upgrade to Pro") also redirects to upgrade correctly — this is the HyprProviderAutoRow path which has its own isPro gate.
  • As a pro user, confirm selecting "hyprnote" from the dropdown sets provider to "hyprnote" / model to "Auto"
  • Verify HyprCloudCTAButton shows correct label in both STT and LLM settings (Ready to use / Start Free Trial / Upgrade to Pro)
  • Confirm hyprnote accordion opens by default when no LLM provider is configured

Notes

Since requires_entitlement: pro was removed from the hyprnote provider definition, the Pro badge and "Upgrade to Pro" hint text in the dropdown won't render for hyprnote specifically (those are driven by requiresEntitlement(provider.requirements, "pro")). The guard is purely behavioral via onValueChange. Verify this UX is acceptable.

Requested by @yujonglee | Devin session

Consolidates duplicated cloud CTA button logic from STT and LLM settings
into a shared HyprCloudCTAButton component, removes pro entitlement
requirement from hyprnote provider, and improves UX by auto-opening
the hyprnote accordion when no LLM is configured.

Co-authored-by: Cursor <cursoragent@cursor.com>
@netlify
Copy link

netlify bot commented Feb 20, 2026

Deploy Preview for hyprnote canceled.

Name Link
🔨 Latest commit 1fb003c
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/69993054b82f5700084cae19

@netlify
Copy link

netlify bot commented Feb 20, 2026

Deploy Preview for hyprnote-storybook canceled.

Name Link
🔨 Latest commit 1fb003c
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/69993054c1324d000836de29

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

devin-ai-integration bot and others added 3 commits February 21, 2026 04:06
…t dropdown bypass

Co-Authored-By: yujonglee <yujonglee.dev@gmail.com>
…o prevent dropdown bypass"

This reverts commit 8fdac2f.
Co-Authored-By: yujonglee <yujonglee.dev@gmail.com>
@yujonglee yujonglee merged commit 3963de3 into main Feb 21, 2026
14 checks passed
@yujonglee yujonglee deleted the feat/hypr-cloud-button-refactor branch February 21, 2026 04:32
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.

1 participant