checkpoint: Home profiles list, dev host fix, full-width profiles card

This commit is contained in:
Avi 2026-08-26 14:32:48 -05:00
commit 5635f7910a

View file

@ -6,13 +6,14 @@ verified green at the moment this file was written.
## Where things are
- Project: `/home/avi/Projects/Nostr_Keynctr`
- Git repo: `master` @ `fa5ba08` ("Security: upgrade nostr stack 0.40->0.45
clearing 11 RustSec advisories"). Before it: `bf10ae3` (Checkpoint: clarify
NIP-42 status), `e210f17` (Checkpoint: DRY modal save lifecycle / R3),
`7098e75` (refactor: share modal save lifecycle), `e6a1efc` (R4),
`6d5063d` (R2), `1c428a9` (R1).
- Working tree: only the long-standing user changes remain — `concept3.svg`
deleted, `KeynectrAppIconPossibility02.jpeg` untracked.
- Git repo: `master` @ `835b0a0` ("frontend: list all profiles on Home, pin
dev host, widen profiles card"). Before it: `71e580f` (Trim white margins
from sidebar logo artwork), `f29d4f9` (Checkpoint 0.45 migration),
`fa5ba08` (Security: upgrade nostr stack 0.40->0.45), `bf10ae3`, `e210f17`,
`7098e75`, `e6a1efc`, `6d5063d`, `1c428a9`.
- Working tree: still DIRTY with the long-standing user changes — `concept3.svg`
deleted, `KeynectrAppIconPossibility02.jpeg` untracked. These are NOT part
of the frontend commit above and remain uncommitted.
## What was completed
@ -41,6 +42,7 @@ verified green at the moment this file was written.
## Commits added most recently
- `835b0a0` frontend: list all profiles on Home, pin dev host, widen profiles card
- `fa5ba08` Security: upgrade nostr stack 0.40->0.45 clearing 11 RustSec advisories
## Verification commands run (all green)
@ -1349,3 +1351,76 @@ $B rename <npub> <new-name> # rename + publish the new name
- Relay config at time of writing (all enabled): nos.lol, relay.primal.net, l484.com
(user's own), damus.io, snort.social, soloco.nl; relay.nostr.band added but was
unreachable (handshake timeout) — retry enabling later.
## Checkpoint — frontend home screen improvements (2026-08-26)
A stopping point you can return to if this session is closed.
### Where things are
- Project: `/home/avi/Projects/Nostr_Keynctr`
- Git repo: `master`. **Working tree is DIRTY** — the changes below are local
edits and have NOT been committed yet (see "outstanding items").
- Dev-run fix also applied: `frontend/vite.config.ts` now binds the dev server
to `host: '127.0.0.1'` so Electron (`NOSTR_GUI_DEV_URL=http://127.0.0.1:5173`)
and Vite agree on address and the window is no longer a white box.
### What was completed (user-facing)
1. **Profile pictures now show on Home.** The Home screen's active-profile
`Avatar` was missing the `picture` prop, so the image only appeared on the
Profiles screen. `HomeScreen.tsx` now passes `picture={profile.picture}`.
2. **All profiles listed on Home.** Replaced the single "Active profile" card
with a "Your profiles" card listing every profile (avatar + picture, label,
shortened npub, Active badge). Each non-active row has a working **Select**
button (calls `selectProfile`); a **Manage** link goes to the Profiles
screen and an **Add profile** button is at the bottom.
3. **`Badge` now accepts `className`** so the Active badge can be inline next to
the name.
4. **Relays card removed from Home.** The "Relays" card (live connection status,
refresh, "enable a relay" link) is no longer shown on Home — relay status
lives on the Relays screen. Removed the now-unused relay-check logic
(`relayTest`/`runCheck`/`statuses`/`testing`/`enabled`/`Spinner`) and the
corresponding test.
5. **Profile card now full-width on Home.** `.home-grid` was a two-column grid
(profiles + relays); with Relays gone the profiles card only filled the left
half. Changed it to a single `1fr` column and dropped the now-redundant
`@media (max-width: 900px)` override, so "Your profiles" matches the width
of "Most recent publication" below it. No JSX change.
### Files changed
- `frontend/src/screens/HomeScreen.tsx` (profiles list + picture prop + select; relays removed)
- `frontend/src/components/Badge.tsx` (add `className` prop)
- `frontend/src/styles.css` (`.home-profile-list` / `.home-profile-row` / etc.)
- `frontend/src/test/HomeScreen.test.tsx` (scope copy-button test to Alice's row; drop relay-status test)
- `frontend/vite.config.ts` (dev server `host: '127.0.0.1'`)
### Verification commands run (all green)
Frontend (`frontend/`): `npm run typecheck` clean; `npm run lint` clean;
`npm test` 15 files / 98 tests pass; `npm run format:check` clean (after
`npm run format`).
### How to use / reproduce
Dev mode (two terminals, from `~/Projects/Nostr_Keynctr/frontend`):
```
# Terminal 1
npm run dev # prints Local: http://127.0.0.1:5173/
# Terminal 2
NOSTR_GUI_DEV_URL=http://127.0.0.1:5173 npm start
```
Home now shows every profile with its picture, and selecting one there updates
the active profile immediately.
### Outstanding items
- Committed as `835b0a0`. The working tree still has unrelated user changes
(`concept3.svg` deleted, `KeynectrAppIconPossibility02.jpeg` untracked) that
were intentionally left out of the commit.
- The dev-server `host: '127.0.0.1'` change is intentional; if you later need
LAN access to the dev server, set it back to `true` and use the matching URL.