Skip to content

refactor: replace anchors with next/link#1501

Closed
prxt6529 wants to merge 1 commit intomainfrom
codex/replace-a-with-next/link
Closed

refactor: replace anchors with next/link#1501
prxt6529 wants to merge 1 commit intomainfrom
codex/replace-a-with-next/link

Conversation

@prxt6529
Copy link
Copy Markdown
Collaborator

@prxt6529 prxt6529 commented Oct 2, 2025

Summary

  • replace internal navigation anchors across static app pages with next/link for faster client-side routing
  • update shared components to import and use next/link for internal URLs
  • ensure delegation and ReMeme flows use Link elements for internal links while preserving external anchors

Testing

  • npm run lint (fails: next command not found in CI environment)

https://chatgpt.com/codex/tasks/task_e_68de2bb047448333b4c34d1630bef7bf

Summary by CodeRabbit

  • New Features
    • Smoother, faster in-app navigation via client-side routing across many pages (authors, categories, museum, education, news/OM, email signatures, dispute resolution) and components (about, downloads, delegation, activity, leaderboard, MemeLab, Rememes).
  • Refactor
    • Standardized internal links to use the app’s native navigation component for consistent behavior across the site; external links remain unchanged.
  • Performance
    • Reduced full page reloads and improved perceived speed when navigating between internal pages.

Signed-off-by: OpenAI Assistant <000000+openai-assistant@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Oct 2, 2025

Walkthrough

Internal navigation across multiple pages and components replaces native anchor tags with Next.js Link components. Corresponding Link imports are added. External links remain unchanged. No public APIs, exports, or signatures are modified. Rendering and content are preserved; only the client-side routing mechanism changes.

Changes

Cohort / File(s) Summary of Changes
Author pages
app/author/6529er6529-io/page.tsx, app/author/ladysabrina/page.tsx
Import Link and replace internal <a> with <Link> for titles, rollovers, author/category/post links.
Category pages
app/category/blog/page.tsx, app/category/news/page.tsx
Swap internal anchors for <Link> across cards, rollovers, and category/tag links; add Link imports.
Museum pages
app/museum/page.tsx, app/museum/6529-fund-szn1/page.tsx, app/museum/6529-fund-szn2/page.tsx, app/museum/genesis/page.tsx
Convert numerous internal gallery and author links to <Link>; import Link.
Education/Capital/News/OM
app/education/page.tsx, app/capital/page.tsx, app/news/introducing-om/page.tsx, app/om/page.tsx
Replace internal anchors (author, sections, internal references) with <Link>; add Link imports.
Dispute & Email pages
app/dispute-resolution/page.client.tsx, app/email-signatures/page.tsx
Introduce Link and replace internal anchors (e.g., terms link, author/category/email-protection links).
About components
components/about/AboutDataDecentral.tsx, .../AboutMemes.tsx, .../AboutMinting.tsx, .../AboutNFTDelegation.tsx, .../AboutTermsOfService.tsx
Replace internal <a> with <Link> for internal routes (open-data, FAQs, metrics, delegation, dispute-resolution); add imports.
Community/Delegation/Activity/Leaderboard
components/community-downloads/CommunityDownloads.tsx, components/delegation/CollectionDelegation.tsx, components/latest-activity/ActivityHeader.tsx, components/leaderboard/Leaderboard.tsx
Convert internal navigation (metrics, subscriptions, delegation routes, “View All”) to <Link>; import Link.
MemeLab & Rememes
components/memelab/MemeLab.tsx, components/rememes/RememeAddPage.tsx, components/rememes/RememePage.tsx
Use <Link> for internal item/detail/requirements links; add Link imports; no state/data changes.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  actor U as User
  participant P as Page/Component
  participant L as Next.js Link
  participant R as Router
  participant S as Server/Data Layer

  U->>P: Click internal link
  P->>L: Handle click
  L->>R: push(href)
  R->>S: Fetch route data (as needed)
  S-->>R: Data/HTML
  R-->>P: Render next page (client-side)
  P-->>U: Updated view without full reload
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~15 minutes

Suggested reviewers

  • ragnep

Poem

