xTDH info page#1637
Conversation
Signed-off-by: GelatoGenesis <tarmokalling@gmail.com>
WalkthroughA new informational page about xTDH has been added to the network section. The implementation includes a client-side component with static content, a Next.js page wrapper with metadata generation, and a sidebar navigation link. Changes
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5–10 minutes
Suggested reviewers
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (2)
hooks/useSidebarSections.ts (1)
19-26: Confirm intent of second “xTDH” entry and simplify href literalYou now have two distinct xTDH entries: one under Network (
/network/xtdh) and one under Collections (/xtdh). If this is intentional (info page vs collection view), all good; if not, it may confuse users and navigation/search mappings. Also, the template literal on Line 25 doesn’t interpolate anything, so a normal string is slightly cleaner.Example tweak:
- { name: "xTDH", href: `/network/xtdh` }, + { name: "xTDH", href: "/network/xtdh" },app/network/xtdh/page.tsx (1)
1-13: Metadata wiring and server/client split look good; async can be droppedThe server wrapper cleanly renders the client page and uses
getAppMetadatawith the requiredtitle, matching the app router guidelines. SincegenerateMetadatadoesn’t perform any async work, you can simplify it to a sync function for clarity.For example:
-import { getAppMetadata } from "@/components/providers/metadata"; -import XTDHMainPage from "./page.client"; - -export default function XTDH() { - return <XTDHMainPage />; -} - -export const generateMetadata = async () => { - return getAppMetadata({ - title: "xTDH", - description: "Network", - }); -}; +import { getAppMetadata } from "@/components/providers/metadata"; +import XTDHMainPage from "./page.client"; + +export default function XTDH() { + return <XTDHMainPage />; +} + +export const generateMetadata = () => + getAppMetadata({ + title: "xTDH", + description: "Network", + });
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (3)
app/network/xtdh/page.client.tsx(1 hunks)app/network/xtdh/page.tsx(1 hunks)hooks/useSidebarSections.ts(1 hunks)
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{ts,tsx,js,jsx}
📄 CodeRabbit inference engine (.cursorrules)
**/*.{ts,tsx,js,jsx}: Do not include any comments in the code; it should be self-explanatory
Write correct, up-to-date, bug-free, fully componentized, secure, and efficient code
Include all required imports and ensure proper naming of key components
Use NextJS features that match the current version
**/*.{ts,tsx,js,jsx}: Replace<img>elements with<Image />fromnext/imageto satisfy@next/next/no-img-elementESLint rule
Use<Link href="/path">from Next.js for internal navigation instead of plain HTML links to satisfy@next/next/no-html-link-for-pagesESLint rule
Files:
hooks/useSidebarSections.tsapp/network/xtdh/page.client.tsxapp/network/xtdh/page.tsx
**/*.{js,jsx,ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{js,jsx,ts,tsx}: Code must satisfy ESLint (Next's Core Web Vitals + React Hooks)
Use framework APIs: internal links should use<Link>, images should usenext/image, and adopt Next's ESLint rules (Core Web Vitals)
**/*.{js,jsx,ts,tsx}: Code must satisfy ESLint (Next's Core Web Vitals + React Hooks rules)
Follow existing code style and naming conventions; maintain clean code standards (measured by SonarQube)
Files:
hooks/useSidebarSections.tsapp/network/xtdh/page.client.tsxapp/network/xtdh/page.tsx
**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
**/*.{ts,tsx}: Must passtsc --noEmittype checking
Prefer direct named imports for React hooks and types (import { useMemo, useRef, FC, etc. } from "react") overReact.namespace usage (React.useMemo,React.useRef, etc.)
If thereact-hooks/exhaustive-depslint rule is triggered: if the Effect only derives state, remove the Effect and compute during render; if listening to an external system and needing fresh props/state, wrap non-reactive logic inuseEffectEvent
**/*.{ts,tsx}: Must passtsc --noEmitfor TypeScript type checking
Prefer Server Components over Client Components; use Server Functions/Server Actions ('use server') for mutations
Remove unnecessary Effects; if Effect only derives state, compute during render instead
UseuseEffectEventfor non-reactive logic inside Effects to avoid unnecessary re-runs
Use framework APIs:<Link>for internal links,next/imagefor images, adopt Next's ESLint rules
Use'use cache'directive and Cache Components features for explicit opt-in caching in Next.js 16
Use TypeScript and React functional components with hooks
When parsing Seize URLs or similar, fail fast if base origin is unavailable; do not fall back to placeholder origins
Replace<img>elements with<Image />fromnext/image
Use<Link href="/path">for internal navigation instead of plain HTML links
Move data fetches to Server Components; handle mutations through Server Functions/Server Actions with'use server'directive
Files:
hooks/useSidebarSections.tsapp/network/xtdh/page.client.tsxapp/network/xtdh/page.tsx
**/*.{tsx,jsx}
📄 CodeRabbit inference engine (.cursorrules)
**/*.{tsx,jsx}: Use FontAwesome for icons in React components
Use TailwindCSS for styling in React components
Use react-query for data fetching
Always addreadonlybefore props in React components
Files:
app/network/xtdh/page.client.tsxapp/network/xtdh/page.tsx
app/**/*.{ts,tsx}
📄 CodeRabbit inference engine (AGENTS.md)
Routes in
app/should exportgenerateMetadatausing the helpergetAppMetadatawith a title propertyAll production routes must live under the App Router (
app/) directory
Files:
app/network/xtdh/page.client.tsxapp/network/xtdh/page.tsx
app/**/page.{ts,tsx}
📄 CodeRabbit inference engine (GEMINI.md)
Export
generateMetadatain App Router routes using thegetAppMetadatahelper from '@/components/providers/metadata'
Files:
app/network/xtdh/page.tsx
🧠 Learnings (2)
📚 Learning: 2025-12-05T10:55:30.859Z
Learnt from: CR
Repo: 6529-Collections/6529seize-frontend PR: 0
File: GEMINI.md:0-0
Timestamp: 2025-12-05T10:55:30.859Z
Learning: Applies to app/**/page.{ts,tsx} : Export `generateMetadata` in App Router routes using the `getAppMetadata` helper from '@/components/providers/metadata'
Applied to files:
app/network/xtdh/page.tsx
📚 Learning: 2025-12-03T14:52:34.255Z
Learnt from: CR
Repo: 6529-Collections/6529seize-frontend PR: 0
File: AGENTS.md:0-0
Timestamp: 2025-12-03T14:52:34.255Z
Learning: Applies to app/**/*.{ts,tsx} : Routes in `app/` should export `generateMetadata` using the helper `getAppMetadata` with a title property
Applied to files:
app/network/xtdh/page.tsx
🧬 Code graph analysis (2)
app/network/xtdh/page.client.tsx (1)
contexts/TitleContext.tsx (1)
useSetTitle(210-218)
app/network/xtdh/page.tsx (2)
app/network/xtdh/page.client.tsx (1)
XTDHMainPage(6-108)components/providers/metadata.ts (1)
getAppMetadata(5-36)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Analyze (javascript-typescript)
|



Summary by CodeRabbit
Release Notes
✏️ Tip: You can customize this high-level summary in your review settings.