Skip to content

fix: product handling#124

Merged
CodeMeAPixel merged 1 commit into
productionfrom
development
Jul 7, 2026
Merged

fix: product handling#124
CodeMeAPixel merged 1 commit into
productionfrom
development

Conversation

@CodeMeAPixel

@CodeMeAPixel CodeMeAPixel commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • New Features

    • Game, VPS, and dedicated hosting pages now load category content dynamically, so navigation and pricing sections stay in sync with available offerings.
    • Several game hosting pages were consolidated into a unified game category experience.
    • Hosting plans now show clearer labels for memory and storage types, and more descriptive game page content is shown directly.
  • Bug Fixes

    • Improved empty-state messaging when no plans are available.
    • Updated location and network counts to reflect the latest infrastructure.

@vercel

vercel Bot commented Jul 7, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
website Error Error Jul 7, 2026 12:44am

@CodeMeAPixel CodeMeAPixel merged commit 9e44898 into production Jul 7, 2026
9 of 11 checks passed
@coderabbitai

coderabbitai Bot commented Jul 7, 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 Plus

Run ID: f70d6323-14dd-46ab-9f30-43ec76fe933f

📥 Commits

Reviewing files that changed from the base of the PR and between fc1052c and eaff18b.

📒 Files selected for processing (43)
  • app/api/products/overrides/route.ts
  • app/dedicated/page.tsx
  • app/games/[slug]/page.tsx
  • app/games/gmod/page.tsx
  • app/games/hytale/page.tsx
  • app/games/minecraft/page.tsx
  • app/games/page.tsx
  • app/games/palworld/page.tsx
  • app/games/rust/page.tsx
  • app/games/terraria/page.tsx
  • app/layout.tsx
  • app/vps/page.tsx
  • packages/core/constants/catalog-hubs.ts
  • packages/core/constants/game/gmod.ts
  • packages/core/constants/game/hytale.ts
  • packages/core/constants/game/index.ts
  • packages/core/constants/game/minecraft.ts
  • packages/core/constants/game/palworld.ts
  • packages/core/constants/game/rust.ts
  • packages/core/constants/game/terraria.ts
  • packages/core/constants/services.ts
  • packages/core/constants/status-mapping.ts
  • packages/core/lib/bytepay.ts
  • packages/core/lib/spec-parser.ts
  • packages/core/products/billing-service.ts
  • packages/core/products/catalog-config.ts
  • packages/core/products/index.ts
  • packages/core/products/override-store.ts
  • packages/core/products/server.ts
  • packages/core/products/service.ts
  • packages/core/products/types.ts
  • packages/core/types/servers/game.ts
  • packages/ui/components/Layouts/About/about-page.tsx
  • packages/ui/components/Layouts/Dedicated/dedicated-hub.tsx
  • packages/ui/components/Layouts/Games/game-features.tsx
  • packages/ui/components/Layouts/Home/about.tsx
  • packages/ui/components/Layouts/Home/hero-graphic.tsx
  • packages/ui/components/Layouts/Home/services.tsx
  • packages/ui/components/Layouts/Nodes/nodes-client.tsx
  • packages/ui/components/Layouts/VPS/vps-hub.tsx
  • packages/ui/components/Static/navigation.tsx
  • packages/ui/components/layout-chrome.tsx
  • translations

📝 Walkthrough

Walkthrough

This PR replaces static game/VPS/dedicated plan constants and options with a dynamic category-hub system backed by Paymenter categories. Pages fetch hubs, resolve per-category display config, and load plans per child category. Navigation, layout, and Home services consume hub data; several stats display "10+" instead of "3+"; unrelated override-store/service files are removed.

Changes

Dynamic catalog hub feature

Layer / File(s) Summary
Category hub backend resolution
packages/core/lib/bytepay.ts, packages/core/constants/catalog-hubs.ts
Adds exported CategoryInfo/CategoryHub types, category-tree building/caching, getCategoryHub lookup, and new hub-slug constants for games/VPS/dedicated.
Plan spec parsing and display enrichment
packages/core/lib/spec-parser.ts, packages/core/products/billing-service.ts, packages/core/types/servers/game.ts
Extends ParsedSpecs with ramType/storageType, adds formatStorageType, and threads these into GamePlanSpec.
Catalog display config module
packages/core/products/catalog-config.ts
Adds generic and curated per-game display config generation via resolveGameDisplayConfig.
Static game constants removed
packages/core/constants/game/*
Removes placeholder/translation-key-driven plan arrays and GAME_OPTIONS, replaced with inline display content for Minecraft/Rust.
Games/VPS/dedicated page wiring
app/games/[slug]/page.tsx, app/games/page.tsx, app/dedicated/page.tsx, app/vps/page.tsx, packages/ui/components/Layouts/Home/services.tsx
Pages fetch hubs, resolve display config, and load plans concurrently per child category; Home services computes live starting prices via hub lookups.
Navigation/layout gamesNav wiring
app/layout.tsx, packages/ui/components/layout-chrome.tsx, packages/ui/components/Static/navigation.tsx
Threads gamesNav from root layout through LayoutChrome to Navigation, replacing hard-coded game links.
Out-of-stock empty states
packages/ui/components/Layouts/Dedicated/dedicated-hub.tsx, packages/ui/components/Layouts/VPS/vps-hub.tsx, packages/ui/components/Layouts/Games/game-features.tsx
Adds "no plans in stock" empty states and a Gamepad2 icon mapping.

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

Data Center Stats and Location Updates

Layer / File(s) Summary
Location count and monitor mapping updates
packages/ui/components/Layouts/About/about-page.tsx, packages/ui/components/Layouts/Home/about.tsx, packages/ui/components/Layouts/Home/hero-graphic.tsx, packages/ui/components/Layouts/Nodes/nodes-client.tsx, packages/core/constants/status-mapping.ts
Updates "3+" to "10+" displays and adds NEWY-GAME1 node/location and monitor mappings.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant GamesPage
  participant getCategoryHub
  participant resolveGameDisplayConfig
  participant getGamePlans

  User->>GamesPage: request /games
  GamesPage->>getCategoryHub: getCategoryHub(GAME_HUB_SLUGS)
  getCategoryHub-->>GamesPage: hub with children
  loop each child category
    GamesPage->>resolveGameDisplayConfig: resolve display config
    GamesPage->>getGamePlans: fetch plans for slug
  end
  GamesPage-->>User: render games grid with startingPriceGBP
Loading

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

Possibly related PRs

Poem

  • A hub of slugs, a tree of kin,
  • Where categories now begin.
  • No more static plans to keep—
  • The catalog wakes, no longer asleep.
  • Ten-plus partners, nodes anew,
  • New York joins the friendly crew! 🐇
✨ 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 development

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.

1 participant