Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThis PR standardizes branding to "Sitespace", rewrites the landing page (new hero, ROI calculator, sections, and CSS), adds 52-week capacity view support (types, normalization, date utilities, and dashboard UI), and refactors lookahead dialogs and upload-review UI with consistent card/pill components. ChangesBrand and metadata unification
52-week view infrastructure and capacity dashboard
Landing page redesign
Lookahead dialog improvements
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/components/landing/LandingPage.css`:
- Around line 137-158: Each .hero-float-* rule (.hero-float-a, .hero-float-b,
.hero-float-c, .hero-float-d) places the animation-delay declaration immediately
after custom properties (--float-x, --float-y), which violates the Stylelint
declaration-empty-line-before rule; insert a single blank line before the
animation-delay declaration in each of these blocks so there's an empty line
separating the custom property declarations from the animation-delay property.
In `@src/components/landing/ROICalculator.tsx`:
- Around line 287-299: The lookahead window buttons don't expose their selected
state to assistive tech; update the button in the map so it includes an
accessible pressed state by adding aria-pressed={windowSize === option.label}
(and optionally aria-current="true" when selected) to the button element and
keep the existing onClick/setWindowSize logic; reference the setWindowSize
setter, windowSize state, and option.label to determine and render the
pressed/selected attribute so screen readers announce which week option is
selected.
- Around line 349-364: The range input lacks an accessible association with its
visible label; update the ROI slider block to give the input a stable id (e.g.
derive from the label or add a prop) and connect the displayed label to that id
using a <label htmlFor={id}> (or wrap the input in a <label>) so screen readers
announce the control; ensure the input keeps its props (min, max, step, value,
onChange, style with progress) and that the label text still uses the existing
label variable.
In `@src/components/landing/TopBar.tsx`:
- Around line 10-16: The NAV_ITEMS entry for the "Access" link uses href
"`#benefits`" which does not match any section ID and therefore doesn't scroll;
open the TopBar component and update the NAV_ITEMS array (the object with label
"Access") so its href matches the actual section id used on the page (e.g.,
change "`#benefits`" to the real id such as "`#access`" or change the target
section's id to "benefits" so they match), ensuring the label "Access" and href
are consistent.
In `@src/components/lookahead/CapacityDashboard.tsx`:
- Around line 76-83: The month-label logic in formatMonthLabel currently does
new Date(value) which treats "YYYY-MM-DD" as UTC and can shift month boundaries;
change parsing to explicitly construct a local Date from the Y-M-D components
(split the input by '-' and call new Date(year, monthIndex, day)) to avoid UTC
midnight semantics, keep the existing NaN fallback and return
parsed.toLocaleDateString("en-AU", { month: "short" }) unchanged so month badges
use the correct local calendar month.
In `@src/components/lookahead/UploadReviewDialog.tsx`:
- Around line 129-136: In formatSourceLabel, guard against whitespace-only
inputs: after trimming source into the normalized variable, if normalized is an
empty string (e.g. source was only whitespace) return "Unknown" instead of
falling through; update the function (formatSourceLabel) to check normalized ===
"" (or length === 0) and return "Unknown" before the lowercase comparison to
ensure the Source field never renders blank.
In `@src/lib/landingData.ts`:
- Around line 72-75: The marketing copy in the landingData module uses
inconsistent brand spellings ("Sitespace" vs "Sitespace"); update every affected
text field (e.g., the object properties badge, heading, subheading and the other
landingData entries) to use a single canonical spelling (pick the correct brand
form and replace all occurrences across the landingData export) so all entries
are normalized and consistent.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9f5c2bab-f2a0-4762-9652-68b939a84b19
⛔ Files ignored due to path filters (4)
public/static/images/bookingspage.pngis excluded by!**/*.pngpublic/static/images/dashhome.pngis excluded by!**/*.pngpublic/static/images/livecalendar.pngis excluded by!**/*.pngpublic/static/images/lookaheadplan.pngis excluded by!**/*.png
📒 Files selected for processing (26)
src/app/(auth)/forgot-password/page.tsxsrc/app/(auth)/login/page.tsxsrc/app/(auth)/register/page.tsxsrc/app/(auth)/reset-password/page.tsxsrc/app/(auth)/set-password/page.tsxsrc/app/api/contact/route.tssrc/app/layout.tsxsrc/components/SideNav.tsxsrc/components/auth/RegisterForm.tsxsrc/components/landing/DashboardHero.tsxsrc/components/landing/LandingPage.csssrc/components/landing/LandingPage.tsxsrc/components/landing/LookaheadPreview.tsxsrc/components/landing/ROICalculator.tsxsrc/components/landing/ShowcaseSection.tsxsrc/components/landing/TopBar.tsxsrc/components/lookahead/ActivityContextDialog.tsxsrc/components/lookahead/ActivityDrilldownDialog.tsxsrc/components/lookahead/CapacityDashboard.tsxsrc/components/lookahead/UploadReviewDialog.tsxsrc/hooks/projects/api.test.tssrc/hooks/projects/api.tssrc/lib/apiNormalization.tssrc/lib/landingData.tssrc/stores/uiIntentStore.tssrc/types/index.ts
| badge: "Why Choose Sitespace", | ||
| heading: "The only platform built specifically for asset delivery", | ||
| subheading: | ||
| "Unlike generic scheduling tools, sitespace is designed from the ground up for the unique challenges of asset delivery management.", | ||
| "Unlike generic scheduling tools, Sitespace is designed from the ground up for the unique challenges of asset delivery management.", |
There was a problem hiding this comment.
Standardize brand text across landing copy entries.
These updated strings use “Sitespace” while other entries (e.g., Line 3) use “Sitespace”. Please normalize all changed occurrences to one canonical brand spelling to keep marketing copy consistent.
Also applies to: 148-148, 207-207, 213-213, 218-218, 223-223, 228-228, 233-233, 238-238, 243-243, 280-280
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/lib/landingData.ts` around lines 72 - 75, The marketing copy in the
landingData module uses inconsistent brand spellings ("Sitespace" vs
"Sitespace"); update every affected text field (e.g., the object properties
badge, heading, subheading and the other landingData entries) to use a single
canonical spelling (pick the correct brand form and replace all occurrences
across the landingData export) so all entries are normalized and consistent.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/components/landing/TopBar.tsx (1)
10-16:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winDuplicate
hrefvalues cause duplicate React keys and redundant navigation.Lines 14 and 15 both use
href: "#contact", which means:
- Both "Access" and "Contact" nav items scroll to the same section
- Using
item.hrefas the Reactkey(lines 95 and 158) produces duplicate keys, triggering React warningsIf "Access" should link to a distinct section, update its href. Otherwise, consider removing one of the duplicate entries.
Suggested fix (if Access should link to a commitments section)
const NAV_ITEMS = [ { href: "`#features`", label: "Product" }, { href: "`#lookahead`", label: "Lookahead" }, { href: "`#calculator`", label: "ROI" }, - { href: "`#contact`", label: "Access" }, + { href: "`#commitments`", label: "Access" }, { href: "`#contact`", label: "Contact" }, ];If
#commitmentsdoesn't exist, either add the section or use a unique identifier for the key:-<a key={item.href} ...> +<a key={item.label} ...>Also applies to: 93-102
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/components/landing/TopBar.tsx` around lines 10 - 16, NAV_ITEMS contains two entries with the same href ("`#contact`"), which causes both redundant navigation and duplicate React keys when the component (TopBar) uses item.href as the key; update the NAV_ITEMS array so "Access" points to a distinct anchor (e.g., "`#commitments`" or another unique id) or remove the duplicate entry, and ensure the render that uses key={item.href} (in TopBar) will have unique keys—alternatively switch the key to a unique value (like item.label or a generated id) if you intentionally keep similar hrefs.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@src/components/landing/TopBar.tsx`:
- Around line 10-16: NAV_ITEMS contains two entries with the same href
("`#contact`"), which causes both redundant navigation and duplicate React keys
when the component (TopBar) uses item.href as the key; update the NAV_ITEMS
array so "Access" points to a distinct anchor (e.g., "`#commitments`" or another
unique id) or remove the duplicate entry, and ensure the render that uses
key={item.href} (in TopBar) will have unique keys—alternatively switch the key
to a unique value (like item.label or a generated id) if you intentionally keep
similar hrefs.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: abe14a36-9d83-415d-8187-83c4070160da
📒 Files selected for processing (5)
src/components/landing/LandingPage.csssrc/components/landing/ROICalculator.tsxsrc/components/landing/TopBar.tsxsrc/components/lookahead/CapacityDashboard.tsxsrc/components/lookahead/UploadReviewDialog.tsx
Summary by CodeRabbit
New Features
Style & Improvements
Tests