Skip to content

feat(explore): refine explore UX — hover states, export, smart layer defaults#31

Closed
nicholasalanbrown wants to merge 5 commits intomainfrom
explore/explore-refinements
Closed

feat(explore): refine explore UX — hover states, export, smart layer defaults#31
nicholasalanbrown wants to merge 5 commits intomainfrom
explore/explore-refinements

Conversation

@nicholasalanbrown
Copy link
Contributor

Summary

Six explore experience refinements:

1. TopBar hover state

Nav links now have hover:bg-background-subtle — same pattern as active state, just without the text color change.

2. Export control (all 5 list views)

Added Export CSV action button to every list panel via useTableExport + DataControls.actions. Surfaces inline on desktop, collapses to ActionMenu on mobile. Works in both hybrid and list layouts.

Exports: Utilities, Grid Operators, Power Plants, Programs, Transmission Lines — each with sensible column sets and a filename like opengrid-utilities.csv.

3-6. Tab-aware layer logic

The core idea: on an entity tab, don't show the layer toggle for that entity — just render it. For all other entity layers, show them as toggleable (off by default).

Tab Territories Transmission Power Plants
Utilities always on, no toggle toggle (default OFF) toggle (default OFF)
Grid Operators grid boundaries always on, no toggle toggle (default OFF) toggle (default OFF)
Power Plants toggleable overlay toggle (default OFF) always on, no toggle
Transmission toggleable overlay always on, no toggle toggle (default OFF)
Programs toggleable overlay toggle (default OFF) toggle (default OFF)

Layer visibility resets to tab defaults whenever the active tab changes.

Files changed

  • components/TopBar.tsx — hover states
  • components/explorer/ExplorerMap.tsx — tab-aware layer visibility + defaults
  • components/explorer/panels/UtilityListPanel.tsx — export
  • components/explorer/panels/GridOperatorListPanel.tsx — export
  • components/explorer/panels/ProgramListPanel.tsx — export
  • components/explorer/panels/PowerPlantListPanel.tsx — export
  • components/explorer/panels/TransmissionListPanel.tsx — export

Testing

  • tsc --noEmit passes (only pre-existing pmtiles module error, unrelated)

…defaults

1. TopBar: add hover bg (hover:bg-background-subtle) to nav links on both desktop and mobile
2. Export: add 'Export CSV' action to all 5 list panels (Utilities, Grid Operators,
   Power Plants, Programs, Transmission) via useTableExport + DataControls.actions
3. Layer defaults reset per tab. Tab-aware rules:
   - utilities: territory layer always on (no toggle); transmission + power plants OFF
   - grid-operators: grid boundaries always on (no toggle); transmission + power plants OFF
   - power-plants: power plants always rendered (no toggle); transmission OFF; territories toggleable
   - transmission-lines: transmission always rendered (no toggle); power plants OFF; territories toggleable
   - programs: territories toggleable; transmission + power plants OFF
4. Utility territories shown as toggleable overlay ('Utility Territories' in layers
   control) on non-utilities tabs; hidden from layers control on utilities tab
5. Layer visibility resets to tab defaults whenever the active tab changes
@vercel
Copy link

vercel bot commented Feb 27, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
opengrid Ready Ready Preview, Comment Feb 27, 2026 8:42pm

Request Review

…es off by default

1. ExplorerTabBar: replace custom button tabs with edges Tabs/TabList/Tab
   — proper hover/active/focus states from the design system
2. ExplorerMap: richer tooltips for all layer types
   — utilities: segment, jurisdiction, customer count, click hint
   — grid operators: full type label (ISO/Balancing Authority)
   — transmission lines: voltage class label, kV, length, status
   — power plants: fuel category, capacity, state, proposed flag, click hint
3. utility-territories layer now defaults OFF for non-utilities tabs
   (was incorrectly defaulting to true)
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.

1 participant