feat: add landing page, error page, and refine header styling#20
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yml Review profile: ASSERTIVE Plan: Lite Run ID: 📒 Files selected for processing (4)
💤 Files with no reviewable changes (1)
📝 WalkthroughWalkthroughAdds a landing page (hero, skills, testimonials, recent projects/talks), two composables (useAllTestimonials, useSortedProjects), refactors the projects listing to use the new composable, adds a custom error page, and adjusts the site header logo markup and navigation font sizes. Changes
Sequence Diagram(s)sequenceDiagram
participant Page as Landing Page
participant SA as useSortedProjects
participant TA as useAllTestimonials
participant DB as Collections
rect rgba(100, 150, 200, 0.5)
Note over Page,DB: Parallel data fetching
Page->>SA: request sorted projects (limit)
Page->>TA: request aggregated testimonials
Page->>DB: request active socials
Page->>DB: request recent talks
SA->>DB: query all projects
SA-->>SA: sort by ongoing, endDate, startDate, stars
SA-->>Page: return sorted projects
TA->>DB: query projects
TA->>DB: query talks
TA-->>TA: build combined list, attach linkTo/_sortDate, sort by _sortDate
TA-->>Page: return testimonials
DB-->>Page: return socials
DB-->>Page: return recent talks
end
rect rgba(200, 150, 100, 0.5)
Note over Page: Render UI sections
Page->>Page: render hero, skills, socials
Page->>Page: render testimonial carousel
Page->>Page: render recent talks and projects
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@app/composables/useSortedProjects.ts`:
- Line 11: The current implementation sorts the array in-place via
projects.sort(...) which mutates the original cached array; fix this in
useSortedProjects by making a shallow copy before sorting (e.g., copy projects
into a new array and then call .sort on that copy) so the original cached
reference isn’t mutated; update the sorted assignment that currently references
projects.sort(...) to instead sort a copied array (use the projects identifier
and the sorted variable so reviewers can locate the change).
In `@app/error.vue`:
- Around line 26-28: The <h1> in the error component is hardcoded to "Page Not
Found"; update it to render a dynamic heading based on the statusCode variable
(used in this component) so 404 shows "Page Not Found" and other codes show a
suitable heading like "An unexpected error occurred" or "Error {statusCode}";
modify the <h1> (or its template binding) to check statusCode and display the
appropriate string, keeping the existing statusCode prop/computed logic intact.
In `@app/pages/index.vue`:
- Around line 40-54: The Promise.all call is executing sequentially because each
promise is awaited inside the array; remove the inner await keywords so the
calls to useAsyncData('index-socials-all', ...), useAllTestimonials(),
useAsyncData('recent-talks', ...), and useSortedProjects(2) are passed as
promises to Promise.all for true parallel execution; update the array in the
Promise.all invocation accordingly and keep the outer await on Promise.all to
await all results together.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: ASSERTIVE
Plan: Lite
Run ID: a82a86d6-cd00-40a5-9c5a-6bbb40178fed
📒 Files selected for processing (6)
app/components/layout/SiteHeader.vueapp/composables/useAllTestimonials.tsapp/composables/useSortedProjects.tsapp/error.vueapp/pages/index.vueapp/pages/projects/index.vue
This PR adds the error page and landing page with hero, about, connect, skills, testimonials, recent talks, and recent projects sections, and polishes the site header with larger nav items and a restyled logo dot.
Summary by CodeRabbit
New Features
Style
Refactor
Chores