rstack-online/backlog/tasks/task-5 - Standardize-AppSwi...

57 lines
2.6 KiB
Markdown

---
id: TASK-5
title: 'Standardize AppSwitcher, EcosystemFooter, and Header across all rApps'
status: Done
assignee: []
created_date: '2026-02-25 07:15'
updated_date: '2026-02-25 07:15'
labels:
- ecosystem
- ui
- consistency
dependencies: []
priority: high
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
Ensure every r*App has the same header (AppSwitcher / SpaceSwitcher / actions / UserMenu), the same AppSwitcher dropdown with all 26 apps in 8 categories, and the same EcosystemFooter with full app links.
<!-- SECTION:DESCRIPTION:END -->
## Acceptance Criteria
<!-- AC:BEGIN -->
- [x] #1 All 26 r*Apps listed in AppSwitcher with 8 categories
- [x] #2 EcosystemFooter component created and deployed to all 16 Next.js repos + 4 static HTML sites
- [x] #3 Header component (Header.tsx + SpaceSwitcher.tsx + UserMenu.tsx) standardized across 15 Next.js repos
- [x] #4 EncryptID allowedOrigins updated with all 26 domains
- [x] #5 UserMenu nests Sign Out under username dropdown
- [x] #6 All repos committed and pushed to Gitea
<!-- AC:END -->
## Final Summary
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
## What was done
### AppSwitcher (26 apps, 8 categories)
Updated the canonical `AppSwitcher.tsx` with all r*Apps organized into: Creating, Planning, Communicating, Deciding, Funding & Commerce, Social & Media, Work & Productivity, Identity & Infrastructure. Rolled out to 15 Next.js repos + rswag + 4 static HTML sites.
### EcosystemFooter
Created `EcosystemFooter.tsx` component with all 26 app links and `current` prop for highlighting. Replaced inline footers in all 15 Next.js repos. Updated static HTML footers in rstack-online, rwallet-online, rphotos-online, ridentity-online.
### Header standardization
Created 3 portable, SDK-free shared components:
- **Header.tsx** — nav bar with `current` prop and `actions` slot
- **SpaceSwitcher.tsx** — community/space dropdown (uses `/api/spaces` fetch)
- **UserMenu.tsx** — Sign In link or avatar dropdown with nested Sign Out
Replaced all inline `<nav>`, `<Navbar>`, `<header>` blocks in 15 Next.js repos with `<Header current="appId" actions={...} />`.
### EncryptID
Added 9 missing domains to `allowedOrigins` in `rspace-online/src/encryptid/server.ts`: rcal, rinbox, rmail, rsocials, rwork, rforum, rchoices, rswag, rdata.
### Repos updated (21 total)
rspace-online, rnotes-online, rauctions-online, rcal-online, rcart-online, rchats-online, rinbox-online, rmail-online, rmaps-online, rsocials-online, rtrips-online, rvote-online, rwork-online, rPubs-online, rfunds-online, rtube-online, rswag, rphotos-online, ridentity-online, rwallet-online, rstack-online
<!-- SECTION:FINAL_SUMMARY:END -->