Skip to content

Rebrand to Pocket Network & add comprehensive test coverage#239

Merged
jorgecuesta merged 22 commits intomainfrom
Rebrand-for-staking.pocket.network
Mar 23, 2026
Merged

Rebrand to Pocket Network & add comprehensive test coverage#239
jorgecuesta merged 22 commits intomainfrom
Rebrand-for-staking.pocket.network

Conversation

@TheFeloniousMonk
Copy link
Copy Markdown
Contributor

@TheFeloniousMonk TheFeloniousMonk commented Mar 20, 2026

Changes

Branding & Design

  • Rebrand UI from Soothe/Igniter to Pocket Network Foundation theme
  • Redesign landing page with new hero, services, and about sections
  • Add Pocket Network logo assets (black and white SVGs)
  • Implement theme toggle functionality
  • Update component styling to match new brand guidelines

Landing Page

  • Create new landing page layout with app shell integration
  • Add comprehensive landing page components (Hero, About, Services, Footer)
  • Implement responsive design with custom CSS
  • Fix hydration errors in layout configuration
  • Fix landing page scroll so header stays fixed and footer remains visible

Code Quality

  • Add Jest configuration across all packages and apps
  • Implement comprehensive unit test coverage:
    • Crypto utilities tests
    • Share calculations tests
    • Time utility tests
    • Provider services and suppliers tests
    • General utils tests
  • Add launch configuration for debugging

Build & Test Fixes

  • Exclude test files from production tsconfigs (commons, domain, pocket) to fix Docker build failures
  • Fix domain package Jest moduleNameMapper for cross-package imports (@igniter/pocket proto paths, @igniter/db, @igniter/logger, @pocket/* aliases)
  • All 14 turbo tasks pass (builds + tests across all packages)

Bug Fixes

  • Fix stray ] bracket in Notifications component Tailwind class (rounded-full]rounded-full)

Refactoring

  • Consolidate action patterns across stake, unstake, and transaction actions
  • Fix component hydration issues
  • Update DAL queries for nodes and application settings
  • Remove unused Geist font files

Dependencies

  • Update package configurations for testing framework support
  • Add turbo test task configuration

Test Results

Package Tests Suites
@igniter/middleman 43 passed crypto, shareCalculations, time
@igniter/provider 18 passed crypto
@igniter/domain 35 passed services, suppliers, BuildHandler, CompareHandler
@igniter/commons utils
@igniter/pocket utils

🤖 Generated with Claude Code

Copilot AI review requested due to automatic review settings March 20, 2026 17:17
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates the monorepo’s UI/UX to a Pocket Network Foundation theme (including a theme toggle and new logo assets), while also adding Jest-based unit testing across multiple apps/packages and refactoring some middleman DAL/actions for consistency and caching.

Changes:

  • Rebrand UI components to new design tokens + add Pocket brand logo + add theme toggle.
  • Add Jest/ts-jest configuration and unit tests across apps/packages (crypto, env/utils, share calculations, time utilities, provider services).
  • Refactor middleman server actions/DAL (auth helper aliases, ownership assertions, cached application settings fetch, query updates) and reduce polling intervals.

Reviewed changes

Copilot reviewed 134 out of 142 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
turbo.json Adds a test task to Turbo pipeline.
packages/ui/src/theme-toggle.tsx New client theme toggle component.
packages/ui/src/context/Notifications/index.tsx Updates notification UI colors to new tokens.
packages/ui/src/components/WalletPicker/index.tsx Updates wallet picker styling to new theme tokens.
packages/ui/src/components/WalletPicker/components/WalletPickerItem.tsx Updates wallet picker item hover/text styles.
packages/ui/src/components/UserMenu.tsx Updates trigger styling and text colors.
packages/ui/src/components/TransactionHash.tsx Updates link styling + mono font for hashes.
packages/ui/src/components/tooltip.tsx Updates tooltip surface/border/shadow styling.
packages/ui/src/components/textarea.tsx Updates textarea colors, borders, focus styles.
packages/ui/src/components/table.tsx Updates table row/head/footer styling to new tokens.
packages/ui/src/components/switch.tsx Updates switch colors to PNF palette.
packages/ui/src/components/Summary.tsx Updates Summary component borders/text colors.
packages/ui/src/components/sonner.tsx Updates toast theming to new tokens.
packages/ui/src/components/skeleton.tsx Updates skeleton background token.
packages/ui/src/components/sidebar.tsx Rebrands sidebar/inset/menu styles to new tokens.
packages/ui/src/components/sheet.tsx Updates sheet overlay/content/title/description styles.
packages/ui/src/components/separator.tsx Updates separator token usage.
packages/ui/src/components/select.tsx Updates select trigger/content/item/separator styles.
packages/ui/src/components/RewardsByAddresses/ItemsSelector.tsx Updates selected chip color to PNF blue.
packages/ui/src/components/radio.tsx Updates radio group item colors/border tokens.
packages/ui/src/components/QuickDetails/DetailResolver.tsx Updates icon colors to tokenized text colors.
packages/ui/src/components/progress.tsx Updates progress track/fill colors.
packages/ui/src/components/popover.tsx Updates popover surface/border styling.
packages/ui/src/components/PocketBrandLogo/index.tsx New logo component that switches by theme.
packages/ui/src/components/OverrideSidebar.tsx Updates background token.
packages/ui/src/components/NoData.tsx Updates empty-state icon/text colors.
packages/ui/src/components/multi-select.tsx Updates multi-select hover/text token usage.
packages/ui/src/components/label.tsx Updates label text color token.
packages/ui/src/components/input.tsx Updates input colors, selection, focus styles.
packages/ui/src/components/form.tsx Updates form description color token.
packages/ui/src/components/ErrorRetry.tsx Updates error icon color token.
packages/ui/src/components/dropzone.tsx Updates dropzone styling tokens and error colors.
packages/ui/src/components/dropdown-menu.tsx Updates dropdown styling tokens and separators.
packages/ui/src/components/drawer.tsx Updates drawer overlay/content/title/description tokens.
packages/ui/src/components/DialogContentSectionHeader.tsx Updates section header token usage.
packages/ui/src/components/dialog.tsx Updates dialog overlay/content/title/description tokens.
packages/ui/src/components/DataTable/SortDropdown.tsx Updates DataTable dropdown item hover token.
packages/ui/src/components/DataTable/RowsPerPage.tsx Updates rows-per-page dropdown hover token.
packages/ui/src/components/DataTable/Pagination.tsx Updates pagination dropdown hover token.
packages/ui/src/components/DataTable/index.tsx Updates table skeleton/error/header styling tokens.
packages/ui/src/components/DataTable/FilterDropdown.tsx Updates filter dropdown item hover token.
packages/ui/src/components/Currency.tsx Updates currency text token usage.
packages/ui/src/components/command.tsx Updates command palette theming tokens.
packages/ui/src/components/checkbox.tsx Updates checkbox colors to PNF palette.
packages/ui/src/components/button.tsx Updates button variants to new theme tokens/colors.
packages/ui/src/components/BaseQuickInfoTooltip.tsx Updates tooltip popover surface/text tokens.
packages/ui/src/components/BaseLineBarChart/BaseLineBarChart.tsx Swaps hardcoded chart colors for CSS variables.
packages/ui/src/components/badge.tsx Updates badge shapes/variants and adds new variants.
packages/ui/src/components/avatar.tsx Updates avatar fallback background token.
packages/ui/src/components/AppTopBar/index.tsx Uses Pocket brand logo as default + updates topbar tokens.
packages/ui/src/components/AppSidebar.tsx Removes unused commented sidebar block / Soothe logo import.
packages/ui/src/components/Amount.tsx Updates $POKT suffix color token.
packages/ui/src/components/Address.tsx Updates address link styling + mono font.
packages/ui/src/components/ActivityHeader.tsx Updates header typography/colors to new tokens/font.
packages/ui/src/components/AbortConfirmationDialog.tsx Updates dialog surface/border/text tokens.
packages/ui/src/assets/logo/pocket-logo-white.svg Adds Pocket white logo asset.
packages/ui/src/assets/logo/pocket-logo-black.svg Adds Pocket black logo asset.
packages/ui/src/assets/index.ts Exposes new logo exports and updates default PocketLogo.
packages/ui/package.json Exports PocketBrandLogo and theme-toggle entrypoints.
packages/pocket/src/utils.test.ts Adds unit tests for isValidPrivateKey.
packages/pocket/package.json Adds Jest tooling + test script.
packages/pocket/jest.config.ts Adds Jest config for pocket package.
packages/domain/src/provider/utils/services.test.ts Adds unit tests for getRevShare.
packages/commons/src/utils.test.ts Adds unit tests for env parsing/check helpers.
packages/commons/package.json Adds Jest tooling + test script.
packages/commons/jest.config.ts Adds Jest config for commons package.
apps/provider/src/lib/crypto.test.ts Adds unit tests for provider crypto helpers.
apps/provider/package.json Adds Jest tooling + test script; dependency ordering updates.
apps/provider/jest.config.ts Adds Jest config for provider app.
apps/middleman/src/styles/layout.ts Switches Google font from Jost to Rubik.
apps/middleman/src/lib/utils/time.test.ts Adds tests for formatDuration.
apps/middleman/src/lib/utils/shareCalculations.test.ts Adds extensive tests for share/performance calculations.
apps/middleman/src/lib/utils/actions.ts Adds requireAuth, requireAdmin, assertOwnership helpers.
apps/middleman/src/lib/dal/nodes.ts Replaces raw SQL with Drizzle selectDistinct query.
apps/middleman/src/lib/dal/applicationSettings.ts Wraps settings fetch in react.cache() for per-request dedupe.
apps/middleman/src/lib/crypto.test.ts Adds tests for middleman crypto helpers (with env mock).
apps/middleman/src/app/layout.tsx Uses Rubik font; switches theme attribute to data-theme; adds ThemeToggle; layout width tweaks.
apps/middleman/src/app/detail/TransactionDetail.tsx Updates transaction detail styling tokens.
apps/middleman/src/app/detail/NodeDetail.tsx Updates node detail styling tokens and borders.
apps/middleman/src/app/components/Sidebar.tsx Updates active/inactive sidebar item styling tokens.
apps/middleman/src/app/components/EngagementLinks.tsx Updates background token usage.
apps/middleman/src/app/components/CurrentUser.tsx Updates loading state styling tokens.
apps/middleman/src/app/auth/layout.tsx Switches auth layout font to Rubik.
apps/middleman/src/app/auth/error/page.tsx Updates auth error card styling tokens.
apps/middleman/src/app/app/unstake/components/UnstakeSuccessStep/index.tsx Updates unstake success UI tokens/borders.
apps/middleman/src/app/app/unstake/components/ReviewStep/UnstakingProcess.tsx Updates dialog/tokenized divider colors.
apps/middleman/src/app/app/unstake/components/OwnerAddressSelectionStep.tsx Updates tokens, skeleton colors, border focus tokens.
apps/middleman/src/app/app/unstake/components/NodeSelectionStep.tsx Updates tokens, skeleton colors, list borders/hover tokens.
apps/middleman/src/app/app/unstake/components/Loading.tsx Updates loader token color.
apps/middleman/src/app/app/unstake/components/InformationStep.tsx Updates tokens + replaces error coloring with theme tokens.
apps/middleman/src/app/app/stake/components/ReviewStep/StakingProcess.tsx Updates dialog divider tokens.
apps/middleman/src/app/app/stake/components/PlanDetailsSection.tsx Updates borders/text tokens.
apps/middleman/src/app/app/stake/components/PickStakeAmountStep/index.tsx Updates container/border tokens and fee block styling.
apps/middleman/src/app/app/stake/components/PickStakeAmountStep/AmountPickerSlider.tsx Updates slider track/thumb colors to tokens.
apps/middleman/src/app/app/stake/components/PickStakeAmountStep/AmountDisplay.tsx Updates borders/text tokens and currency label tokens.
apps/middleman/src/app/app/stake/components/PickOfferStep/ProviderOfferItem.tsx Updates offer card styles and tooltip tokens.
apps/middleman/src/app/app/stake/components/PickOfferStep/index.tsx Updates container + empty state token colors.
apps/middleman/src/app/app/stake/components/OwnerAddressStep/index.tsx Updates borders and “personal plan” accent tokens.
apps/middleman/src/app/app/stake/components/Loading.tsx Updates loading shell border/background tokens.
apps/middleman/src/app/app/providers/clientPage.tsx Updates providers page text/loading/error tokens + borders.
apps/middleman/src/app/app/overview/page.tsx Updates overview page subtext token.
apps/middleman/src/app/app/import-suppliers/components/SelectProviderStep.tsx Updates tokens for list, statuses, empty/error states.
apps/middleman/src/app/app/import-suppliers/components/ImportSuccessStep.tsx Updates import success UI tokens/borders.
apps/middleman/src/app/app/import-suppliers/components/ImportProcess.tsx Updates import process UI tokens + dialog divider tokens.
apps/middleman/src/app/app/(lists)/transactions/table/index.tsx Reduces polling interval from 5s to 15s.
apps/middleman/src/app/app/(lists)/nodes/table/columns.tsx Updates $POKT label token color.
apps/middleman/src/app/app/(lists)/nodes/page.tsx Updates nodes page subtext token.
apps/middleman/src/app/admin/setup/stepper.tsx Updates stepper accent tokens.
apps/middleman/src/app/admin/(internal)/transactions/table/index.tsx Reduces polling interval from 5s to 15s.
apps/middleman/src/app/admin/(internal)/settings/Form.tsx Updates admin settings form surfaces/inputs tokens.
apps/middleman/src/app/(landing)/page.tsx Replaces prior landing composition with LandingPage and static metadata.
apps/middleman/src/app/(landing)/layout.tsx Adds client landing layout that collapses sidebar via useSidebar().
apps/middleman/src/app/(landing)/components/Services.tsx Updates landing services section tokens.
apps/middleman/src/app/(landing)/components/Hero.tsx Redesigns hero background/typography using tokenized gradients.
apps/middleman/src/app/(landing)/components/Header.tsx Uses PocketBrandLogo + updates header tokens.
apps/middleman/src/app/(landing)/components/Footer.tsx Updates footer branding text and logo + tokens.
apps/middleman/src/app/(landing)/components/Divider.tsx Updates divider border token.
apps/middleman/src/app/(landing)/components/About.tsx Updates about content and replaces Soothe branding with Pocket branding.
apps/middleman/src/actions/Unstake.ts Uses requireAuth alias and simplifies transaction insert creation.
apps/middleman/src/actions/Transactions.ts Uses requireAuth/requireAdmin helpers.
apps/middleman/src/actions/Stake.ts Uses requireAuth alias and simplifies insert creation.
apps/middleman/src/actions/Providers.ts Uses requireAuth alias and minor refactors.
apps/middleman/src/actions/Nodes.ts Uses requireAuth + centralized ownership assertion.
apps/middleman/src/actions/ImportSuppliers.ts Uses requireAuth + centralized ownership assertion helper.
apps/middleman/src/actions/ApplicationSettings.ts Simplifies settings fetch path (relies on DAL always returning settings).
apps/middleman/public/pocket-logo-white.svg Adds Pocket logo asset to app public directory.
apps/middleman/package.json Adds Jest tooling + test script.
apps/middleman/jest.config.ts Adds Jest config for middleman app.
.gitignore Ignores branding build artifacts and local dev helpers.
.claude/launch.json Adds a launch configuration for middleman debugging.
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/ui/src/context/Notifications/index.tsx
Comment thread packages/ui/src/theme-toggle.tsx
Comment thread packages/ui/src/components/PocketBrandLogo/index.tsx Outdated
Copy link
Copy Markdown

Copilot AI commented Mar 20, 2026

@TheFeloniousMonk I've opened a new pull request, #240, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 139 out of 147 changed files in this pull request and generated 9 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported
Comments suppressed due to low confidence (2)

apps/middleman/src/app/(landing)/components/Header.tsx:9

  • There are several unused imports here (Link, PlaceholderLogo, EngagementLinks, and the social SVG icons). With typical TS/ESLint settings this will fail lint/typecheck. Remove the unused imports (or re-enable the commented-out usage) to keep the landing bundle clean.
import Link from 'next/link';
import {ComponentType} from "react";
import {PlaceholderLogo} from "@igniter/ui/assets";
import { PocketBrandLogo } from "@igniter/ui/components/PocketBrandLogo";
import EngagementLinks from "@/app/components/EngagementLinks";
import GithubIcon from "@/app/assets/icons/dark/socials/github.svg";
import DiscordIcon from "@/app/assets/icons/dark/socials/discord.svg";
import XIcon from "@/app/assets/icons/dark/socials/x.svg";
import CurrentUser from "@/app/components/CurrentUser";

apps/middleman/src/app/(landing)/components/Footer.tsx:8

  • Unused imports (Link, PlaceholderLogo, EngagementLinks, and the social SVG icons) remain after switching to PocketBrandLogo and commenting out the links section. These will typically break lint/typecheck; remove the unused imports or restore the usage.
import {ComponentType} from "react";
import Link from "next/link";
import {PlaceholderLogo} from "@igniter/ui/assets";
import { PocketBrandLogo } from "@igniter/ui/components/PocketBrandLogo";
import EngagementLinks from "@/app/components/EngagementLinks";
import GithubIcon from "@/app/assets/icons/dark/socials/github.svg";
import DiscordIcon from "@/app/assets/icons/dark/socials/discord.svg";
import XIcon from "@/app/assets/icons/dark/socials/x.svg";

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread apps/middleman/src/app/auth/layout.tsx
Comment thread packages/ui/src/components/AppTopBar/index.tsx
Comment thread packages/pocket/package.json
Comment thread packages/pocket/package.json
Comment thread packages/pocket/jest.config.ts
Comment thread packages/commons/package.json
Comment thread packages/commons/jest.config.ts
Comment thread apps/provider/package.json
Comment thread apps/middleman/package.json
TheFeloniousMonk added a commit that referenced this pull request Mar 20, 2026
CRITICAL fixes:
- C1: Replace undefined --button-2-border with border-border-primary
  in Notifications action buttons
- C2: Replace undefined --divider with border-border-primary in
  BaseQuickInfoTooltip separator, remove commented-out code
- C3: Replace hardcoded #10161e with bg-bg-input in AmountDisplay
  (breaks light mode)
- C4: Darken light-mode tokens for WCAG AA compliance:
  --text-tertiary #8b98a9→#6b7a8e, --warning #c89b2f→#9a7520,
  --success #0dab76→#087a54, --error #d93d42→#c43539
- C5: Add mounted guard to FooterLogo to prevent hydration mismatch
  (resolvedTheme undefined during SSR)
- C6: Replace external CDN URLs with local SVG components in FooterLogo

WARNING fixes:
- W2: Add @media (prefers-reduced-motion: reduce) to disable orb
  animations, pulse, fade-in-up, and skip particle canvas RAF loop
- W5: Delete 7 dead landing page components (Header, Hero, About,
  Footer, Services, EmptySpace, Divider)
- W6: Fix PocketBrandLogo showing black logo on dark theme before
  mount — return empty placeholder until mounted
- W8: Add dark theme values to :root as SSR/JS-disabled fallback
  so tokens are never undefined on first paint
- W9: Replace self-referencing var(--radius-*) in @theme inline
  with direct pixel values
- W12: Replace text-[var(--color-destructive)] with text-error in
  StakingProcess, UnstakingProcess, ImportProcess

INFO fixes:
- I1: Replace undefined var(--font-family) with var(--font-sans)
  in landing.css
- I4: Remove commented-out --slate-dividers lines in ReviewStep,
  StakeSuccessStep, PickStakeAmountStep
- I5+I6: Remove unused --navbar-h and --sidebar-w from :root,
  remove duplicate --font-family/--font-mono definitions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings March 20, 2026 21:38
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 140 out of 148 changed files in this pull request and generated 3 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread packages/ui/src/components/PocketBrandLogo/index.tsx
Comment thread packages/ui/src/components/PocketBrandLogo/index.tsx
Comment thread apps/middleman/src/app/(landing)/layout.tsx
Copilot AI review requested due to automatic review settings March 20, 2026 21:46
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review is ineligible. To be eligible to request a review, you need a paid Copilot license, or your organization must enable Copilot code review.

Copilot AI review requested due to automatic review settings March 20, 2026 22:33
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 178 out of 186 changed files in this pull request and generated 11 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread packages/ui/src/components/PocketBrandLogo/index.tsx
Comment thread apps/provider/src/components/CurrentUser.tsx
Comment thread apps/provider/src/components/CurrentUser.tsx
Comment thread apps/middleman/src/app/components/CurrentUser.tsx
Comment thread apps/middleman/src/app/components/CurrentUser.tsx
Comment thread apps/middleman/src/app/admin/(internal)/providers/table/columns.tsx
Comment thread apps/middleman/src/app/detail/TransactionDetail.tsx
Comment thread apps/middleman/src/app/detail/NodeDetail.tsx
Copilot AI review requested due to automatic review settings March 20, 2026 23:09
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 178 out of 186 changed files in this pull request and generated 4 comments.

Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

Comment thread apps/provider/package.json
Comment thread apps/middleman/package.json
Comment thread packages/ui/src/components/PocketBrandLogo/index.tsx
Comment thread apps/middleman/src/app/components/CurrentUser.tsx
TheFeloniousMonk and others added 9 commits March 23, 2026 17:33
…oundation

- Replace entire CSS theme system with PNF brand tokens (Tailwind v4 @theme blocks)
- Add dark/light theme via data-theme attribute with next-themes, defaulting to dark
- Migrate Jost font to Rubik (next/font/google), remove unused Geist font files
- Download and integrate Pocket Network logo SVGs with theme-aware switching
- Create PocketBrandLogo component and ThemeToggle component
- Replace ~60+ files of hardcoded old-brand colors with semantic CSS variable tokens
- Restyle all shared UI components: buttons, badges, tables, forms, dialogs,
  drawers, sidebar, navbar, charts, alerts, address lists, provider cards
- Update all middleman page-level styles to use PNF semantic tokens
- Restyle landing page hero with PNF gradient text and branded background
- Update copyright and partner references from Soothe to Pocket Network
- Add backwards-compatible shadcn token mappings for migration safety

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add ThemeToggle to root layout AppTopBar (visible on all pages)
- Remove custom landing Header component in favor of shared navbar
- Remove absolute positioning hack from landing page
- Landing page now uses OverrideSidebar to hide sidebar while
  sharing the same navbar as authenticated pages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the inherited Soothe-branded landing page with a new design
matching pocket.network's brand system. Adds hero with $POKT blue
gradient, feature cards, how-it-works steps, open source section,
built-by cards, and full-width footer. Includes animated background
layers (particle canvas, floating orbs, dot grid) and theme-aware
footer logo. Connect Wallet button triggers the existing WalletPicker.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nsolidate action patterns

- Fix PocketBrandLogo hydration mismatch by deferring theme-dependent render until mounted
- Fix landing page missing header by removing OverrideSidebar hack and adding a layout that closes sidebar
- Remove nested scrollable div and hardcoded sidebar width from root layout
- Add requireAuth, requireAdmin, and assertOwnership utilities to reduce auth boilerplate
- Extract getOwnedImportAttempt helper in ImportSuppliers to deduplicate ownership checks
- Wrap DAL getApplicationSettings with React cache() for per-request dedup
- Simplify action-layer getApplicationSettings by removing redundant fallback
- Replace raw SQL with Drizzle ORM selectDistinct in nodes.ts
- Reduce transaction table polling interval from 5s to 15s
- Fix pre-existing type narrowing in ListProvidersWithPublicPlans and CalculateStakeDistribution

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Jest infrastructure and 106 new test cases covering business logic
for middleman (admin+client), provider (admin), and shared packages.
Covers share calculations, crypto utilities, supplier services, revenue
shares, time formatting, env validation, and private key validation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ter is visible

The root layout's nested scroll container (overflow-y-scroll with fixed
height) caused the header and footer to scroll away on the landing page.
Use CSS :has([data-landing]) to override the scroll container and pin
the header when the landing route is active.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…le resolution

- Add src/**/*.test.ts to exclude in commons, domain, pocket tsconfigs
  so production builds don't fail on missing Jest type definitions
- Fix domain jest.config.ts moduleNameMapper to correctly resolve
  @igniter/pocket (including proto/generated paths), @igniter/db,
  @igniter/logger, and @pocket/* internal aliases
- All 14 turbo tasks now pass (builds + tests across all packages)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
rounded-full] → rounded-full

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
TheFeloniousMonk and others added 13 commits March 23, 2026 17:34
CRITICAL fixes:
- C1: Replace undefined --button-2-border with border-border-primary
  in Notifications action buttons
- C2: Replace undefined --divider with border-border-primary in
  BaseQuickInfoTooltip separator, remove commented-out code
- C3: Replace hardcoded #10161e with bg-bg-input in AmountDisplay
  (breaks light mode)
- C4: Darken light-mode tokens for WCAG AA compliance:
  --text-tertiary #8b98a9→#6b7a8e, --warning #c89b2f→#9a7520,
  --success #0dab76→#087a54, --error #d93d42→#c43539
- C5: Add mounted guard to FooterLogo to prevent hydration mismatch
  (resolvedTheme undefined during SSR)
- C6: Replace external CDN URLs with local SVG components in FooterLogo

WARNING fixes:
- W2: Add @media (prefers-reduced-motion: reduce) to disable orb
  animations, pulse, fade-in-up, and skip particle canvas RAF loop
- W5: Delete 7 dead landing page components (Header, Hero, About,
  Footer, Services, EmptySpace, Divider)
- W6: Fix PocketBrandLogo showing black logo on dark theme before
  mount — return empty placeholder until mounted
- W8: Add dark theme values to :root as SSR/JS-disabled fallback
  so tokens are never undefined on first paint
- W9: Replace self-referencing var(--radius-*) in @theme inline
  with direct pixel values
- W12: Replace text-[var(--color-destructive)] with text-error in
  StakingProcess, UnstakingProcess, ImportProcess

INFO fixes:
- I1: Replace undefined var(--font-family) with var(--font-sans)
  in landing.css
- I4: Remove commented-out --slate-dividers lines in ReviewStep,
  StakeSuccessStep, PickStakeAmountStep
- I5+I6: Remove unused --navbar-h and --sidebar-w from :root,
  remove duplicate --font-family/--font-mono definitions

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The header was scrolling away on views with long content because the
layout allowed the SidebarProvider wrapper to grow beyond the viewport.

- Add h-dvh overflow-hidden to SidebarProvider wrapper to constrain
  the entire layout to the viewport height
- Add min-h-0 to the flex-1 sidebar/content container (flex items
  default to min-height:auto which prevents shrinking)
- Override SidebarInset's min-h-svh with !min-h-0 to prevent it
  from forcing the container taller than the viewport
- Replace hardcoded h-[calc(100vh-72px)] with flex-1 overflow-y-auto
  so the content area fills remaining space dynamically
- Add shrink-0 to AppTopBar header to prevent it from being
  compressed by flex siblings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The providers/, about/, and documentation/ landing sub-routes were
placeholder pages that only rendered the now-deleted EmptySpace
component, breaking the build.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add --chart-grid CSS variable (white in dark mode, black in light mode)
  and use it for chart axis grid lines instead of --border-subtle
- Remove fixed max-h/min-h on admin providers table so it grows with content
- Remove nested border on wallet address dropdown trigger

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Apply the same table height fix to all provider app table containers
(groups, delegators, miners, regions, services, and their setup
counterparts). Tables now grow with content instead of being capped
at 500px with internal scroll.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The provider app's ThemeProvider was using attribute="class" while
all CSS theme variables are defined under [data-theme="dark"] and
[data-theme="light"] selectors. This caused theme variables to not
resolve, resulting in wrong background colors and transparent
slideout panels. Match the middleman app's configuration.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…okens

The provider app was using undefined legacy CSS variables (--color-white-3,
--color-slate-2, --color-black-1, --divider, --secondary, --background,
--button-2-border, etc.) that were remnants of an older Radix-based theme
system. These variables are not defined in the current globals.css, causing
elements to render with no colors (transparent backgrounds, invisible
borders, missing text colors).

Replaced all occurrences with the proper design token Tailwind classes:
- --color-white-1/2 → text-text-primary/secondary
- --color-white-3/4 → text-text-secondary/tertiary
- --color-slate-2 → bg-bg-elevated
- --color-slate-3 → bg-bg-input
- --color-slate-9 → text-text-tertiary
- --color-black-1/2 → bg-bg-root/bg-bg-surface
- --divider → border-border-primary
- --secondary → bg-bg-elevated
- --background → bg-bg-root
- --button-2-border → border-border-primary
- --color-blue-1 → text-pnf-blue
- bg-slate-2 → bg-bg-elevated

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. Provider login redirect: Changed signIn() to use redirect:false
   and then window.location.href for a hard navigation. The soft
   client-side redirect kept the landing-page layout mounted, so the
   admin sidebar never appeared until a manual refresh.

2. Scrollbar on all views: Changed overflow-hidden to overflow-x-hidden
   on the <html> element in all root layouts (middleman main/auth,
   provider admin/landing). overflow-hidden blocked vertical scrolling
   entirely, preventing setup wizards and long pages from scrolling.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1. Setup layout: Added Sidebar, SidebarProvider, SidebarInset, and
   NotificationsProvider to the setup layout so it matches the
   internal layout. Every admin view now has the sidebar.

2. Cross-layout navigation: Replaced Next.js <Link> with plain <a>
   tags for "Go to portal", "Go to App", and "Go to Admin" menu items
   in both middleman and provider CurrentUser components. Next.js Link
   does client-side soft navigation which doesn't fully swap root
   layouts (landing vs admin), causing the sidebar to disappear.
   Plain <a> tags force a full page load, ensuring the correct layout
   mounts.

3. Middleman signIn: Applied the same redirect:false +
   window.location.href fix from the provider to the middleman's
   signIn flow for consistent hard navigation after auth.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Same fix as middleman: constrain the layout to viewport height so
the header stays pinned and only the content area scrolls.

- Add h-dvh overflow-hidden to the outermost flex-col wrapper
- Add min-h-0 to the flex-1 container (prevents flex overflow)
- Override SidebarInset min-h-svh with !min-h-0
- Add flex-1 overflow-y-auto to the content div
- Applied to both (internal) and setup layouts

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the Enable/Disable and Show/Hide outline buttons in the admin
providers table with Switch toggle components. Each toggle shows the
active-state label ("Enable", "Show") beside it. The Enable toggle
is disabled when the provider is hidden.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove PriceWidget from the header and its unused import
- Add horizontal padding (px-3) around the wallet address selector
  so the avatar icon and dropdown caret have breathing room
- Avatar is vertically centered via flex items-center on the parent

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There were two Unstake buttons on the Suppliers page, both linking
to the same /app/unstake route. Removed the duplicate and styled
the remaining one with red text and red border (border-error,
text-error) to match the destructive action styleguide.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@jorgecuesta jorgecuesta force-pushed the Rebrand-for-staking.pocket.network branch from 9059f91 to ac57ed1 Compare March 23, 2026 21:50
Copy link
Copy Markdown
Contributor

@jorgecuesta jorgecuesta left a comment

Choose a reason for hiding this comment

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

LGTM, we need to keep working on provider side which has some minor issues with the left navigation bar during bootstrap. On both the icons are not the expected.

@jorgecuesta jorgecuesta merged commit 76cfd5a into main Mar 23, 2026
@jorgecuesta jorgecuesta deleted the Rebrand-for-staking.pocket.network branch March 23, 2026 21:55
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.

5 participants