[READY] Update Individuals Hero Section#1100
Conversation
✅ Deploy Preview for vortex-sandbox ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
✅ Deploy Preview for vortexfi ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Pull request overview
Updates the Individuals landing page hero visuals and CTA copy by replacing the static widget preview with a new interactive globe component (powered by cobe), plus some small navigation CTA styling/text adjustments.
Changes:
- Add
cobedependency to support a new globe visualization. - Replace Individuals Hero widget preview images with a new
<Globe />component. - Update Desktop navbar CTA label and adjust its border-radius styling.
Reviewed changes
Copilot reviewed 8 out of 9 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| package.json | Adds cobe dependency (currently only at workspace root). |
| bun.lock | Locks cobe@2.0.1. |
| apps/frontend/src/sections/individuals/Hero/index.tsx | Swaps widget preview imagery for the new globe and adjusts hero padding classes. |
| apps/frontend/src/components/Navbar/DesktopNavbar.tsx | Updates CTA text and adjusts Tailwind classes on the button. |
| apps/frontend/src/components/Globe/index.tsx | Introduces the new interactive globe + overlay markers implementation. |
| contracts/relayer/typechain-types/contracts/MockERC20Permit.ts | TypeChain generated type tweak for an event output type. |
| contracts/relayer/typechain-types/@openzeppelin/contracts/utils/cryptography/EIP712.ts | TypeChain generated type tweak for an event output type. |
| contracts/relayer/typechain-types/@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.ts | TypeChain generated type tweak for an event output type. |
| contracts/relayer/typechain-types/@openzeppelin/contracts/interfaces/IERC5267.ts | TypeChain generated type tweak for an event output type. |
Comments suppressed due to low confidence (1)
package.json:52
cobeis imported by the frontend (apps/frontend/src/components/Globe/index.tsx) but is only added to the rootpackage.json. To keep workspace dependencies accurate and avoid install/build issues when operating within theapps/frontendworkspace (or with stricter tooling), addcobetoapps/frontend/package.jsonas well (likely using the repo’scatalog:pattern).
"dependencies": {
"big.js": "^7.0.1",
"cobe": "^2.0.1",
"husky": "^9.1.7",
"lint-staged": "^16.1.0",
"numora-react": "^3.0.3"
},
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| <section | ||
| aria-label={t("pages.main.hero.title")} | ||
| className="relative overflow-hidden bg-[radial-gradient(at_74%_98%,theme(colors.blue.900),theme(colors.blue.950),theme(colors.blue.950))] py-16 lg:py-32" | ||
| className="relative overflow-hidden bg-[radial-gradient(at_74%_98%,theme(colors.blue.900),theme(colors.blue.950),theme(colors.blue.950))] py-16 lg:py-42" |
There was a problem hiding this comment.
lg:py-42 is not a standard Tailwind spacing utility (and this repo is using Tailwind v4 CSS-first config without a custom spacing scale). This class will be ignored, so the large-screen padding likely won’t change as intended. Use a valid spacing token (e.g., lg:py-32/lg:py-40) or an arbitrary value (e.g., lg:py-[10.5rem]) if you need an exact size.
| className="relative overflow-hidden bg-[radial-gradient(at_74%_98%,theme(colors.blue.900),theme(colors.blue.950),theme(colors.blue.950))] py-16 lg:py-42" | |
| className="relative overflow-hidden bg-[radial-gradient(at_74%_98%,theme(colors.blue.900),theme(colors.blue.950),theme(colors.blue.950))] py-16 lg:py-40" |
| <div className="flex items-center"> | ||
| <Link className="btn btn-vortex-secondary rounded-3xl" to="/{-$locale}/widget"> | ||
| Buy & Sell | ||
| <Link className="btn btn-vortex-secondary rounded-3xl!" to="/{-$locale}/widget"> |
There was a problem hiding this comment.
rounded-3xl! is not valid Tailwind syntax for the important modifier. Tailwind uses a leading ! (e.g., !rounded-3xl) rather than a trailing one, so this won’t apply and may leave the button with unintended styling.
| <Link className="btn btn-vortex-secondary rounded-3xl!" to="/{-$locale}/widget"> | |
| <Link className="btn btn-vortex-secondary !rounded-3xl" to="/{-$locale}/widget"> |
| const mq = window.matchMedia("(min-width: 1024px), (min-width: 640px)"); | ||
| const handler = () => setSize(getGlobeSize()); | ||
| mq.addEventListener("change", handler); | ||
| return () => mq.removeEventListener("change", handler); |
There was a problem hiding this comment.
window.matchMedia("(min-width: 1024px), (min-width: 640px)") is effectively just (min-width: 640px) (since 1024px implies 640px). As a result, the change event won’t fire when crossing the 1024px breakpoint, so the globe size won’t update from md to lg. Use separate media queries/listeners (or a resize observer) so both breakpoint crossings trigger a recalculation.
| const mq = window.matchMedia("(min-width: 1024px), (min-width: 640px)"); | |
| const handler = () => setSize(getGlobeSize()); | |
| mq.addEventListener("change", handler); | |
| return () => mq.removeEventListener("change", handler); | |
| const mqSm = window.matchMedia("(min-width: 640px)"); | |
| const mqLg = window.matchMedia("(min-width: 1024px)"); | |
| const handler = () => setSize(getGlobeSize()); | |
| mqSm.addEventListener("change", handler); | |
| mqLg.addEventListener("change", handler); | |
| return () => { | |
| mqSm.removeEventListener("change", handler); | |
| mqLg.removeEventListener("change", handler); | |
| }; |
| <div | ||
| className={cn("relative cursor-grab select-none active:cursor-grabbing lg:absolute", className)} | ||
| style={{ height: size, touchAction: "manipulation", width: size }} | ||
| {...dragHandlers} | ||
| > |
There was a problem hiding this comment.
dragHandlers includes isDraggingRef, and spreading {...dragHandlers} onto a DOM <div> will pass isDraggingRef as an unknown attribute. This can produce React warnings and may end up in the DOM. Only spread the pointer event handlers and keep isDraggingRef separate (e.g., destructure it out before spreading).
ebma
left a comment
There was a problem hiding this comment.
Looks great 🚀
Let's address the comments generated by the copilot review and merge afterward @Sharqiewicz.
|
@ebma ready ✅ |
No description provided.