Add acronis accelerate event#16
Conversation
New campaign page at learn/acronis-accelerate-event.html for the July 30 live Acronis Accelerate event, reusing existing design-system components/colors only. Adds a matching tile on learn.html. Also fixes SiteHeader/SiteFooter nav links in partials.jsx to be root-absolute rather than page-relative, so they resolve correctly from pages nested one directory deep (e.g. learn/*.html). Co-Authored-By: Claude Sonnet 5 <[email protected]>
utm_source=constructor, utm_medium=referral, utm_campaign=FY26-Q3-constructorfabric-lp Co-Authored-By: Claude Sonnet 5 <[email protected]>
|
Warning Review limit reached
Next review available in: 49 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughChangesAcronis event experience
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested reviewers: Sequence Diagram(s)sequenceDiagram
participant Visitor
participant LearnPage
participant EventPage
participant ReactComponents
Visitor->>LearnPage: select Acronis Accelerate card
LearnPage->>EventPage: navigate to event URL
EventPage->>ReactComponents: render event sections and CTAs
ReactComponents->>Visitor: display landing page and registration links
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 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 |
|
Preview deployment is ready: https://constructorfabric.github.io/website-previews/pr-16/ This preview is built from the latest commit on this PR. It is regenerated automatically on every push. Old previews are cleaned up after 30 days. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
learn.html (1)
122-126: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAlign link with root-absolute path strategy.
Using a relative path here works correctly if the current page is strictly accessed as
/learn.html. However, to align with the PR objective of using root-absolute paths for robust resolution across nested configurations (e.g., in case of URL rewriting like/learn/), consider using an absolute path from the root.♻️ Proposed fix
<ElementLinkCard title="Acronis Accelerate: The Journey to Autonomous IT" body="Join a live virtual event where Constructor Fabric is introduced as part of Acronis's Autonomous IT platform — learn to build applications with AI, qualify for free dev infrastructure, and reach a market of 500 million SMBs." - href="learn/acronis-accelerate-event.html" + href="/learn/acronis-accelerate-event.html" linkLabel="Learn more →" />🤖 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 `@learn.html` around lines 122 - 126, Update the href on the ElementLinkCard for “Acronis Accelerate: The Journey to Autonomous IT” to use a root-absolute path, preserving the existing destination while ensuring it resolves correctly from nested or rewritten URLs.learn/acronis-accelerate-event.html (1)
23-23: 🚀 Performance & Scalability | 🔵 TrivialConsider pre-compiling JSX for production.
Using
@babel/standaloneto transpile JSX natively in the browser is convenient for prototyping but introduces a major performance bottleneck for real users. Visitors have to download a ~2MB Babel compiler and wait for their browser to parse and compile the JSX before the page can render.If this landing page is meant for production traffic, consider using a build step (like Vite, Webpack, or a simple Babel CLI script) to pre-compile the React components so you can serve static JavaScript.
🤖 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 `@learn/acronis-accelerate-event.html` at line 23, Replace the browser-side `@babel/standalone` dependency in the landing page with a production build step that pre-compiles the JSX and serves the resulting static JavaScript. Update the page to load the compiled bundle instead of relying on Babel to transpile JSX at runtime, while preserving the existing React component behavior.
🤖 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 `@learn/acronis-accelerate-event.html`:
- Around line 261-266: Update the location.hash handling in the setTimeout
callback to retrieve the target with document.getElementById instead of
document.querySelector, using the hash value without its leading #. Preserve the
existing conditional scrollIntoView behavior when a matching element is found.
- Around line 21-22: Replace the development React and ReactDOM CDN scripts in
the page’s script includes with the corresponding production.min.js builds,
updating each integrity hash to match the production asset while preserving
defer and crossorigin attributes.
---
Nitpick comments:
In `@learn.html`:
- Around line 122-126: Update the href on the ElementLinkCard for “Acronis
Accelerate: The Journey to Autonomous IT” to use a root-absolute path,
preserving the existing destination while ensuring it resolves correctly from
nested or rewritten URLs.
In `@learn/acronis-accelerate-event.html`:
- Line 23: Replace the browser-side `@babel/standalone` dependency in the landing
page with a production build step that pre-compiles the JSX and serves the
resulting static JavaScript. Update the page to load the compiled bundle instead
of relying on Babel to transpile JSX at runtime, while preserving the existing
React component behavior.
🪄 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: 53a5f6ba-ab7b-4275-ade3-0e2ff6022538
📒 Files selected for processing (3)
learn.htmllearn/acronis-accelerate-event.htmlpartials.jsx
| <script defer src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script> | ||
| <script defer src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script> |
There was a problem hiding this comment.
🚀 Performance & Scalability | 🟠 Major | ⚡ Quick win
Use React production builds for public-facing environments.
The development.js versions of React and ReactDOM are significantly larger, slower, and will expose development warnings in the browser console. For a public landing page, these should be replaced with the optimized production.min.js versions.
⚡ Proposed fix
-<script defer src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script>
-<script defer src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script>
+<!-- Note: Ensure you update or temporarily remove the integrity attributes, as the production file hashes will differ. -->
+<script defer src="https://unpkg.com/[email protected]/umd/react.production.min.js" crossorigin="anonymous"></script>
+<script defer src="https://unpkg.com/[email protected]/umd/react-dom.production.min.js" crossorigin="anonymous"></script>📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| <script defer src="https://unpkg.com/[email protected]/umd/react.development.js" integrity="sha384-hD6/rw4ppMLGNu3tX5cjIb+uRZ7UkRJ6BPkLpg4hAu/6onKUg4lLsHAs9EBPT82L" crossorigin="anonymous"></script> | |
| <script defer src="https://unpkg.com/[email protected]/umd/react-dom.development.js" integrity="sha384-u6aeetuaXnQ38mYT8rp6sbXaQe3NL9t+IBXmnYxwkUI2Hw4bsp2Wvmx4yRQF1uAm" crossorigin="anonymous"></script> | |
| <!-- Note: Ensure you update or temporarily remove the integrity attributes, as the production file hashes will differ. --> | |
| <script defer src="https://unpkg.com/[email protected]/umd/react.production.min.js" crossorigin="anonymous"></script> | |
| <script defer src="https://unpkg.com/[email protected]/umd/react-dom.production.min.js" crossorigin="anonymous"></script> |
🤖 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 `@learn/acronis-accelerate-event.html` around lines 21 - 22, Replace the
development React and ReactDOM CDN scripts in the page’s script includes with
the corresponding production.min.js builds, updating each integrity hash to
match the production asset while preserving defer and crossorigin attributes.
| if (location.hash) { | ||
| setTimeout(() => { | ||
| const el = document.querySelector(location.hash); | ||
| if (el) el.scrollIntoView(); | ||
| }, 0); | ||
| } |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟡 Minor | ⚡ Quick win
Prevent SyntaxError from invalid CSS selectors in location.hash.
If the URL hash contains a value that starts with a number (e.g., #1) or includes special characters, document.querySelector will throw a SyntaxError because it treats the input as a CSS selector. Using document.getElementById bypasses CSS syntax rules and is the safer standard approach for fetching elements by ID.
🛠️ Proposed fix
if (location.hash) {
setTimeout(() => {
- const el = document.querySelector(location.hash);
+ const el = document.getElementById(location.hash.slice(1));
if (el) el.scrollIntoView();
}, 0);
}📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| if (location.hash) { | |
| setTimeout(() => { | |
| const el = document.querySelector(location.hash); | |
| if (el) el.scrollIntoView(); | |
| }, 0); | |
| } | |
| if (location.hash) { | |
| setTimeout(() => { | |
| const el = document.getElementById(location.hash.slice(1)); | |
| if (el) el.scrollIntoView(); | |
| }, 0); | |
| } |
🤖 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 `@learn/acronis-accelerate-event.html` around lines 261 - 266, Update the
location.hash handling in the setTimeout callback to retrieve the target with
document.getElementById instead of document.querySelector, using the hash value
without its leading #. Preserve the existing conditional scrollIntoView behavior
when a matching element is found.
The PR preview build injects <base href="/website-previews/pr-N/"> so plain relative links resolve under that path regardless of a page's own nesting. That broke this page in two ways: - learn/acronis-accelerate-event.html referenced ../styles.css, ../partials.jsx, and ../assets/img/favicon.svg, which resolve correctly with no base tag (production) but escape one directory too far once a base tag is present (preview) -- this crashed the page entirely in the PR preview (partials.jsx never loaded). - partials.jsx's nav/brand/footer links were hardcoded to a leading "/", correct in production but wrong under the preview base tag (which needs bare relative filenames instead). Both now detect base-tag presence at runtime and choose the right form so the same source works in production and in preview, from any page depth. Co-Authored-By: Claude Sonnet 5 <[email protected]>
|
Preview deployment is ready: https://constructorfabric.github.io/website-previews/pr-16/ This preview is built from the latest commit on this PR. It is regenerated automatically on every push. Old previews are cleaned up after 30 days. |
What changed
Pages to review
index.htmlfoundation.htmlelements.htmllearn.htmlparticipate.htmlprivacy-policy.html404.htmlstyles.csspartials.jsxassets/Preview
A preview URL will be posted automatically by GitHub Actions after CI succeeds. The format is:
If you do not see a preview URL on this PR within a few minutes of pushing, see docs/pr-preview-process.md for troubleshooting.
Screenshots
Required for visual changes. Optional for text-only changes.
Desktop:
Mobile:
Checklist
python3 -m http.server)Summary by CodeRabbit
New Features
Bug Fixes