리소스 상세 대시보드에서 모든 위젯 데이터 요청에 `confId` 를 일관되게 주입하기 위한 위젯 fetch 지점 전수 스윕(sweep) 패턴 — 일부만 주입하면 같은 대시보드 안에서 위젯별 필터 동작이 갈라지는 버그를 방지한다.
리소스 상세 "요약" 대시보드에서 위젯이 전체 대시보드가 아니라 해당 리소스 한정 데이터를 표시하도록, 모든 위젯의 데이터 요청 payload 에 confId 를 조건부로 주입한다. 한 곳만 놓치면 다른 위젯은 리소스 필터가 먹히지만 그 위젯만 전체 데이터가 보이는 사일런트 버그가 발생한다.
GridLayoutPage 에 pageProps.selectCondition.confId 를 흘려보내고, 각 위젯 fetch 지점에서 다음 템플릿으로 파라미터에 조건부 병합:
...((pageProps?.selectCondition as any)?.confId
? { confId: (pageProps.selectCondition as any).confId }
: {}),
selectCondition 이 없으므로 자동 noopconfId 가 포함되어 서버 필터가 적용신규 위젯을 추가할 때마다 아래 유형 전부 훑을 것.
차트
- WidgetCreatePreview.tsx (단일 차트 미리보기)
- fetchSpeedChartData.ts
- fetchEqualizerChartData.ts
- fetchCylinderChartData.ts
- (기타 fetch<ChartType>Data.ts)
카드
- CardWidgetCard.tsx
- CardNetworkInterface.tsx
- TickerPreviewCard.tsx
- TopNPreviewItem.tsx
- useCardAvailability.tsx
테이블 / TopN
- CardTable.tsx
- useWidgetTableGrid.tsx
게이지
- useGaugeFetchData.ts
1. grep 으로 위젯 fetch 훅/컴포넌트 전수 나열:
rg "makeServerSideParams|fetch.*ChartData|useCard|useGauge|useWidget"
2. 각 fetch 지점에 confId 분기 존재 여부 확인
3. 네트워크 탭에서 대시보드 로드 시 모든 위젯 요청에 confId 쿼리/바디 포함 확인
4. 같은 대시보드 위젯이지만 confId 가 빠진 요청이 있으면 회귀
pageProps.selectCondition.confId 처럼 직접 접근하면 일반 대시보드에서 NPE — 반드시 옵셔널 체이닝 + 조건부 spreadas any 를 쓰더라도 selectCondition 공용 타입에 confId?: string 를 정식 추가하는 게 장기적으로 안전confId?: string 선언 (장기)