Hoppity-hop, I link with glee,
From anchor shores to client sea.
Next we leap without a load,
Router winds on a smoother road.
Carrot clicks, pages swiftly sing—
Such nimble hops a Link can bring! 🥕✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title accurately summarizes the main change of replacing anchor tags with Next.js Link components for client-side routing in a concise, clear phrase that directly reflects the PR’s content. It avoids unnecessary detail and uses readable terminology, making it easy for reviewers to understand the primary refactor at a glance.
✨ Finishing touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch codex/replace-a-with-next/link

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

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Oct 2, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
28.6% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
app/category/news/page.tsx (1)

331-335: Self-closing <Link> will fail compilation

Next.js <Link> requires children; the self-closing wrapper here (and similar ones below) drops the anchor body so TypeScript raises “Property 'children' is missing” and navigation breaks at runtime. Wrap an element inside the link instead of self-closing it.

-                              <Link
-                                className="fusion-link-wrapper"
-                                href="/news/introducing-om/"
-                                aria-label="INTRODUCING OM"
-                              />
+                              <Link
+                                className="fusion-link-wrapper"
+                                href="/news/introducing-om/"
+                                aria-label="INTRODUCING OM">
+                                <span aria-hidden="true" />
+                              </Link>

Apply the same fix to the other overlay links in this block so every <Link> renders actual children.

app/category/blog/page.tsx (1)

331-336: Empty <Link> wrappers break the build

All of the overlay links converted from <a> are now self-closing <Link> components, so they render no children. Next.js expects a child node and TypeScript will reject this (“Property 'children' is missing”), preventing compilation. Wrap a span (or other innocuous element) inside each link to satisfy the requirement and keep the rollover target clickable.

-                              <Link
-                                className="fusion-link-wrapper"
-                                href="/blog/disney-deekay-their-secret-to-animation/"
-                                target="_blank"
-                                rel="noopener noreferrer"
-                                aria-label="Disney and DeeKay: Their Secret to Animation"
-                              />
+                              <Link
+                                className="fusion-link-wrapper"
+                                href="/blog/disney-deekay-their-secret-to-animation/"
+                                target="_blank"
+                                rel="noopener noreferrer"
+                                aria-label="Disney and DeeKay: Their Secret to Animation">
+                                <span aria-hidden="true" />
+                              </Link>

Please apply the same change to the other fusion-link-wrapper links in this file.

app/author/ladysabrina/page.tsx (1)

359-365: Self-closing <Link> instances block the build

After the migration, fusion-link-wrapper links are self-closing <Link> components with no children. Next.js requires a child node, so TypeScript emits an error and the overlay link stops working. Wrap a span (or similar) inside each link so the anchor renders properly.

-                              <Link
-                                className="fusion-link-wrapper"
-                                href="/blog/disney-deekay-their-secret-to-animation/"
-                                target="_blank"
-                                rel="noopener noreferrer"
-                                aria-label="Disney and DeeKay: Their Secret to Animation"
-                              />
+                              <Link
+                                className="fusion-link-wrapper"
+                                href="/blog/disney-deekay-their-secret-to-animation/"
+                                target="_blank"
+                                rel="noopener noreferrer"
+                                aria-label="Disney and DeeKay: Their Secret to Animation">
+                                <span aria-hidden="true" />
+                              </Link>

Replicate the fix for each empty <Link> in this component.

🧹 Nitpick comments (4)
components/about/AboutMemes.tsx (1)

101-103: Consider adding target="_blank" to the external link.

The Memes chat link points to an external URL but doesn't open in a new tab. External links should typically include target="_blank" rel="noopener noreferrer" for better UX and security.

Note: This appears to be pre-existing code, so it's out of scope for this PR but worth addressing separately.

           The Memes chat on Brain:{" "}
-            <Link href="https://6529.io/my-stream?wave=0849642f-1770-4de2-9cbc-70aae59c17ff">
+            <Link 
+              href="https://6529.io/my-stream?wave=0849642f-1770-4de2-9cbc-70aae59c17ff"
+              target="_blank"
+              rel="noopener noreferrer"
+            >
              Memes-Chat
            </Link>
components/rememes/RememeAddPage.tsx (1)

19-19: Use replace for same‑page hash links

Avoid polluting history for in‑page jumps.

- <Link href="#requirements">view requirements</Link>
+ <Link href="#requirements" replace>view requirements</Link>

Also applies to: 206-208

app/capital/page.tsx (1)

2-2: Good Link conversions; consider prefetch tuning on long pages

Changes enable client routing. If prefetch cost becomes noticeable, add prefetch={false} to below‑the‑fold Links.

Also applies to: 304-310, 377-382, 801-804

app/museum/page.tsx (1)

2-2: Bulk Link migration approved; consider prefetch trade‑offs

Client routing enabled across museum links. If initial page load prefetching is heavy, set prefetch={false} on non-critical Links.

Also applies to: 303-309, 578-581, 583-586, 588-591, 593-596, 679-682, 767-770, 772-775, 860-863, 948-951, 953-956, 958-961, 1046-1049, 1126-1129, 1203-1206, 1282-1285, 1385-1396, 1398-1401, 1403-1406, 1491-1494, 1496-1499, 1584-1587, 1672-1675

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 111b797 and d863b4a.

📒 Files selected for processing (26)
  • app/author/6529er6529-io/page.tsx (6 hunks)
  • app/author/ladysabrina/page.tsx (13 hunks)
  • app/capital/page.tsx (4 hunks)
  • app/category/blog/page.tsx (13 hunks)
  • app/category/news/page.tsx (5 hunks)
  • app/dispute-resolution/page.client.tsx (2 hunks)
  • app/education/page.tsx (4 hunks)
  • app/email-signatures/page.tsx (7 hunks)
  • app/museum/6529-fund-szn1/page.tsx (15 hunks)
  • app/museum/6529-fund-szn2/page.tsx (4 hunks)
  • app/museum/genesis/page.tsx (10 hunks)
  • app/museum/page.tsx (15 hunks)
  • app/news/introducing-om/page.tsx (3 hunks)
  • app/om/page.tsx (7 hunks)
  • components/about/AboutDataDecentral.tsx (2 hunks)
  • components/about/AboutMemes.tsx (2 hunks)
  • components/about/AboutMinting.tsx (2 hunks)
  • components/about/AboutNFTDelegation.tsx (2 hunks)
  • components/about/AboutTermsOfService.tsx (2 hunks)
  • components/community-downloads/CommunityDownloads.tsx (2 hunks)
  • components/delegation/CollectionDelegation.tsx (3 hunks)
  • components/latest-activity/ActivityHeader.tsx (2 hunks)
  • components/leaderboard/Leaderboard.tsx (2 hunks)
  • components/memelab/MemeLab.tsx (3 hunks)
  • components/rememes/RememeAddPage.tsx (2 hunks)
  • components/rememes/RememePage.tsx (2 hunks)
🧰 Additional context used
📓 Path-based instructions (5)
**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursorrules)

**/*.{ts,tsx}: Do not include any comments in the code
Use react-query for data fetching
Always add readonly before props

Use TypeScript for implementation code

Files:

  • components/delegation/CollectionDelegation.tsx
  • components/about/AboutDataDecentral.tsx
  • components/rememes/RememeAddPage.tsx
  • components/about/AboutNFTDelegation.tsx
  • app/category/blog/page.tsx
  • app/education/page.tsx
  • components/about/AboutMinting.tsx
  • components/community-downloads/CommunityDownloads.tsx
  • app/category/news/page.tsx
  • app/museum/page.tsx
  • app/author/6529er6529-io/page.tsx
  • app/museum/genesis/page.tsx
  • app/author/ladysabrina/page.tsx
  • app/dispute-resolution/page.client.tsx
  • components/latest-activity/ActivityHeader.tsx
  • app/email-signatures/page.tsx
  • components/leaderboard/Leaderboard.tsx
  • app/museum/6529-fund-szn1/page.tsx
  • components/about/AboutMemes.tsx
  • app/news/introducing-om/page.tsx
  • components/about/AboutTermsOfService.tsx
  • app/capital/page.tsx
  • components/memelab/MemeLab.tsx
  • app/om/page.tsx
  • components/rememes/RememePage.tsx
  • app/museum/6529-fund-szn2/page.tsx
**/*.tsx

📄 CodeRabbit inference engine (.cursorrules)

**/*.tsx: Use FontAwesome for icons
Use TailwindCSS for styling

Use React functional components with hooks

Files:

  • components/delegation/CollectionDelegation.tsx
  • components/about/AboutDataDecentral.tsx
  • components/rememes/RememeAddPage.tsx
  • components/about/AboutNFTDelegation.tsx
  • app/category/blog/page.tsx
  • app/education/page.tsx
  • components/about/AboutMinting.tsx
  • components/community-downloads/CommunityDownloads.tsx
  • app/category/news/page.tsx
  • app/museum/page.tsx
  • app/author/6529er6529-io/page.tsx
  • app/museum/genesis/page.tsx
  • app/author/ladysabrina/page.tsx
  • app/dispute-resolution/page.client.tsx
  • components/latest-activity/ActivityHeader.tsx
  • app/email-signatures/page.tsx
  • components/leaderboard/Leaderboard.tsx
  • app/museum/6529-fund-szn1/page.tsx
  • components/about/AboutMemes.tsx
  • app/news/introducing-om/page.tsx
  • components/about/AboutTermsOfService.tsx
  • app/capital/page.tsx
  • components/memelab/MemeLab.tsx
  • app/om/page.tsx
  • components/rememes/RememePage.tsx
  • app/museum/6529-fund-szn2/page.tsx
{app,pages}/**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursorrules)

Use NextJS features that match the current version

Files:

  • app/category/blog/page.tsx
  • app/education/page.tsx
  • app/category/news/page.tsx
  • app/museum/page.tsx
  • app/author/6529er6529-io/page.tsx
  • app/museum/genesis/page.tsx
  • app/author/ladysabrina/page.tsx
  • app/dispute-resolution/page.client.tsx
  • app/email-signatures/page.tsx
  • app/museum/6529-fund-szn1/page.tsx
  • app/news/introducing-om/page.tsx
  • app/capital/page.tsx
  • app/om/page.tsx
  • app/museum/6529-fund-szn2/page.tsx
app/**/page.tsx

📄 CodeRabbit inference engine (AGENTS.md)

All new pages must be created inside the app/ directory

Files:

  • app/category/blog/page.tsx
  • app/education/page.tsx
  • app/category/news/page.tsx
  • app/museum/page.tsx
  • app/author/6529er6529-io/page.tsx
  • app/museum/genesis/page.tsx
  • app/author/ladysabrina/page.tsx
  • app/email-signatures/page.tsx
  • app/museum/6529-fund-szn1/page.tsx
  • app/news/introducing-om/page.tsx
  • app/capital/page.tsx
  • app/om/page.tsx
  • app/museum/6529-fund-szn2/page.tsx
app/**/{page,layout}.tsx

📄 CodeRabbit inference engine (AGENTS.md)

Routes in app/ should export a generateMetadata function using getAppMetadata

Files:

  • app/category/blog/page.tsx
  • app/education/page.tsx
  • app/category/news/page.tsx
  • app/museum/page.tsx
  • app/author/6529er6529-io/page.tsx
  • app/museum/genesis/page.tsx
  • app/author/ladysabrina/page.tsx
  • app/email-signatures/page.tsx
  • app/museum/6529-fund-szn1/page.tsx
  • app/news/introducing-om/page.tsx
  • app/capital/page.tsx
  • app/om/page.tsx
  • app/museum/6529-fund-szn2/page.tsx
🧠 Learnings (1)
📚 Learning: 2025-09-28T12:32:36.068Z
Learnt from: CR
PR: 6529-Collections/6529seize-frontend#0
File: AGENTS.md:0-0
Timestamp: 2025-09-28T12:32:36.068Z
Learning: Applies to app/**/{page,layout}.tsx : Routes in app/ should export a generateMetadata function using getAppMetadata

Applied to files:

  • app/om/page.tsx
🧬 Code graph analysis (1)
components/delegation/CollectionDelegation.tsx (1)
components/delegation/delegation-constants.ts (1)
  • ANY_COLLECTION_PATH (12-12)
⏰ 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)
🔇 Additional comments (16)
components/about/AboutDataDecentral.tsx (2)

1-1: LGTM!

The import for Link from next/link is correctly added to support client-side routing.


85-87: Verify whether target="_blank" on internal link is intentional.

The Link component points to an internal route (/open-data) but includes target="_blank", which opens the link in a new tab. This bypasses Next.js client-side navigation benefits (prefetching, instant transitions) and provides a suboptimal user experience for internal navigation.

Internal links typically should not open in new tabs unless there's a specific UX requirement. Please verify if this is intentional or if the attributes were carried over from the original anchor tag without reconsideration.

If target="_blank" is not required, apply this diff to use standard internal navigation:

-              <Link href="/open-data" target="_blank" rel="noopener noreferrer">
+              <Link href="/open-data">
                here
              </Link>
components/about/AboutMinting.tsx (1)

2-2: LGTM!

The next/link import is correctly added to support client-side navigation for internal routes.

components/about/AboutMemes.tsx (1)

4-4: LGTM!

The Link import from next/link is correctly added to support internal navigation with client-side routing.

app/dispute-resolution/page.client.tsx (1)

3-3: Anchor → Link migration looks good

Internal navigation now uses Next.js Link; client-side routing enabled. No issues.

Also applies to: 82-85

components/about/AboutNFTDelegation.tsx (1)

1-1: LGTM on internal Link

Client-side navigation; semantics preserved.

Also applies to: 17-19

app/news/introducing-om/page.tsx (1)

2-2: Anchor → Link updates are correct

Internal links now use Next Link; external links remain anchors. Looks good.

Also applies to: 407-407, 436-442

components/latest-activity/ActivityHeader.tsx (1)

3-3: Looks solid

Link usage and readonly props align with guidelines.

Also applies to: 28-31

components/leaderboard/Leaderboard.tsx (1)

3-3: LGTM

Internal navigation via Link; no regressions expected.

Also applies to: 177-180

app/capital/page.tsx (1)

2-2: CI: “next command not found”

Ensure Next is installed and scripts are defined.

app/museum/page.tsx (1)

2-2: Optional: verify no internal anchors remain elsewhere

Scan for remaining internal <a href="/..."> to standardize navigation.

app/education/page.tsx (5)

2-2: LGTM! Link import added correctly.

The Next.js Link component import is properly added and follows Next.js 15.3.2 conventions.


303-308: LGTM! Author link properly migrated to Link component.

The internal author navigation link correctly uses the Link component while preserving the title and rel attributes. The client-side routing will improve navigation performance.


382-386: LGTM! Tweetstorms link correctly migrated.

The internal navigation link to the tweetstorms section properly uses the Link component, maintaining the underline styling on the nested span element.


388-392: LGTM! Podcasts link correctly migrated.

The internal navigation link to the podcasts section properly uses the Link component, with the same styling pattern as the tweetstorms link.


410-412: LGTM! Collaboration form link correctly migrated.

The internal navigation link to the education collaboration form properly uses the Link component while preserving the underline styling.

Comment on lines 250 to 257
<h1 className="entry-title">
<a
<Link
href="/cdn-cgi/l/email-protection"
className="__cf_email__"
data-cfemail="4177747378243301777473786f282e">
[email&nbsp;protected]
</a>
</Link>
</h1>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Restore plain anchor for Cloudflare email link

Line 252 swaps the Cloudflare email-protection <a> for a Next.js Link. Cloudflare’s script mutates the anchor’s href to a mailto: at runtime; with Link, Next intercepts the click and routes to /cdn-cgi/l/email-protection, breaking the email reveal. Please revert this instance to a standard <a> so the obfuscation script can keep working.

🤖 Prompt for AI Agents
In app/author/6529er6529-io/page.tsx around lines 250 to 257, the Cloudflare
email-protection anchor was changed to a Next.js Link which prevents
Cloudflare’s script from converting the href to mailto:—replace the Link with a
plain HTML anchor element (<a>) preserving the original
href="/cdn-cgi/l/email-protection", className="__cf_email__", data-cfemail value
and inner text so the Cloudflare obfuscation script can mutate the href at
runtime; ensure you do not wrap it with Next Link or use client-side routing for
this element.

