-
Notifications
You must be signed in to change notification settings - Fork 0
SOV-5181: base components and layout #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
✅ Deploy Preview for sovryn-layer ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this 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 implements base components and layout for the Sovryn web application, introducing a comprehensive design system with theming support and responsive navigation.
- Added theme provider with dark/light mode support and persistent theme storage
- Created responsive header with navigation, social links, and wallet connection functionality
- Implemented base UI components including dropdown menus and enhanced button variants
Reviewed Changes
Copilot reviewed 20 out of 21 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| apps/web-app/src/styles.css | Updated CSS variables for theming and improved font declarations |
| apps/web-app/src/routes/*.tsx | Added new route pages for stake, lend, convert, and components demo |
| apps/web-app/src/routes/__root.tsx | Integrated theme provider and layout structure with header/footer |
| apps/web-app/src/routeTree.gen.ts | Auto-generated route tree updates for new pages |
| apps/web-app/src/integrations/privy/connector.tsx | Made layout responsive with mobile-first design |
| apps/web-app/src/components/ui/*.tsx | Added dropdown menu component and enhanced button styling |
| apps/web-app/src/components/theme-*.tsx | Implemented theme provider and toggle functionality |
| apps/web-app/src/components/Hero/Hero.tsx | Created reusable hero component for page headers |
| apps/web-app/src/components/Header/*.tsx | Built responsive navigation with social links and wallet connection |
| apps/web-app/src/components/Footer/Footer.tsx | Added comprehensive footer with links and branding |
| apps/web-app/package.json | Added dropdown menu dependency |
| apps/web-app/index.html | Applied base styling to html and body elements |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
There was a problem hiding this 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 20 out of 21 changed files in this pull request and generated 3 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| return <div className='container mx-3'> | ||
| <div > | ||
| <h1>Buttons</h1> | ||
| <div className='flex gap-3 my-3'> |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Inconsistent quote style. The file uses single quotes here but double quotes elsewhere. Consider using double quotes consistently.
| return <div className='container mx-3'> | |
| <div > | |
| <h1>Buttons</h1> | |
| <div className='flex gap-3 my-3'> | |
| return <div className="container mx-3"> | |
| <div > | |
| <h1>Buttons</h1> | |
| <div className="flex gap-3 my-3"> |
| const main = useMemo(() => items.slice(0, 3), [items]); | ||
| const others = useMemo(() => items.slice(3), [items]); |
Copilot
AI
Oct 8, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The dependency array [items] is unnecessary since items is a constant defined outside the component. These useMemo calls can be simplified or the dependency array can be removed.
| const main = useMemo(() => items.slice(0, 3), [items]); | |
| const others = useMemo(() => items.slice(3), [items]); | |
| const main = items.slice(0, 3); | |
| const others = items.slice(3); |
pietro-maximoff
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@creed-victor the initial structure looks good, and I believe we will update all of this a bit later.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
There was a problem hiding this 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 20 out of 21 changed files in this pull request and generated 3 comments.
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
| }) | ||
|
|
||
| function RouteComponent() { | ||
| return <div className='container mx-3'> |
Copilot
AI
Oct 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The container class has inconsistent margin value 'mx-3' compared to other route components which use 'mx-auto my-8 px-4'. Consider using consistent spacing patterns across route components.
| return <div className='container mx-3'> | |
| return <div className='container mx-auto my-8 px-4'> |
| const main = useMemo(() => items.slice(0, 3), [items]); | ||
| const others = useMemo(() => items.slice(3), [items]); |
Copilot
AI
Oct 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The useMemo dependencies include 'items' which is a constant array defined outside the component. This will cause unnecessary recalculations on every render. Remove the dependency array or move 'items' inside the component if it needs to be memoized.
| const main = useMemo(() => items.slice(0, 3), [items]); | |
| const others = useMemo(() => items.slice(3), [items]); | |
| const main = useMemo(() => items.slice(0, 3), []); | |
| const others = useMemo(() => items.slice(3), []); |
| > | ||
| {item.label} | ||
| {item.content && ( | ||
| <span className="text-muted text-xs">{item.content}</span> |
Copilot
AI
Oct 9, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The class 'text-muted' appears to be a custom class that may not be defined in the CSS. Consider using standard Tailwind classes like 'text-muted-foreground' for consistency with the design system.
| <span className="text-muted text-xs">{item.content}</span> | |
| <span className="text-muted-foreground text-xs">{item.content}</span> |
https://sovryn.atlassian.net/browse/SOV-5181
https://sovryn.atlassian.net/browse/SOV-5182