@skyhook-io/radar-app 1.8.7 → 1.8.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/package.json +4 -4
  2. package/src/App.tsx +58 -50
  3. package/src/api/client.argoResourceSync.test.ts +69 -0
  4. package/src/api/client.rightsizing.test.ts +32 -0
  5. package/src/api/client.ts +1222 -234
  6. package/src/api/timelineSource.ts +4 -2
  7. package/src/components/applications/ApplicationsView.tsx +613 -219
  8. package/src/components/cost/ApplicationCostTab.test.ts +204 -0
  9. package/src/components/cost/ApplicationCostTab.tsx +571 -0
  10. package/src/components/cost/CostTrendChart.tsx +103 -72
  11. package/src/components/cost/CostView.test.ts +12 -0
  12. package/src/components/cost/CostView.tsx +494 -229
  13. package/src/components/cost/CostViewTabs.test.tsx +21 -0
  14. package/src/components/cost/CostViewTabs.tsx +40 -0
  15. package/src/components/cost/CurrentAllocationUse.test.ts +21 -0
  16. package/src/components/cost/CurrentAllocationUse.tsx +126 -0
  17. package/src/components/cost/WorkloadCostTab.test.ts +153 -0
  18. package/src/components/cost/WorkloadCostTab.tsx +372 -0
  19. package/src/components/cost/cloud-console.test.ts +39 -0
  20. package/src/components/cost/cloud-console.ts +81 -0
  21. package/src/components/cost/errors.ts +8 -0
  22. package/src/components/cost/format.test.ts +27 -0
  23. package/src/components/cost/format.ts +46 -0
  24. package/src/components/cost/kinds.ts +5 -0
  25. package/src/components/diagnose/AISettings.tsx +7 -12
  26. package/src/components/gitops/ArgoResourceDiffLoader.tsx +23 -0
  27. package/src/components/gitops/GitOpsView.tsx +81 -14
  28. package/src/components/gitops/RevisionMetaChip.tsx +63 -0
  29. package/src/components/helm/HelmCompareRoute.tsx +1 -2
  30. package/src/components/helm/ManifestDiffViewer.tsx +1 -31
  31. package/src/components/helm/ValuesDiffPreview.tsx +2 -3
  32. package/src/components/home/CostCard.tsx +21 -36
  33. package/src/components/resource/RightsizingStrip.test.ts +109 -0
  34. package/src/components/resource/RightsizingStrip.tsx +319 -123
  35. package/src/components/rightsizing/RightsizingScanView.tsx +938 -0
  36. package/src/components/rightsizing/copy.test.ts +56 -0
  37. package/src/components/rightsizing/model.test.ts +227 -0
  38. package/src/components/rightsizing/model.ts +158 -0
  39. package/src/components/rightsizing/presentation.test.ts +104 -0
  40. package/src/components/rightsizing/presentation.ts +94 -0
  41. package/src/components/settings/MyPermissionsDialog.tsx +66 -116
  42. package/src/components/settings/SettingsDialog.tsx +1268 -318
  43. package/src/components/timeline/TimelineList.tsx +35 -8
  44. package/src/components/timeline/TimelineView.tsx +156 -26
  45. package/src/components/timeline/TimelineView.urlparams.test.ts +43 -2
  46. package/src/components/workload/WorkloadView.tsx +711 -328
  47. package/src/index.css +5 -1
  48. package/src/main.tsx +1 -1
@@ -101,6 +101,7 @@ export interface TimelineOverviewResult {
101
101
  export interface TimelineEventsResult {
102
102
  data: TimelineEvent[] | undefined
103
103
  isLoading: boolean
104
+ isFetching: boolean
104
105
  isError: boolean
105
106
  refetch: () => void
106
107
  // Present only for sources that report coverage (retained).
@@ -142,7 +143,7 @@ function useLocalEvents(query: TimelineQuery): TimelineEventsResult {
142
143
  // query and the list's windowed one): SSE-driven refetches then transfer only
143
144
  // what arrived since the last full load. Dropdown-ranged (`since`) queries
144
145
  // stay plain — they're small and their range moves with the clock.
145
- const { data, isLoading, isError, refetch } = useChanges(
146
+ const { data, isLoading, isFetching, isError, refetch } = useChanges(
146
147
  windowed
147
148
  ? { ...query, timeRange: 'all', limit: LOCAL_RING_LIMIT, deltaSync: true }
148
149
  : { ...query, deltaSync: query.timeRange === 'all' },
@@ -165,7 +166,7 @@ function useLocalEvents(query: TimelineQuery): TimelineEventsResult {
165
166
  // eslint-disable-next-line react-hooks/exhaustive-deps
166
167
  [data, query.fromMs, query.toMs, query.limit, kindsKey, query.includeManaged],
167
168
  )
168
- return { data: events, isLoading, isError, refetch }
169
+ return { data: events, isLoading, isFetching, isError, refetch }
169
170
  }
170
171
 
171
172
  export const localSource: TimelineSource = {
@@ -517,6 +518,7 @@ function createRetainedEventsHook(
517
518
  return {
518
519
  data,
519
520
  isLoading: base.isLoading,
521
+ isFetching: base.isFetching || live.isFetching,
520
522
  // Base failure is a real error; a failing live poll must not blank an
521
523
  // already-loaded range.
522
524
  isError: base.isError,