Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
159c3a4
Improve coverage for ConfigSection
PaulJouvanceau Mar 24, 2026
5e7976e
Improve coverage for KeysSection
PaulJouvanceau Mar 25, 2026
5ffba22
Improve coverage for ObjectInstanceView
PaulJouvanceau Mar 25, 2026
bceebc0
feat: Display API error messages in snackbars alongside HTTP status c…
PaulJouvanceau Mar 25, 2026
de0ad23
Improve test coverage for api
PaulJouvanceau Mar 26, 2026
8823b42
fix(KeysSection): force label shrink in text mode TextFields for Safari
PaulJouvanceau Mar 26, 2026
2363c9e
Improve test coverage for ObjectDetails
PaulJouvanceau Mar 30, 2026
9ae7400
Improve test coverage for ClusterStatGrids
PaulJouvanceau Mar 30, 2026
3c2e3d1
Improve test coverage for LogsViewer
PaulJouvanceau Mar 30, 2026
aa20957
Improve test coverage for useEventStore
PaulJouvanceau Mar 31, 2026
99ec260
refactor: eliminate code duplication in KeysSection component
PaulJouvanceau Mar 31, 2026
c1286c7
Improve coverage for ObjectInstanceView
PaulJouvanceau Apr 1, 2026
3c6b67a
Improve coverage for Heartbeats
PaulJouvanceau Apr 20, 2026
151a552
fix(scroll): prevent horizontal and unnecessary vertical scrolling
PaulJouvanceau Apr 29, 2026
2797a26
refactor(ConfigSection): allow free-text section names for config par…
PaulJouvanceau Apr 30, 2026
3b12b4d
Improve test coverage for CongigSection
PaulJouvanceau Apr 30, 2026
975369e
fix: remove dash placeholder for nodes with no status data
PaulJouvanceau Apr 30, 2026
22471d3
fix: adapt config section background to dark mode theme
PaulJouvanceau Apr 30, 2026
65d132d
fix(oidc): resolve blank page after OIDC callback
PaulJouvanceau Apr 30, 2026
e465cc0
Improve test coverage for OidcCallback
PaulJouvanceau Apr 30, 2026
aa66cc6
Improve test coverage for ConfigSection
PaulJouvanceau May 11, 2026
37b290b
Improve test coverage for ObjectDetails
PaulJouvanceau May 11, 2026
c77daef
fix(dark-mode): prevent blue background on autofilled input fields in…
PaulJouvanceau May 11, 2026
d0dc5f3
Fix cluster overview layout: align namespaces and kinds cards height …
PaulJouvanceau May 12, 2026
f04d36e
fix(ObjectDetail): restore initial config loading and SSE filters for…
PaulJouvanceau May 13, 2026
61face9
fix: prevent View Configuration button text overflow in narrow container
PaulJouvanceau May 13, 2026
157e08b
Minor fixes :
PaulJouvanceau May 18, 2026
d1453ba
refactor: replace deprecated MUI Grid with Grid2 across multiple comp…
PaulJouvanceau May 18, 2026
e1c55cf
fix: add optional chaining to authDispatch calls to fix null/undefine…
PaulJouvanceau May 18, 2026
dd1937c
fix: remove unused configData state variable
PaulJouvanceau May 18, 2026
80fe13a
fix(KeysSection): replace deprecated InputLabelProps and InputProps w…
PaulJouvanceau May 18, 2026
aa31572
fix(Login): replace deprecated InputProps with slotProps
PaulJouvanceau May 18, 2026
ef38592
fix: prefix unused token parameter with underscore in handleReconnection
PaulJouvanceau May 18, 2026
f2b0ae2
revert: replace Grid2 with Grid for Objects filters
PaulJouvanceau May 19, 2026
f6d709c
fix: handle uncaught promise in OidcCallback useEffect
PaulJouvanceau May 19, 2026
21450aa
fix: resolve ESLint warnings for ignored promise and unresolved overf…
PaulJouvanceau May 19, 2026
fe6f93e
feat(EventLogger): export hashCode function for testing
PaulJouvanceau May 19, 2026
63c78a3
refactor: extract duplicated SortableTableCell into objectUtils
PaulJouvanceau May 19, 2026
34e122d
revert: replace Grid2 with Grid for Heartbeats and WhoamI
PaulJouvanceau May 19, 2026
a08b56f
feat(Objects): implement cyclical status sorting for status and node …
PaulJouvanceau May 20, 2026
8cb7d39
Improve test coverage for Namespaces
PaulJouvanceau May 25, 2026
6d25837
refactor(OidcAuthContext): improve type safety and error resilience
PaulJouvanceau May 25, 2026
e51819a
test: safely mock window.location with defineProperty
PaulJouvanceau May 28, 2026
d887762
test: replace destructive window.location mock with safe Object.defin…
PaulJouvanceau May 28, 2026
40ee3e0
test: improve robustness of scroll properties cleanup in NodeRow test
PaulJouvanceau May 28, 2026
b99d284
fix: add browser environment guards to OIDC config
PaulJouvanceau May 28, 2026
813770d
refactor(auth): make localStorage access SSR‑safe and lazy
PaulJouvanceau May 28, 2026
2ef1b45
test: improve robustness of devicePixelRatio test in NodesTable
PaulJouvanceau May 29, 2026
1c4e099
refactor(tests): deduplicate and consolidate ObjectDetails test suite
PaulJouvanceau May 29, 2026
64778b8
test: increase coverage for oidcConfiguration module
PaulJouvanceau May 29, 2026
a56d1b9
refactor(test): reorganize ConfigSection tests with helpers and reduc…
PaulJouvanceau May 29, 2026
0f8f2f9
test(EventLogger): refactor and expand test suite with helpers and im…
PaulJouvanceau May 29, 2026
4a22232
test: refactor ObjectInstanceView tests for maintainability and clarity
PaulJouvanceau May 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
171 changes: 88 additions & 83 deletions src/components/App.jsx

Large diffs are not rendered by default.

38 changes: 17 additions & 21 deletions src/components/Cluster.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -235,41 +235,37 @@ const ClusterOverview = () => {
</Typography>

<Box sx={{
display: 'flex',
flexDirection: {xs: 'column', md: 'row'},
display: 'grid',
gridTemplateColumns: {xs: '1fr', md: '2fr 1fr'},
gap: 3,
alignItems: 'stretch'
}}>
<Box sx={{
flex: 2,
display: 'grid',
gridTemplateColumns: {md: '1fr 1fr'},
gap: 3,
minHeight: '100%'
alignContent: 'start'
}}>
<Box>
<GridNodes {...gridNodesProps} />
</Box>
<Box>
<GridObjects {...gridObjectsProps} />
</Box>
<Box>
<GridHeartbeats {...gridHeartbeatsProps} />
</Box>
<Box>
<GridPools {...gridPoolsProps} />
</Box>
<Box>
<GridNetworks {...gridNetworksProps} />
</Box>
<GridNodes {...gridNodesProps} />
<GridObjects {...gridObjectsProps} />
<GridHeartbeats {...gridHeartbeatsProps} />
<GridPools {...gridPoolsProps} />
<GridNetworks {...gridNetworksProps} />
</Box>

<Box sx={{flex: 1, display: 'flex', flexDirection: 'column', gap: 3}}>
<Box sx={{
display: 'flex',
flexDirection: 'column',
gap: 3,
height: '100%',
justifyContent: 'flex-start'
}}>
<GridNamespaces {...gridNamespacesProps} />
<GridKinds {...gridKindsProps} />
</Box>
</Box>
<EventLogger eventTypes={CLUSTER_EVENT_TYPES} title="Cluster Events Logger" buttonLabel="Cluster Events"/>
<EventLogger eventTypes={CLUSTER_EVENT_TYPES} title="Cluster Events Logger"
buttonLabel="Cluster Events"/>
</Box>
</Box>
);
Expand Down
9 changes: 3 additions & 6 deletions src/components/ClusterStatGrids.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,6 @@ export const GridNamespaces = memo(({namespaceCount, namespaceSubtitle, onClick}
value={namespaceCount}
subtitle={subtitle}
onClick={handleCardClick}
dynamicHeight
isLoading={isCardLoading}
/>
);
Expand Down Expand Up @@ -317,7 +316,6 @@ const NamespaceChip = memo(({namespace, status, isLoading, onClick, onLoadingCha
export const GridHeartbeats = memo(({
heartbeatCount,
perHeartbeatStats = {},
nodeCount,
onClick
}) => {
const [loadingId, setLoadingId] = useState('');
Expand Down Expand Up @@ -369,7 +367,6 @@ export const GridHeartbeats = memo(({

const chips = [];
for (const [baseId, {total, healthy}] of groups.entries()) {

const isHealthy = (total === healthy);
const isLoading = loadingId === baseId;

Expand Down Expand Up @@ -514,7 +511,9 @@ export const GridNetworks = memo(({networks, onClick}) => {
const usagePercentage = network.size
? ((network.used / network.size) * 100).toFixed(1)
: 0;
const isLowStorage = network.size ? ((network.free / network.size) * 100) < 10 : false;
const free = network.size - network.used;
const freePercent = network.size ? (free / network.size) * 100 : 100;
const isLowStorage = freePercent < 10;

return (
<Box key={network.name} sx={{
Expand Down Expand Up @@ -547,7 +546,6 @@ export const GridNetworks = memo(({networks, onClick}) => {
value={networks.length}
subtitle={subtitle}
onClick={handleCardClick}
dynamicHeight
isLoading={isLoading}
/>
);
Expand Down Expand Up @@ -597,7 +595,6 @@ export const GridKinds = memo(({kindCount, kindSubtitle, onClick}) => {
value={kindCount}
subtitle={subtitle}
onClick={handleCardClick}
dynamicHeight
isLoading={isCardLoading}
/>
);
Expand Down
Loading
Loading