Comment on lines +351 to 357
<Link
href="/author/6529er6529-io/"
title="Posts by 6529er"
rel="author">
6529er
</a>
</Link>
</span>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Empty <Link> wrappers will not compile

The conversion left many overlay links self-closing (<Link ... />). Next.js requires children; TypeScript flags this (“Property 'children' is missing”) and the build fails. Restore a child element so the anchor renders, e.g.:

-                    <Link
-                      href="/author/6529er6529-io/"
-                      title="Posts by 6529er"
-                      rel="author">
-                      6529er
-                    </Link>
+                    <Link
+                      href="/author/6529er6529-io/"
+                      title="Posts by 6529er"
+                      rel="author">
+                      6529er
+                    </Link>

and, where the anchor was previously empty:

-                              <Link
-                                className="fusion-link-wrapper"
-                                href="/museum/6529-fund-szn1/fidenza/"
-                                aria-label="Fidenza"
-                              />
+                              <Link
+                                className="fusion-link-wrapper"
+                                href="/museum/6529-fund-szn1/fidenza/"
+                                aria-label="Fidenza">
+                                <span aria-hidden="true" />
+                              </Link>

Please apply this pattern to every self-closing <Link> in the page to restore compilation and click behavior.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In app/museum/6529-fund-szn1/page.tsx around lines 351 to 357, several Next.js
<Link> components were left self-closing which TypeScript rejects because
children are required; change each self-closing <Link ... /> to include an
explicit child node (text or an inline element) so the anchor renders and is
clickable, e.g. replace occurrences like <Link href="..." title="..."
rel="..."/> with <Link href="..." title="..."
rel="...">VisibleTextOrElement</Link>, preserving all existing attributes (href,
title, rel, classes) and apply this same pattern to every self-closing Link in
the file to restore compilation and runtime behavior.

Comment on lines +351 to 357
<Link
href="/author/ladysabrina/"
title="Posts by Sabrina Khan"
rel="author">
Sabrina Khan
</a>
</Link>
</span>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Self-closing <Link> components cause build errors

Every overlay link converted to <Link ... /> now lacks children, so Next.js throws a type error and the elements stop working. Provide a child node (even an empty span) inside each link, for example:

-                    <Link
-                      href="/author/ladysabrina/"
-                      title="Posts by Sabrina Khan"
-                      rel="author">
-                      Sabrina Khan
-                    </Link>
+                    <Link
+                      href="/author/ladysabrina/"
+                      title="Posts by Sabrina Khan"
+                      rel="author">
+                      Sabrina Khan
+                    </Link>

and for the empty overlays further down:

-                              <Link
-                                className="fusion-link-wrapper"
-                                href="/museum/6529-fund-szn1/fidenza/"
-                                aria-label="Fidenza"
-                              />
+                              <Link
+                                className="fusion-link-wrapper"
+                                href="/museum/6529-fund-szn1/fidenza/"
+                                aria-label="Fidenza">
+                                <span aria-hidden="true" />
+                              </Link>

Update all other self-closing <Link> instances in this file the same way.

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In app/museum/6529-fund-szn2/page.tsx around lines 351-357, several Next.js
<Link> components were converted to self-closing tags and lack child nodes which
causes build/type errors; change each self-closing <Link ... /> to include a
child element (for example an empty <span /> or the intended text/element) so
the Link has children (e.g. wrap "Sabrina Khan" in the Link shown, and add <span
/> for overlay/empty links), and apply the same fix to all other self-closing
Link instances in this file.

Comment on lines +79 to +81
<Link href="/the-memes" target="_blank" rel="noopener noreferrer">
6529.io/the-memes
</a>
</Link>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Remove target="_blank" from internal navigation links.

Opening internal routes in new tabs defeats the purpose of client-side routing. The PR objective is to "enable faster client-side routing," but target="_blank" forces a full page load in a new window, bypassing Next.js's optimized navigation.

Remove target="_blank" and rel="noopener noreferrer" from all internal links. These attributes are only appropriate for external URLs.

Apply this diff:

           All The Memes:{" "}
-            <Link href="/the-memes" target="_blank" rel="noopener noreferrer">
+            <Link href="/the-memes">
              6529.io/the-memes
            </Link>
          </p>
          <p>
            The Memes Network:{" "}
-            <Link href="/network" target="_blank" rel="noopener noreferrer">
+            <Link href="/network">
              6529.io/network
            </Link>
          </p>
          <p>
            FAQs:{" "}
            <Link
              href={`/about/${AboutSection.FAQ}`}
-              target="_blank"
-              rel="noopener noreferrer"
            >
              6529.io/about/faq
            </Link>
          </p>
          <p>
            The Memes chat on Brain:{" "}
            <Link href="https://6529.io/my-stream?wave=0849642f-1770-4de2-9cbc-70aae59c17ff">
              Memes-Chat
            </Link>
          </p>
          <p>
            Minting Memes:{" "}
            <Link
              href={`/about/${AboutSection.MINTING}`}
-              target="_blank"
-              rel="noopener noreferrer"
            >
              6529.io/about/minting
            </Link>

Also applies to: 85-87, 91-97, 107-113

🤖 Prompt for AI Agents
In components/about/AboutMemes.tsx around lines 79-81 (and also at 85-87, 91-97,
107-113), the Link components to internal routes include target="_blank" and
rel="noopener noreferrer"; remove these attributes from all internal navigation
Links so Next.js client-side routing is preserved (leave target/rel only for
external URLs if any). Ensure each internal <Link href="..."> uses no target or
rel attributes and verify that only external hrefs retain target="_blank" and
rel="noopener noreferrer".

Comment on lines +541 to +543
<Link href="/network/metrics" target="_blank" rel="noopener noreferrer">
6529.io/network/metrics
</a>
</Link>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Remove target="_blank" from internal Link.

The target="_blank" attribute forces the internal route to open in a new tab, which defeats the purpose of using Next.js Link for client-side routing. Internal navigation should typically occur in the same tab unless there's a specific user experience reason to open a new tab.

Apply this diff to enable client-side routing in the same tab:

-              <Link href="/network/metrics" target="_blank" rel="noopener noreferrer">
+              <Link href="/network/metrics">
                 6529.io/network/metrics
               </Link>
📝 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.

Suggested change
<Link href="/network/metrics" target="_blank" rel="noopener noreferrer">
6529.io/network/metrics
</a>
</Link>
<Link href="/network/metrics">
6529.io/network/metrics
</Link>
🤖 Prompt for AI Agents
In components/about/AboutMinting.tsx around lines 541 to 543, remove the
target="_blank" and rel="noopener noreferrer" attributes from the internal
Next.js Link so the route /network/metrics opens in the same tab using
client-side routing; simply keep the Link with its href to enable Next.js
navigation and, if needed, wrap an <a> with no target for styling.

Comment on lines +572 to +574
<Link href="/open-data" target="_blank" rel="noopener noreferrer">
6529.io/open-data
</a>
</Link>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Remove target="_blank" from internal Link.

The target="_blank" attribute forces the internal route to open in a new tab, which defeats the purpose of using Next.js Link for client-side routing. Internal navigation should typically occur in the same tab unless there's a specific user experience reason to open a new tab.

Apply this diff to enable client-side routing in the same tab:

-              <Link href="/open-data" target="_blank" rel="noopener noreferrer">
+              <Link href="/open-data">
                 6529.io/open-data
               </Link>
📝 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.

Suggested change
<Link href="/open-data" target="_blank" rel="noopener noreferrer">
6529.io/open-data
</a>
</Link>
<Link href="/open-data">
6529.io/open-data
</Link>
🤖 Prompt for AI Agents
In components/about/AboutMinting.tsx around lines 572 to 574, the Next.js Link
to "/open-data" includes target="_blank" and rel="noopener noreferrer"; remove
the target and rel attributes so the internal Link uses client-side routing in
the same tab (i.e., keep the href and Link component but delete target and rel).

@prxt6529
Copy link
Copy Markdown
Collaborator Author

prxt6529 commented Oct 2, 2025

#1504

@prxt6529 prxt6529 closed this Oct 2, 2025
@prxt6529 prxt6529 deleted the codex/replace-a-with-next/link branch October 2, 2025 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant