Skip to content

Dev - #193

Merged
afsar-dev merged 5 commits into
mainfrom
dev
Jul 2, 2026
Merged

Dev#193
afsar-dev merged 5 commits into
mainfrom
dev

Conversation

@afsar-dev

@afsar-dev afsar-dev commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features

    • Added a new Showcase section with listing and detail pages, plus navigation links across the app.
    • Showcase entries now display cards with images, tags, descriptions, and website links.
  • Bug Fixes

    • Improved handling for invalid or missing content routes so users see a proper not-found page.
    • Fixed several animated components so they stop cleanly when users leave the page.
  • Chores

    • Updated the project to use the repository’s declared Yarn version and a more consistent install setup.

@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nurui Ready Ready Preview, Comment, Open in v0 Jul 2, 2026 9:28am

@afsar-dev
afsar-dev merged commit 4a9e913 into main Jul 2, 2026
3 of 6 checks passed
@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0e5fdfcd-6286-420c-bf45-2df80901d1bb

📥 Commits

Reviewing files that changed from the base of the PR and between eb0275b and 6d5124f.

⛔ Files ignored due to path filters (4)
  • public/showcase/aura-analytics.png is excluded by !**/*.png
  • public/showcase/nurui-docs.png is excluded by !**/*.png
  • public/showcase/zenith-portfolio.png is excluded by !**/*.png
  • yarn.lock is excluded by !**/yarn.lock, !**/*.lock
📒 Files selected for processing (33)
  • .github/workflows/cicd_main.yml
  • .github/workflows/cidevops.yml
  • .yarnrc.yml
  • package.json
  • src/app/(docs)/docs/[slug]/page.tsx
  • src/app/showcase/[slug]/page.tsx
  • src/app/showcase/page.tsx
  • src/components/common/Gravity.tsx
  • src/components/layout/Footer.tsx
  • src/components/layout/Navbar.tsx
  • src/components/nurui/banner.tsx
  • src/components/nurui/canvas-cursor.tsx
  • src/components/nurui/code-cursor.tsx
  • src/components/nurui/digital-hero.tsx
  • src/components/nurui/electric-cursor.tsx
  • src/components/nurui/fire-cursor.tsx
  • src/components/nurui/ghost-cursor.tsx
  • src/components/nurui/gradient-grid-hero.tsx
  • src/components/nurui/shader-canvas.tsx
  • src/components/nurui/splash-cursor.tsx
  • src/components/pages/showcase/ShowcaseCard.tsx
  • src/components/pages/showcase/ShowcaseGrid.tsx
  • src/components/ui/code-block/CodeBlock.tsx
  • src/components/ui/drawer/VaulDrawer.tsx
  • src/data/showcase.data.ts
  • src/lib/showcase.ts
  • src/server/actions/convertTsxToJsx.ts
  • src/server/convertTsxToJsxCore.ts
  • src/server/stripTypesPreserveFormat.ts
  • src/types/showcase.type.ts
  • src/utils/convertTsxToJsx.ts
  • src/utils/github.ts
  • tsconfig.json

📝 Walkthrough

Walkthrough

This PR introduces a Showcase feature (data, types, pages, card/grid components, nav links), migrates CI/Yarn setup to Corepack, hardens the docs slug route with notFound() handling, replaces client-side TSX-to-JSX conversion with a server-side type-stripping pipeline, fixes GitHub contributor fetch error handling, and adds cancelAnimationFrame cleanup plus listener refactors across nurui animation components.

Changes

Showcase Feature

Layer / File(s) Summary
Data, types, and lib helpers
src/types/showcase.type.ts, src/data/showcase.data.ts, src/lib/showcase.ts
Defines IShowcaseItem, a sample dataset, and async getShowcaseItems/getShowcaseBySlug helpers.
Card and grid components
src/components/pages/showcase/ShowcaseCard.tsx, src/components/pages/showcase/ShowcaseGrid.tsx
Renders showcase items as linked cards with tags, description, domain indicator, and a responsive grid wrapper.
Listing page
src/app/showcase/page.tsx
Fetches items, renders the grid or an empty state, plus a static CTA section.
Detail page
src/app/showcase/[slug]/page.tsx
Adds generateMetadata, generateStaticParams, and the detail component that calls notFound() when a project is missing.
Navigation wiring
src/components/layout/Footer.tsx, src/components/layout/Navbar.tsx, src/components/ui/drawer/VaulDrawer.tsx
Adds a "Showcase" link to footer, navbar, and drawer navigation lists.

CI/Yarn Tooling

Layer / File(s) Summary
Corepack-based install
.github/workflows/cicd_main.yml, .github/workflows/cidevops.yml, .yarnrc.yml, package.json
CI jobs enable Corepack and use yarn install --immutable; .yarnrc.yml sets node-modules linker and package.json pins packageManager.
Dependency/tsconfig tweaks
package.json, tsconfig.json
Adds @types/stylis devDependency and adjusts tsconfig include/typeRoots.

Animation Lifecycle Cleanup

Layer / File(s) Summary
animationId cleanup pattern
src/components/nurui/code-cursor.tsx, digital-hero.tsx, electric-cursor.tsx, fire-cursor.tsx, ghost-cursor.tsx
Tracks requestAnimationFrame ids and cancels them on unmount.
CanvasCursor listener refactor
src/components/nurui/canvas-cursor.tsx
Extracts pointer helpers to file scope, rewires listeners, and returns a full cleanup function.
GradientGridHero/ShaderCanvas cleanup
src/components/nurui/gradient-grid-hero.tsx, src/components/nurui/shader-canvas.tsx
Adds named handlers, animationId tracking, and cleanup; reformats shader compile calls.
SplashCursor handler refactor
src/components/nurui/splash-cursor.tsx
Replaces inline listeners with named handlers and adds animationId-based cleanup.
Gravity scroll fix and banner style
src/components/common/Gravity.tsx, src/components/nurui/banner.tsx
Prevents wheel/scroll hijack on canvas; extracts a typed flowBannerStyle object.

TSX-to-JSX Conversion Refactor

Layer / File(s) Summary
Type-stripping core
src/server/stripTypesPreserveFormat.ts
AST-based removal of type-only imports/annotations while preserving formatting.
Core converter and server action
src/server/convertTsxToJsxCore.ts, src/server/actions/convertTsxToJsx.ts
Delegates to the stripper, validates input length/type, and normalizes errors.
Wiring into utils/CodeBlock
src/utils/convertTsxToJsx.ts, src/components/ui/code-block/CodeBlock.tsx
Re-exports the server action and uses a stored originalTsSource for JSX conversion/restoration.

Docs Slug Route Hardening

Layer / File(s) Summary
Slug validation and notFound()
src/app/(docs)/docs/[slug]/page.tsx
Validates slug against a whitelist and converts ENOENT MDX read errors into 404s.

GitHub Contributors Fetch Fix

Layer / File(s) Summary
Defensive fetch handling
src/utils/github.ts
Wraps fetch/JSON parsing in try/catch, returning [] on failures.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint install failed. For unrecoverable errors, disable the tool in CodeRabbit configuration.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants