Convert ngOnInit input reads to computed() for full signal reactivity
I maintainer di solito rispondono entro 5 giorni
@bracyw ci sta già lavorando.
Dal 29/3/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
Description
Several components read @Input() values inside ngOnInit to derive local state. This breaks signal reactivity -- if the parent updates the input after init, the derived values go stale.
Migrate these components to use the input() signal function and computed() for derived state so values stay reactive. Remove ngOnInit from components where it only existed to compute derived input state.
Example
circular-percentage.component.ts reads this.dimension in ngOnInit to compute sizing values:
// Before
@Input() dimension!: number;
innerCircleDimension: number = 0;
ngOnInit() {
this.innerCircleDimension = this.dimension * 0.87;
}
// After
dimension = input.required<number>();
innerCircleDimension = computed(() => this.dimension() * 0.87);
Affected Components
- SwitchComponent (
src/components/switch/switch.component.ts) --chargingStringderived fromisOn,onString,offString - HStackComponent (
src/components/hstack/hstack.component.ts) --alignmentderived fromjustifyContent,alignItems - CircularPercentageComponent (
src/components/circular-percentage/circular-percentage.component.ts) -- 4 sizing properties derived fromdimension - BatteryPercentageComponent (
src/components/battery-percentage/battery-percentage.component.ts) -- 7 rendering properties derived frompercentage,height,width - HalfGaugeComponent (
src/components/half-gauge/half-gauge.component.ts) --widthpx,heightpx,label,percentage,fontsizederived fromcurrent,min,max,unit,size - GraphComponent (
src/components/graph/graph.component.ts) --timeRangeMsderived fromtimeRangeSec - DoubleLineGraphComponent (
src/components/double-line-graph/double-line-graph.component.ts) --timeRangeMsderived fromtimeRangeSec - PieChartComponent (
src/components/pie-chart/pie-chart.component.ts) -- already usesinput()signals but reads them inngOnInitinstead ofcomputed()/effect() - SidebarCardComponent (
src/pages/graph-page/graph-sidebar/sidebar-card/sidebar-card.component.ts) --iconIdderived fromtitle - GraphSidebarMobileComponent (
src/pages/graph-page/graph-sidebar/graph-sidebar-mobile/graph-sidebar-mobile.component.ts) --nodes,nodesWithVisibilityTogglederived fromdataTypes
Acceptance Criteria
- All 10 components migrated from
@Input()+ngOnInitderived state toinput()+computed() ngOnInitremoved from components where it only existed to compute derived input state- Templates updated to call signal getters (e.g.
innerCircleDimension()instead ofinnerCircleDimension) - No regressions in component rendering
npx ng lintandnpx prettier --checkpass
- Lingua principale
- TypeScript
- Stelle
- 5
- Fork
- 1
- Merge medio
- 5g 13h
- PR unite (30g)
- 24
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
-
Deliver telemetry selectively per screen over the existing Socket.IO transportForse già presa @bracyw l’ha presa 17 giorni fa. Apertaangular-client difficult new feature scylla-server
Northeastern-Electric-Racing/Argos#777 · 1 assegnatario ·
I maintainer di solito rispondono entro 5 giorni
-
Handle broker-initiated MQTT disconnects in the Flutter clientForse già presa @bracyw l’ha presa 22 giorni fa. Apertabug dart medium
Northeastern-Electric-Racing/Argos#768 · 1 assegnatario ·
I maintainer di solito rispondono entro 5 giorni
-
Prune CONTEXT.md glossary to genuinely ambiguous termsForse di nuovo libera @bracyw l’ha presa 76 giorni fa e non c’è nessuna pull request aperta. Apertaai-workflow needs-triage
Northeastern-Electric-Racing/Argos#716 · 1 assegnatario ·
I maintainer di solito rispondono entro 5 giorni
-
Fix clipped content on BMS segment-detail cards at ~1028px widthForse di nuovo libera @bracyw l’ha presa 76 giorni fa e non c’è nessuna pull request aperta. Apertaangular-client bug needs-triage straightforward
Northeastern-Electric-Racing/Argos#715 · 1 assegnatario ·
I maintainer di solito rispondono entro 5 giorni
-
Fix BMS At A Glance stat overlap and clipping at narrow widthsForse di nuovo libera @bracyw l’ha presa 76 giorni fa e non c’è nessuna pull request aperta. Apertaangular-client bug medium needs-triage
Northeastern-Electric-Racing/Argos#714 · 1 assegnatario ·
I maintainer di solito rispondono entro 5 giorni
Tutte le issue di Northeastern-Electric-Racing/Argos
Issue simili
-
priority: P2
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
prime-radiant-inc/evener#3291 ·
I maintainer di solito rispondono entro 1 giorno
-
accessibility bug revealjs
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
quarto-dev/quarto-cli#14961 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
supabase/agent-skills#614 ·
-
Content
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
RunestoneInteractive/rs#1559 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni