-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Fix feature pages content bleeding with configurable components #2748
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
base: main
Are you sure you want to change the base?
Fix feature pages content bleeding with configurable components #2748
Conversation
- Refactor shared components (FeaturesHero, BenefitsSection, FeaturesGridSection, FeaturesIntroSection) to accept content props with fallbacks - Create content management system with TypeScript interfaces for page-specific content - Add new feature pages: /features/ai, /features/builder, /features/prototype, /features/design-system - Extract content from PRs #2742, #2743, #2744, #2746, #2747 into dedicated content files - Preserve original /features page functionality unchanged - Eliminate content bleeding between feature pages while maintaining design consistency Fixes content bleeding issue where changes intended for one feature page affected others due to shared hardcoded components. Co-Authored-By: [email protected] <[email protected]>
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This pull request has been ignored for the connected project Preview Branches by Supabase. |
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Important Review skippedBot user detected. To trigger a single review, invoke the You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests
🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. CodeRabbit Commands (Invoked using PR/Issue comments)Type Other keywords and placeholders
CodeRabbit Configuration File (
|
@@ -158,17 +158,17 @@ var Mr = hl((k5, Lf) => { | |||
m = !0; | |||
if (typeof l != 'function') throw new TypeError(jc); | |||
if (((i = Gf(i) || 0), Wc(t))) | |||
(h = !!t.leading), | |||
((h = !!t.leading), |
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 diff introduces a pattern where multiple expressions are combined using the comma operator inside extra parentheses (e.g. "return ((r = n = void 0), b);"). Although this is functionally equivalent, it considerably reduces readability and maintainability. Consider splitting such expressions into separate statements.
{ | ||
subtitle: "Version History", | ||
title: "Auto save, history and version control", | ||
description: "Roll-back anytime! Onlook automatically saves project snapshots so you can experiment with confidence." |
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.
Typo: Consider changing "Roll-back" to "Rollback" in the description for Version History.
@@ -2827,7 +2832,7 @@ function G0(l) { | |||
(g.parseRulePrelude = 'parseRulePrelude' in h ? Boolean(h.parseRulePrelude) : !0), | |||
(g.parseValue = 'parseValue' in h ? Boolean(h.parseValue) : !0), | |||
(g.parseCustomProperty = | |||
'parseCustomProperty' in h ? Boolean(h.parseCustomProperty) : !1); | |||
'parseCustomProperty' in h ? Boolean(h.parseCustomProperty) : !1)); |
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.
There is an extra closing parenthesis at the end of the assignment to g.parseCustomProperty on this line. Please remove the additional ')' so that the parenthesis correctly matches the opening parenthesis from the start of the expression.
@@ -2937,7 +2942,7 @@ jl.prototype.applySourceMap = function l(i, t, r) { | |||
if (o != null) n = bl.relative(o, n); | |||
var b = new er(), | |||
g = new er(); | |||
this._mappings.unsortedForEach(function (e) { | |||
(this._mappings.unsortedForEach(function (e) { |
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.
Typographical issue: There's an extra opening parenthesis before this._mappings.unsortedForEach
. This appears to be unintended and should be removed for correct syntax.
@@ -9604,7 +9618,7 @@ function ih(l) { | |||
let i = document.createElement('div'), | |||
t = window.getComputedStyle(l), | |||
r = l.className; | |||
(i.id = 'onlook-drag-stub'), | |||
((i.id = 'onlook-drag-stub'), |
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.
There's an extra opening parenthesis in the assignment segment. The line starts with ((i.id = 'onlook-drag-stub'),
which seems unintended and results in unbalanced parentheses. Consider removing the extra '(' for clarity.
@@ -10961,7 +10976,7 @@ class Gl extends E { | |||
exact: !1, | |||
message: n.message, | |||
}), | |||
t.dirty(); | |||
t.dirty()); |
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.
There appears to be an extra closing parenthesis. The code currently reads t.dirty());
but likely it should be t.dirty();
. Please verify and correct the extra parenthesis.
@@ -11494,37 +11509,37 @@ class pi extends E { | |||
for (let n of this._def.checks) | |||
if (n.kind === 'min') { | |||
if (n.inclusive ? l.data < n.value : l.data <= n.value) | |||
(t = this._getOrReturnCtx(l, t)), | |||
((t = this._getOrReturnCtx(l, t)), |
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.
There appears to be an extra opening parenthesis in this expression. The assignment part now begins with "((t = this._getOrReturnCtx(l, t))," which likely should only have a single opening parenthesis. Please adjust to ensure proper grouping.
} else if (n.kind === 'max') { | ||
if (n.inclusive ? l.data > n.value : l.data >= n.value) | ||
(t = this._getOrReturnCtx(l, t)), | ||
((t = this._getOrReturnCtx(l, t)), |
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.
Typographical issue: The expression ((t = this._getOrReturnCtx(l, t))
starts with redundant opening parentheses. Consider removing the extra parenthesis to match the intended syntax.
@@ -12889,7 +12913,7 @@ function sh(l, i = {}, t) { | |||
var K4 = { object: tl.lazycreate }, | |||
W; | |||
(function (l) { | |||
(l.ZodString = 'ZodString'), | |||
((l.ZodString = 'ZodString'), |
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.
Typographical error: There appears to be an extra opening parenthesis on this line. The expression starts with ((l.ZodString = 'ZodString')
which likely should be (l.ZodString = 'ZodString')
to maintain proper parenthesis balance.
@@ -12924,7 +12948,7 @@ var K4 = { object: tl.lazycreate }, | |||
(l.ZodPromise = 'ZodPromise'), | |||
(l.ZodBranded = 'ZodBranded'), | |||
(l.ZodPipeline = 'ZodPipeline'), | |||
(l.ZodReadonly = 'ZodReadonly'); | |||
(l.ZodReadonly = 'ZodReadonly')); |
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.
Typographical error: There appears to be an extra closing parenthesis in the assignment to ZodReadonly. It currently reads (l.ZodReadonly = 'ZodReadonly'));
but likely should be (l.ZodReadonly = 'ZodReadonly');
.
Description
This PR implements a configurable component system to eliminate content bleeding between feature pages. Previously, changes intended for one feature page (like
/features/ai
) would affect other pages because they shared hardcoded components.Key Changes:
/features/ai
,/features/builder
,/features/prototype
,/features/design-system
Implementation Strategy:
HeroContent
,BenefitItem[]
)/features
page remains unchangedRelated Issues
Addresses content bleeding issue where changes from these PRs affected unintended pages:
/features
- PR fix: apply HTML semantic tag fixes to original features page #2744 (semantic fixes)/features/ai
- PR feat: add AI features page at /features/ai with AI-focused content #2743 (AI-focused content)/features/builder
- PR feat: create /features/builder page with React visual builder content #2746 (React visual builder content)/features/prototype
- PR feat: add AI prototype generator features page at /features/prototype #2742 (AI prototype generator content)/features/design-system
- PR feat: create /features/design-system page with design system tools content #2747 (design system tools content)Type of Change
Testing
CSB_API_KEY
,SUPABASE_DATABASE_URL
, etc.). The implementation needs browser testing to verify:Critical Test Cases:
/features
page loads with original content/features/ai
,/features/builder
,/features/prototype
,/features/design-system
load correctlyRecommended Testing Steps:
Human Review Checklist
High Priority:
/features
page unchangedMedium Priority:
Additional Notes
Content Sources:
/src/content/
Architecture:
Link to Devin run: https://app.devin.ai/sessions/098e28935512421cbda5ef3406b94679
Requested by: @itsNintu
Important
Introduces configurable components to prevent content bleeding across feature pages and adds new feature pages with dedicated content files.
features-hero.tsx
,benefits-section.tsx
, andfeatures-grid-section.tsx
to accept content props with fallbacks./features/ai
,/features/builder
,/features/prototype
,/features/design-system
.src/content/
.This description was created by
for edaae97. You can customize this summary. It will automatically update as commits are pushed.