/claim #883
Remove bullet points that are not relevant.
PLEASE REFRAIN FROM USING AI TO WRITE YOUR CODE AND PR DESCRIPTION. IF YOU DO USE AI TO WRITE YOUR CODE PLEASE PROVIDE A DESCRIPTION AND REVIEW IT CAREFULLY. MAKE SURE YOU UNDERSTAND THE CODE YOU ARE SUBMITTING USING AI.
Resolves: #883
Shadcn Theming & Styling — Complete Implementation
This PR enhances the theming functionality of the application by implementing the remaining requirements for the “Shadcn Theming & Styling” feature. It introduces the ability for users to mark themes as public and display them in a new Theme Marketplace page, where users can copy public themes to their own collection. Additionally, it resolves a TypeScript error in the Connections page related to the useTRPC hook, ensuring proper typing of the trpc client, and adds a theme selection dropdown to the Connections page for managing connection-specific themes. UI/UX improvements were also made to the Appearance page to enhance the visual experience while maintaining its existing functionality. Also the created theme will get stored in the db.
Features Added Mark Themes as Public: Added a “Make Theme Public” toggle in the ThemeEditor component on the Appearance page, allowing users to mark themes as public. Public themes are visible in the Theme Marketplace for other users to discover and copy. Theme Marketplace Page: Created a new ThemeMarketplace.tsx page to list all public themes. Each public theme is displayed in a card with a preview of its primary color, the creator’s ID, and a “Copy Theme” button. Users can copy a public theme to their own collection, creating a new theme with the name (Copy). Theme Selection Dropdown in Connections Page: Added a theme selection dropdown to the Connections page, allowing users to assign a specific theme to each email connection. The dropdown includes a “Default” option to reset the theme and a list of the user’s themes with a preview of the primary color. Indicates the currently selected theme with a “Current” badge. TypeScript Fix for useTRPC: Resolved a TypeScript error (“Type ‘never’ has no call signatures”) in the Connections page by properly typing the trpc client with the AppRouter type. Ensured the useTRPC hook provides a typed trpc client, fixing the issue with trpc.theme.getThemes.query. UI/UX Improvements: Enhanced the Appearance page with animations (using framer-motion) for adding and removing themes. Added a preview of the primary color next to each theme’s name in the “Custom Themes” section. Applied a gradient style to the “Create Theme” button and added hover effects to theme cards for a more engaging experience.
Describe the tests you’ve done:
For changes involving data or authentication:
https://github.com/user-attachments/assets/85a671c6-b2ec-422c-b50e-390949660b6c
By submitting this pull request, I confirm that my contribution is made under the terms of the project’s license.
New Features
Bug Fixes
Style
Chores
Database
Avradeep Nayak
@Zedoman
Zero
@Mail-0