quick-view: Pages register components with a service that the app-shell quick view renders
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Exploring
The page registers components, with their inputs, with a quick-view service, and one quick view in the app shell renders each one using Angular's component outlet. The quick view:
- renders next to page content on desktop and at phone width, without covering it
- appears only on pages that register content, and elsewhere renders nothing and takes no space
- shows only what the current page registered, with nothing carried over after you leave a page
- can be opened and collapsed
flowchart LR
scylla["scylla-server"]
subgraph browser["Browser: angular-client"]
direction LR
socket["SocketService"] --> storage[("Storage")]
storage --> page["Page that opts in"]
page -- "register component + inputs" --> svc["Quick-view service"]
svc --> shell["App shell quick view<br/>renders each component"]
otherPages["Every other page"] --> off["Quick view off"]
end
scylla -- "socket" --> socket
Hypothesis
Pages can register any component with a service, and the app-shell quick view renders exactly those components and clears them when the page is destroyed.
Context transfer
SUMMARY
Part of idea #933. One of three sibling spikes, each trying one way for pages to fill a single app-shell quick view: a CDK portal (#935), a service that renders registered components (#934), and a service that renders registered readout data (#937). Earlier spikes #898 (app-wide) and #899 (per page) are closed.
CONTEXT
- develop has no dynamic component rendering (no component outlet, createComponent or ViewContainerRef). Angular is 21.2, whose component outlet accepts inputs.
- Branch 898-app-wide-quick-view (draft PR #900): QuickViewService.register(readouts, destroyRef) returns a withdraw function and drops a page's claims when the page is destroyed. QuickViewComponent renders StatusBarComponent once above router-outlet and nothing when empty. Nothing ties a claim to the current route.
- Multi-topic readouts on that branch (cell spread, located cells, fault roll-ups) are signals built in factories in quick-view.readouts.ts that must run in the page's injection context.
- develop: StatusBarComponent (angular-client/src/components/status-bar/) is a reusable pop-out panel: docked top-right, sticky while scrolling, auto-opens, with a handle to reopen it after collapse; title input defaults to "Quick view".
- develop: only eFuses uses it, projecting LvBatteryChipComponent with voltage and faulted inputs read from Storage (VCU/LV/voltage, VCU/LV/LowVoltageFault).
- develop: app-context.component.html renders p-toast, app-nav-bar and router-outlet; no quick view in the app shell.
- Storage is filled by SocketService from scylla-server and uses plain subjects, so a value shows a dash until its topic publishes again.
- Value-display primitives on develop (angular-client/src/components/): stat-display, info-value-display, gauge-stat, stat-summary, sidebar-chip, battery-level-indicator.
- Unpublished topics: BMS/Pack/Voltage, BMS/Pack/SoC, BMS/Status/Balancing; BMS critical faults point mostly at unpublished topics (#902).
- #898 findings: the open panel covers Charging's Faults tile and BMS's segment overview; at 390px it takes about 55% of the width; collapse state carries across pages. https://github.com/Northeastern-Electric-Racing/Argos/issues/898#issuecomment-6260017218
- Lingua principale
- TypeScript
- Stelle
- 5
- Fork
- 1
- Merge medio
- 1g 17h
- PR unite (30g)
- 46
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Northeastern-Electric-Racing/Argos
-
Remove the landing pageForse già presa @Idontknow0487 l’ha presa 13 giorni fa. Apertaby: ai-assisted frontend good-for: new-member spike
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Northeastern-Electric-Racing/Argos#847 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
ui-library: Try Tailwind with Angular Aria and the CDK for the client UIForse già presa @bracyw l’ha presa 1 giorno fa. Apertaby: ai-assisted frontend spike
Northeastern-Electric-Racing/Argos#955 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
by: ai dev work frontend
Northeastern-Electric-Racing/Argos#940 ·
I maintainer di solito rispondono entro 1 giorno
-
by: ai frontend spike
Northeastern-Electric-Racing/Argos#937 ·
I maintainer di solito rispondono entro 1 giorno
-
by: ai frontend spike
Northeastern-Electric-Racing/Argos#935 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Northeastern-Electric-Racing/Argos
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
"Claude Code request is missing its initial user message" when the prompt starts with an image pathAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
earendil-works/pi-claude-code#31 ·
I maintainer di solito rispondono entro 8 giorni
-
bug pending triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
privatenumber/cleye#48 ·
-
Google text documents are base64-encoded twiceForse già presa @feiiiiii5 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno