fix: mobile responsiveness and polish for miner details page redesign#98
fix: mobile responsiveness and polish for miner details page redesign#98bitloi wants to merge 17 commits intoentrius:testfrom
Conversation
- Add tabbed navigation (Overview, Activity, Pull Requests, Repositories) - Add tier filtering to MinerPRsTable (Gold/Silver/Bronze) - Add tier filtering to MinerRepositoriesTable - Create shared ExplorerFilterButton component - Add explorerUtils with filter/sort utilities: - filterPrsByTier, filterMinerRepoStats - sortMinerRepoStats, countPrTiers - tierColorFor, formatTierLabel, getTierFilterValue - Integrate MinerEarningsDashboard, MinerInsightsCard, MinerFocusCard - Update MinerDetailsPage layout with miner-centric dashboard Closes entrius#95
…and mobile responsiveness - Add ExplorerFilterButton reusable component - Add tier filtering to MinerPRsTable and MinerRepositoriesTable - Fix mobile responsiveness (horizontal scroll, hotkey truncation, Updated chip) - Add MinerTierFilter and MinerStatusFilter types to explorerUtils - Configure Vite proxy for local API development Closes entrius#95
- Install vitest and add test/test:watch scripts - Add 33 tests covering all explorerUtils functions: - parseNumber, getTierLevel, formatTierLabel - tierColorFor, getTierFilterValue - filterMinerRepoStats, sortMinerRepoStats - countPrTiers, filterPrsByTier
|
@LandynDev @anderdc Would you mind reviewing the PR implementation? |
…culation details - Create MinerGuidanceCard with Key Rules section and 8-item FAQ addressing common miner misunderstandings (payment rules, tier requirements, collateral, scoring) - Enhance MinerScoreCalculationCard with full per-PR formula, organized sections (Base Score, Multipliers, Collateral), and link to docs - Add MinerGuidanceCard to Overview tab as first component - Content sourced from https://docs.gittensor.io/oss-contributions.html
anderdc
left a comment
There was a problem hiding this comment.
I don't particularly like the earning card, and although the overview tab was a nice thought, the issue is now we have documentation to update now in multiple locations, here in gittensor.io and also in docs.gittensor.io, I suggest rethinking your submission. Finally none of the CI is passing
…eCalculationCard per reviewer feedback - Remove docs-duplicating components to avoid maintaining content in multiple locations - Regenerate package-lock.json to fix CI (npm ci) - Keep tier filtering, mobile responsiveness, and explorerUtils
|
@anderdc @LandynDev I updated the miner details page with a full redesign.
Desktop: https://screenrec.com/share/flnFJjseSx |
…le fixes - Refactor MinerScoreCard into compact identity row + 6 stat tiles - Add MinerScoreBreakdown with per-PR multiplier details and pagination - Enhance MinerPRsTable with search, sort, score tooltips, pagination - Enhance MinerRepositoriesTable with search and Avg/PR column - Polish MinerTierPerformance and MinerActivity spacing - Add docs link to MinerInsightsCard per reviewer feedback - Fix Number() wrapping for API string fields - Fix repo text overflow on mobile - Extend explorerUtils tests (33 → 46) Closes entrius#95
68f188a to
9ee4563
Compare
|
merged another PR into test, can you resolve the conflicts before I continue review? |
- Fix duplicate tierFilter by supporting both external prop and internal state - Replace prsInTier references with prs (our version handles tier filtering internally) - Add alpha and useTheme imports from upstream theming approach - Remove shadowed theme imports - Format with prettier
I fixed the conflicts, would you mind reviewing again? |
|
@anderdc Just following up on this PR. I’d appreciate your review when convenient. |
anderdc
left a comment
There was a problem hiding this comment.
- new file names should be capitalized e.g.
ExplorerUtils - explorer utils isn't really even a component, I'd separate it out into an
src/utilsfolder or something similar - same with testing, we don't have any tests yet, you added the first one so I recommend starting a new
src/testsfolder - create new
index.tsfiles in those folders when you create them for easy imports/exports - BIGGEST pet peeve is all the hardcoded colors. it's everywhere. we ask to use the theme or add new colors (sparingly) in
theme.tsto keep continuity across all pages. I will not accept until you can clear this.
UI/UX-wise
- I like what you did to the pull requests table. one ask is to remove the 'filter by clicking repo name'. It's existed before this PR, but I've never been a fan, it's a tad confusing, remove it for me please.
- why are the tabs disjointed from all the content? design choice? I'd prefer if you could connect them instead of having a card looking thing for tabs and a separate card/section for the tab content. or at least have it look like the onboard page where the tabs just have a single line underneath instead of being boxed.
- I like miner scorecard simplification visually
- in overview tab remove 'earnings & score at a glance card', redundant information
- in overview tab I'd like the order of: tier performance, tier insights, then score breakdown
- finally add the tab to the URL, so if someone sends a link for the pull requests tab, then they are already there, similar to the onboard page. Look there for implementation inspiration.
Please fix these things and we'll get this merged. Good job, this is the type of rehaul we were looking for.
… with theme refs, restructure utils/tests, update MinerDetailsPage tabs
|
@anderdc I fixed all the comments, would you mind reviewing again? |
Summary
Complete tear-down and rebuild of the miner details page into a miner-centric performance dashboard. The page now feels personal and intuitive — miners see their identity, all key KPIs, per-PR score breakdowns with real multiplier data, and tier progress at a glance. Tables support search, column sorting, score tooltips, and pagination. Insights link to docs for deeper context. No static documentation content is embedded; everything is data-driven and interactive.
Related Issues
Closes #95
Type of Change
Design Rationale
Information Architecture
The page is structured around miner workflows at different stages:
Hero (MinerScoreCard) — Identity + all 6 core KPIs at a glance. New miners and established miners both see everything they care about immediately: score (with rank), credibility (color-coded), token score, PR count, open risk vs dynamic threshold, and estimated earnings (daily/monthly/lifetime). Each stat tile has a tooltip explaining the metric — self-explanatory, no docs embedding.
Overview tab — Contextual, actionable cards:
Pull Requests tab — Full table with text search, 4 sortable columns (PR#, +/-, Score, Date), score tooltips on hover showing base/tokens/credibility, status+tier filtering, and pagination (20/page). Handles 3 PRs or 300.
Repositories tab — Aggregated view with text search, sortable columns, tier filtering, and a new Avg/PR score column.
Activity tab — Contribution heatmap, credibility donut, performance radar. Minimal changes — already solid.
Why This Beats a Simpler Approach
Screenshots
Desktop: https://screenrec.com/share/flnFJjseSx
Mobile: https://screenrec.com/share/8zJ6groLE0
Data Completeness
All previously available metrics remain accessible on the page:
Intentionally removed: MinerGuidanceCard (static rules/FAQ duplicating docs), MinerScoreCalculationCard (static formula text duplicating docs), MinerEarningsDashboard (per reviewer feedback). All scoring information these provided is now shown through real data in MinerScoreBreakdown and tooltips.
Testing
npm run testpasses (46 tests)npx tsc --noEmitpassesnpx vite buildpassesnpx eslintpasses (0 errors)npx prettier --checkpassesChecklist
TIER_COLORS,STATUS_COLORS,alpha()— no hardcoded colors)npm run formatandnpm run lint:fixhave been runnpm run buildpassesChanges
New Components
Refactored Components
Removed Components
Bug Fixes
Number()in MinerScoreBreakdown to prevent.toFixed()runtime crashesTests
calculateDynamicOpenPrThreshold,normalizeMinerEvaluations,normalizeCommitLogs