fix(frontend): Encounter→friend open hotkey, work experience add, Enter-to-open in list search#164
Merged
Merged
Conversation
…tory ProfessionalHistorySection was only mounted when the friend already had professional history, interests, or metInfo. For a friend without any of these the component never mounted, so the shortcut:add-professional listener was never registered and the add affordance was unreachable. Mount the section unconditionally like all other detail sections so the add-work-experience shortcut and menu action always work. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Pressing o on the encounter detail page did nothing because no open-mode config existed for the /encounters/:id route. Add an encounter-friend open mode mirroring the collective member pattern: a store of the encounter's linked friend IDs, keyboard hint badges on each friend chip, a hint panel, and a help-dialog entry. Pressing o then a hint number now navigates to the corresponding friend. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
On the friends, encounters, and collectives list pages, pressing Enter while focused in the search/filter box now navigates to the first item in the currently filtered list. The handler lives on each input directly because the global shortcut layer suppresses keys while an input is focused. Also tag the encounters search input with data-search-input so the `/` shortcut focuses it like the other lists. Collectives opens the first client-side sorted item to match what is rendered. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This PR improves frontend keyboard navigation and accessibility of key actions by extending the existing shortcut/open-mode system to encounters, ensuring “add work experience” shortcuts always register on friend detail pages, and adding Enter-to-open behavior for list search inputs.
Changes:
- Added an “open friend from encounter detail” open-mode: new UI stores, shortcut handler branch, open-mode config entry, hint panel wiring, help dialog entries, and hint badges on encounter-friend chips.
- Ensured
ProfessionalHistorySectionis always mounted on friend detail pages so theshortcut:add-professionallistener is always registered (even with empty history). - Added “press Enter to open first result” behavior on friends/encounters/collectives list search inputs, and tagged the encounters search input with
data-search-inputfor/-to-focus consistency.
Reviewed changes
Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| apps/frontend/src/lib/stores/ui.ts | Adds encounter-friend open-mode state stores (active flag, prefix, visible IDs). |
| apps/frontend/src/lib/shortcuts/keyboard-shortcuts.svelte | Clears new open-mode state and shows the hint panel for encounter-detail friend opening. |
| apps/frontend/src/lib/shortcuts/handlers/index.ts | Starts encounter-detail open-mode sequence (o) by activating the new open-mode store. |
| apps/frontend/src/lib/shortcuts/config.ts | Registers a new open-mode config for /encounters/:id to open linked friends. |
| apps/frontend/src/lib/shortcuts/components/help-dialog.svelte | Documents the new encounter-detail “open friend” keyboard flow. |
| apps/frontend/src/lib/components/friends/friend-list.svelte | Opens the first visible friend result on Enter from the search input. |
| apps/frontend/src/lib/components/friends/friend-detail.svelte | Mounts ProfessionalHistorySection unconditionally so add shortcut is always available. |
| apps/frontend/src/lib/components/encounters/encounter-list.svelte | Opens the first visible encounter on Enter; adds data-search-input for / focus. |
| apps/frontend/src/lib/components/encounters/encounter-detail.svelte | Publishes visible linked-friend IDs and renders hint badges on friend chips for open-mode. |
| apps/frontend/src/lib/components/collectives/collective-list.svelte | Opens the first visible collective on Enter from the search input. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
🎉 This PR is included in version 2.76.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Three keyboard/UX fixes on the frontend:
Open friends from encounter detail (
o) — pressingoon an encounter detail page did nothing because no open-mode config existed for/encounters/:id. Added an encounter-friend open mode (stores, config entry, handler branch, hint badges on each friend chip, hint panel, help-dialog entry) mirroring the collective-member pattern.othen a hint number now opens the corresponding friend.Add work experience to friends —
ProfessionalHistorySectionwas only mounted when the friend already had professional history / interests / metInfo, so for friends without any of those theshortcut:add-professionallistener never registered and the add affordance was unreachable. Now mounted unconditionally like every other detail section.Enter-to-open-first in list search — on the friends, encounters, and collectives list pages, pressing Enter while focused in the search box navigates to the first item in the filtered list. Handler lives on each input directly (the global shortcut layer suppresses keys while an input is focused). Also tagged the encounters search input with
data-search-inputso/focuses it like the other lists.Commits
fix(frontend): Allow adding work experience to friends with empty historyfeat(frontend): Open linked friends from encounter detail with ofeat(frontend): Open first result on Enter in list search boxesTesting
aube run check(in container): 0 errors, 31 pre-existing warnings (none in touched files).🤖 Generated with Claude Code