Skip to content

Migrate components to shadcn#59

Merged
JelgerDijkgraaf merged 29 commits intomainfrom
chore/shadcn
Dec 15, 2025
Merged

Migrate components to shadcn#59
JelgerDijkgraaf merged 29 commits intomainfrom
chore/shadcn

Conversation

@JelgerDijkgraaf
Copy link
Copy Markdown
Contributor

No description provided.

@JelgerDijkgraaf JelgerDijkgraaf self-assigned this Nov 27, 2025
@jeroenrinzema
Copy link
Copy Markdown
Contributor

@JelgerDijkgraaf could you please check why the linter is failing?

@JelgerDijkgraaf JelgerDijkgraaf requested review from Copilot and jeroenrinzema and removed request for Copilot December 9, 2025 11:27
@JelgerDijkgraaf
Copy link
Copy Markdown
Contributor Author

Not everything is migrated yet, but can be reviewed

@JelgerDijkgraaf JelgerDijkgraaf marked this pull request as ready for review December 9, 2025 11:27
@JelgerDijkgraaf JelgerDijkgraaf requested review from Copilot and removed request for jeroenrinzema December 9, 2025 12:24
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR migrates UI components from custom implementations to shadcn/ui, a component library built on Radix UI primitives. The migration standardizes component APIs, improves accessibility, and modernizes the component architecture.

Key changes:

  • Replaced custom Button, Modal, Menu, Select, and other form components with shadcn equivalents
  • Updated component props to match shadcn conventions (e.g., size="small"size="sm", variant="primary"variant="default")
  • Migrated from Headless UI to Radix UI primitives for better accessibility and consistency

Reviewed changes

Copilot reviewed 55 out of 57 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
services/console/src/views/users/rules/WrapperRuleEdit.tsx Updated Button size prop and moved icons inside button children
services/console/src/views/users/Users.tsx Migrated Button import and restructured icon placement
services/console/src/views/users/UserDetailSubscriptions.tsx Updated Button size from "small" to "sm"
services/console/src/views/users/UserDetailAttrs.tsx Migrated Button import to shadcn
services/console/src/views/users/UserDetail.tsx Restructured Button with icon as child element
services/console/src/views/users/Lists.tsx Updated Button structure with icon as child
services/console/src/views/users/ListTable.tsx Changed Menu size from "small" to "min"
services/console/src/views/users/ListDetail.tsx Updated Button and Menu props to shadcn conventions
services/console/src/views/settings/Tags.tsx Updated Button size and variant props
services/console/src/views/settings/TagPicker.tsx Migrated to shadcn MultiSelect with custom wrapper
services/console/src/views/settings/Subscriptions.tsx Updated Button props and structure
services/console/src/views/settings/ProjectSettings.tsx Migrated Button import
services/console/src/views/settings/Locales.tsx Updated Button size and structure
services/console/src/views/settings/Integrations.tsx Updated Button and Menu props
services/console/src/views/settings/IntegrationModal.tsx Restructured Button with icon as child
services/console/src/views/settings/ApiKeys.tsx Updated Button variants and Menu size
services/console/src/views/project/Projects.tsx Changed Button variant from "primary" to "default"
services/console/src/views/project/ProjectOnboardingUsers.tsx Migrated Button import
services/console/src/views/project/ProjectOnboardingTools.tsx Migrated Button import
services/console/src/views/project/ProjectOnboardingGettingStarted.tsx Replaced LinkButton with Link + Button combination
services/console/src/views/organization/Settings.tsx Migrated Button import
services/console/src/views/journey/Journeys.tsx Replaced Modal with shadcn Dialog component
services/console/src/views/journey/JourneyStepUsers.tsx Updated Menu size prop
services/console/src/views/journey/JourneyEditor.tsx Changed Button variant from "primary" to "default"
services/console/src/views/journey/JourneyDetail.tsx Migrated Button import
services/console/src/views/campaign/template/mail/editor/InputWithUnit.tsx New component using shadcn Input and Select
services/console/src/views/campaign/template/mail/editor/Dimensions.tsx New component using InputWithUnit
services/console/src/views/campaign/template/mail/editor/Decorations.tsx New component using shadcn Button
services/console/src/views/campaign/contexts.ts New context file for campaign workflow
services/console/src/views/campaign/Setup.tsx New setup component using shadcn form components
services/console/src/views/campaign/Campaigns.tsx Updated Button and filter handling
services/console/src/views/auth/Login.tsx Changed Button variant from "plain" to "ghost"
services/console/src/views/ErrorPage.tsx Migrated Button import
services/console/src/ui/form/TextInput.tsx Migrated to use shadcn Input and Textarea components
services/console/src/ui/form/TextInput.css Updated styles for shadcn components
services/console/src/ui/form/SingleSelect.tsx Migrated from Headless UI to shadcn Select
services/console/src/ui/form/Select.css Simplified CSS for shadcn Select
services/console/src/ui/form/FormWrapper.tsx Migrated Button import
services/console/src/ui/form/EntityIdPicker.tsx Updated Button size and structure
services/console/src/ui/Tag.tsx Wrapped with shadcn Badge component
services/console/src/ui/Tag.css Added important flags to override shadcn defaults
services/console/src/ui/Sidebar.tsx Updated Button props
services/console/src/ui/SearchTable.tsx Wrapped TextInput in div for width control
services/console/src/ui/Pagination.tsx Migrated to shadcn Pagination component
services/console/src/ui/Modal.tsx Updated Button size from "tiny" to "sm"
services/console/src/ui/Menu.tsx Migrated from Headless UI to shadcn DropdownMenu
services/console/src/ui/Dialog.tsx Migrated Button import
services/console/src/ui/DataTable.tsx Updated Button size and variant
services/console/src/ui/CodeExample.tsx Updated Button structure
services/console/src/components/ui/select.tsx Changed chevron icon to ChevronsUpDown
services/console/src/components/ui/multi-select.tsx New shadcn-based MultiSelect component
services/console/src/components/ui/dropdown-menu.tsx New shadcn DropdownMenu component
services/console/src/components/ui/button.tsx Added "min" size variant and updated destructive text color
services/console/src/components/ui/badge.tsx New shadcn Badge component
services/console/package.json Added new dependencies for shadcn and GrapesJS
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread services/console/src/views/users/rules/WrapperRuleEdit.tsx Outdated
Comment thread services/console/src/views/project/ProjectOnboardingGettingStarted.tsx Outdated
Comment thread services/console/src/views/campaign/Campaigns.tsx Outdated
Comment thread services/console/src/views/campaign/Campaigns.tsx Outdated
Comment thread services/console/src/ui/form/TextInput.tsx Outdated
Comment thread services/console/src/ui/SearchTable.tsx Outdated
Comment thread services/console/src/ui/Pagination.tsx Outdated
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 55 out of 57 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread services/console/src/views/campaign/Campaigns.tsx
Comment thread services/console/src/views/campaign/Setup.tsx Outdated
Comment thread services/console/src/ui/form/TextInput.tsx
@JelgerDijkgraaf JelgerDijkgraaf merged commit e2cc2f3 into main Dec 15, 2025
3 of 4 checks passed
@JelgerDijkgraaf JelgerDijkgraaf deleted the chore/shadcn branch December 15, 2025 11:45
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.

3 participants