Skip to content

Conversation

@simonweniger
Copy link
Owner

@simonweniger simonweniger commented Dec 25, 2025

Note

Modernizes UI and improves UX, while expanding CI coverage and bundle analysis.

  • UI refactor: replace UnderlinedTabs with Tabs, update DropdownMenuTrigger and CollapsibleTrigger usage, and standardize dialog/alert dialog open handling via onOpenChange (+ close animation callbacks)
  • Loading UX: remove Button loading prop; add explicit Spinner and action-specific submitting text across auth, documents, settings, billing, developers, and members modals/forms
  • Layouts: wrap app children in a .root container in both dashboard and marketing
  • Routing/content fixes: sign-up help now links to routes.marketing.Contact; marketing contact page imports the correct Contact section; MDX/table alignment classes adjusted; mobile menu no longer uses Portal
  • Data/cache: minor tag/format updates in document data/actions (no behavioral changes highlighted)
  • CI: run workflows on dev; add Next.js bundle analysis for dashboard/marketing with artifacts; quality job unchanged functionally
  • Tooling: marketing adds Tailwind v4 dependencies and updates Next types path

Written by Cursor Bugbot for commit 1a3eebd. This will update automatically on new commits. Configure here.

@vercel
Copy link

vercel bot commented Dec 25, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
nusoma-app Building Building Preview, Comment Dec 25, 2025 10:17pm
nusoma-marketing Building Building Preview, Comment Dec 25, 2025 10:17pm

@simonweniger simonweniger merged commit d9f8a67 into main Dec 25, 2025
2 of 8 checks passed
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.

This is the final PR Bugbot will review for you during this billing cycle

Your free Bugbot reviews will reset on January 30

Details

You are on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

<th
className={cn(
'border px-4 py-2 text-left font-bold [&[align=center]]:text-center [&[align=right]]:text-right',
'border px-4 py-2 text-left font-bold [[align=center]]:text-center [[align=right]]:text-right',
Copy link

Choose a reason for hiding this comment

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

Invalid Tailwind CSS attribute selector syntax

The change from [&[align=center]] to [[align=center]] uses invalid Tailwind CSS syntax. The & character is required in arbitrary variants to reference the current element. Without it, [[align=center]] is not a valid Tailwind selector and the table cell alignment styling (centering cells with align attribute) will not work. This affects both th and td elements in MDX content.

Additional Locations (1)

Fix in Cursor Fix in Web

</div>
<DropdownMenu modal={false}>
<DropdownMenuTrigger asChild>
<DropdownMenuTrigger>
Copy link

Choose a reason for hiding this comment

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

DropdownMenuTrigger without asChild creates nested buttons

Removing asChild from DropdownMenuTrigger without converting to the render prop pattern causes the component to render its default trigger element with the Button as a nested child. This creates invalid HTML with a button inside a button, which violates accessibility standards and causes unexpected behavior. The correct migration is to use the render prop like: <DropdownMenuTrigger render={<Button>...</Button>} />.

Additional Locations (2)

Fix in Cursor Fix in Web

</DropdownMenuTrigger>
<DropdownMenuContent align="end">
<DropdownMenuItem
asChild
Copy link

Choose a reason for hiding this comment

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

DropdownMenuItem without asChild breaks Link composition

Removing asChild from DropdownMenuItem with a Link child means the Link is no longer composed as the menu item element. Instead, the menu item renders its default element with the Link as a nested child. This breaks the intended navigation behavior and menu item styling. The correct pattern is to use render prop or keep asChild.

Fix in Cursor Fix in Web

>
<SelectTrigger className="[&>span]:truncate w-full">
<SelectValue placeholder="---" />
<SelectValue data-placeholder="---" />
Copy link

Choose a reason for hiding this comment

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

SelectValue uses data attribute instead of placeholder prop

The change from placeholder="---" to data-placeholder="---" on SelectValue incorrectly sets a data attribute instead of the placeholder prop. In Base UI's Select.Value component, the placeholder prop determines what text to display when no value is selected. Using data-placeholder just sets an HTML data attribute and the country dropdown will show nothing when empty instead of displaying "---".

Fix in Cursor Fix in Web

{methods.formState.isSubmitting && <Spinner />}
{methods.formState.isSubmitting
? 'Sending instructions...'
: 'Send instructions'}
Copy link

Choose a reason for hiding this comment

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

Submit button with redundant onClick causes double submission

The PR added onClick={methods.handleSubmit(onSubmit)} to a button that has type="submit" inside a form with onSubmit={methods.handleSubmit(onSubmit)}. When clicked, the onClick handler fires first, then the form's native submit event also triggers onSubmit. This causes handleSubmit(onSubmit) to be called twice per click, potentially sending duplicate password reset requests. The onClick should be removed since the form's onSubmit already handles submission.

Fix in Cursor Fix in Web

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