Skip to content

Noindex legacy redirect, farm-list lock status, themed ErrorBoundary (#227, #234, #235) - #247

Merged
ritaifeoluwa merged 3 commits into
SmartDropLabs:mainfrom
boluwacodes:fix/noindex-lockcountdown-errorboundary-theme-227-235
Aug 25, 2026
Merged

Noindex legacy redirect, farm-list lock status, themed ErrorBoundary (#227, #234, #235)#247
ritaifeoluwa merged 3 commits into
SmartDropLabs:mainfrom
boluwacodes:fix/noindex-lockcountdown-errorboundary-theme-227-235

Conversation

@boluwacodes

@boluwacodes boluwacodes commented Aug 25, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Leaderboard page title has typo variant still indexed #227 — `/leaderbord` (typo) already redirects to `/leaderboard` client-side but had no noindex signal. Split the redirect logic into `RedirectClient.tsx` and made `page.tsx` a server component exporting `robots: { index: false, follow: false }` — client components can't export `metadata` directly in the App Router.
  • App doesn't show time remaining on locked positions in farm list #234 — `EarningRow` ("My Earnings") already showed a live unlock countdown, but `FarmPoolRow` (the main "All Pools" browsing list) didn't, even though it already received `lockedAmount`/`lockedAt`/`lockPeriodSeconds` for the connected wallet's position in each pool. Added the same "Unlock status" countdown box to `FarmPoolRow`, so users don't have to click into a pool they already have a position in just to see when it unlocks.
  • ErrorBoundary fallback UI doesn't match app theme #235 — `ErrorBoundary`'s default fallback used `bg="black"`/`color="white"`/`colorScheme="blue"`/`gray.`/`red.` literals — a plain, unstyled screen unrelated to the app's light/dark theme. Switched to the app's existing semantic tokens (`app.bg`, `app.text`, `app.muted`, `app.surface`, `app.border`, `app.accent`, `app.onAccent`) plus the purpose-built `app.errorBg`/`app.errorFg` pair (already defined in `theme.ts` for exactly this) for the error-detail box and `ErrorBoundarySection`'s fallback.

Not included in this batch

Test plan

  • `npx tsc --noEmit` — no new type errors.
  • `npx eslint` on all touched files — clean.
  • `npx vitest run src/app/farm/page.test.tsx` — 2/2 passing (confirms `FarmPoolRow` change didn't break the existing farm-page suite).

Closes #227
Closes #234
Closes #235
Closes #233

…artDropLabs#227)

/leaderbord already redirects to /leaderboard client-side but had no
noindex signal, so search engines could still index the typo URL. Split
the client redirect logic into RedirectClient.tsx and made page.tsx a
server component exporting robots: { index: false, follow: false } —
client components can't export metadata directly in the App Router.
…s#234)

EarningRow ("My Earnings") already showed a live countdown to unlock,
but FarmPoolRow (the main "All Pools" browsing list) didn't, even though
it already received lockedAmount/lockedAt/lockPeriodSeconds for the
connected wallet's position in each pool. Users had to click into a pool
they already had a position in just to see when it unlocks. Add the same
"Unlock status" countdown box FarmPoolRow already has the data for.
…SmartDropLabs#235)

The default fallback used bg="black"/color="white"/colorScheme="blue"/
gray.*/red.* literals — a plain, unstyled screen unrelated to the app's
light/dark theme, breaking brand consistency exactly when something goes
wrong. Switched to the existing semantic tokens (app.bg, app.text,
app.muted, app.surface, app.border, app.accent, app.onAccent) already
used throughout the app, plus the purpose-built app.errorBg/app.errorFg
pair for the error-detail box and ErrorBoundarySection's fallback.
@drips-wave

drips-wave Bot commented Aug 25, 2026

Copy link
Copy Markdown

@boluwacodes Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@netlify

netlify Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploy Preview for spiffy-melomakarona-eb1e8a failed.

Name Link
🔨 Latest commit a2292b4
🔍 Latest deploy log https://app.netlify.com/projects/spiffy-melomakarona-eb1e8a/deploys/6a8df86c8aaaf20008897161

@netlify

netlify Bot commented Aug 25, 2026

Copy link
Copy Markdown

Deploy Preview for smart-drop failed.

Name Link
🔨 Latest commit a2292b4
🔍 Latest deploy log https://app.netlify.com/projects/smart-drop/deploys/6a8df86cb494a60008eb1a13

@ritaifeoluwa
ritaifeoluwa merged commit fe3e3a5 into SmartDropLabs:main Aug 25, 2026
0 of 9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants