-
+ const toggleColumn = field => {
+ if (!gridApi) return;
+ const col = gridApi.getColumn(field);
+ gridApi.setColumnsVisible([field], !col.visible);
+ setColumnsState(cols =>
+ cols.map(c => (c.field === field ? { ...c, visible: !c.visible } : c))
+ );
+ };
+
+ const resetColumns = () => {
+ if (!gridApi) return;
+ gridApi.resetColumnState();
+ const resetState = gridApi.getAllGridColumns().map(col => ({
+ field: col.getColDef().field,
+ headerName: col.getColDef().headerName,
+ visible: col.isVisible(),
+ isPinning: col.getColDef().isPinning,
+ }));
+ setColumnsState(resetState);
+ };
+
+ const menu = (
+
+ );
+
+ const antIcon =
;
+
+ // Force refresh when rowData
+ useEffect(() => {
+ if (gridApi) {
+ gridApi.refreshCells({ force: true });
+ }
+ }, [rowData, gridApi]);
+
+ return (
+ <>
+
-
- >
- );
-});
+
+
+ {loading && (
+
+
+
+ )}
+
+
+
+ >
+ );
+ }
+);
HKGrid.propTypes = {
rowData: PropTypes.array.isRequired,
@@ -205,4 +238,4 @@ HKGrid.propTypes = {
loading: PropTypes.bool,
};
-export default HKGrid;
\ No newline at end of file
+export default HKGrid;
diff --git a/src/components/common/LogsViewer/index.jsx b/src/components/common/LogsViewer/index.jsx
index 39989186c..8b64b9f5b 100644
--- a/src/components/common/LogsViewer/index.jsx
+++ b/src/components/common/LogsViewer/index.jsx
@@ -177,28 +177,27 @@ const LogsViewer = ({ dataSource, isBuild = false, id, emptyDescription }) => {
return () => cancelAnimationFrame(raf);
}, [dataSource.length, id]);
-const renderRow = useCallback(
- ({ index, key, parent, style }) => (
-
- {({ registerChild }) => (
-
- {isBuild ? (
-
- ) : (
-
- )}
-
- )}
-
- ),
- [dataSource, isBuild]
-);
+ const renderRow = useCallback(
+ ({ index, key, parent, style }) => (
+
+ {({ registerChild }) => (
+
+ {isBuild ? (
+
+ ) : (
+
+ )}
+
+ )}
+
+ ),
+ [dataSource, isBuild]
+ );
const [first] = dataSource;
const isValid = isBuild || (first && first.level);
@@ -238,4 +237,4 @@ LogsViewer.propTypes = {
emptyDescription: PropTypes.string,
};
-export default LogsViewer;
\ No newline at end of file
+export default LogsViewer;
diff --git a/src/index.jsx b/src/index.jsx
index 6c31ffc88..671e1022e 100644
--- a/src/index.jsx
+++ b/src/index.jsx
@@ -41,7 +41,11 @@ const ConfigProviderApp = () => {
if (keycloakEnable && firstKc.current && !KeycloakServices.isLoggedIn()) {
firstKc.current = false;
- KeycloakServices.initKeycloak(renderApp, renderErrorPreRenderApp, checkIframe);
+ KeycloakServices.initKeycloak(
+ renderApp,
+ renderErrorPreRenderApp,
+ checkIframe
+ );
}
}, [keycloakEnable, checkIframe]);
diff --git a/src/keycloak/keycloakServices.js b/src/keycloak/keycloakServices.js
index 17f17c537..d239a5832 100644
--- a/src/keycloak/keycloakServices.js
+++ b/src/keycloak/keycloakServices.js
@@ -14,7 +14,6 @@ const KeycloakConfig = {
const _kc = new Keycloak(KeycloakConfig);
const initKeycloak = (appToRender, renderError, checkIframe) => {
-
_kc
.init({
onLoad: 'login-required',
diff --git a/src/styles/themes/dark/DarkTheme.js b/src/styles/themes/dark/DarkTheme.js
index f38913dd6..b9347c0a3 100644
--- a/src/styles/themes/dark/DarkTheme.js
+++ b/src/styles/themes/dark/DarkTheme.js
@@ -90,7 +90,7 @@ const DarkTheme = COMMON_COLOR => {
backgroundBarNodesColor: '#1c325c',
fontNodeColor: '#00000073',
},
- HKGrid: { ActionChip: '#303030' ,LoadingOverlay: 'rgba(26, 64, 99, 0.8)'},
+ HKGrid: { ActionChip: '#303030', LoadingOverlay: 'rgba(26, 64, 99, 0.8)' },
};
return {
diff --git a/src/styles/themes/dark/dark-mode-style.css b/src/styles/themes/dark/dark-mode-style.css
index 97458df74..5409a7627 100644
--- a/src/styles/themes/dark/dark-mode-style.css
+++ b/src/styles/themes/dark/dark-mode-style.css
@@ -191,7 +191,7 @@ input:-internal-autofill-selected {
color: #d7d7d7 !important;
border-color: #385e8d !important;
}
-label[class*="sc-"] {
+label[class*='sc-'] {
color: #d7d7d7 !important;
background-color: transparent !important;
}
@@ -208,7 +208,7 @@ label[class*="sc-"] {
padding: 6px 10px !important;
}
/* Target tooltip container */
-div[style*="z-index: 10"][style*="pointer-events: none"][style*="background: rgb(255, 255, 255)"] {
+div[style*='z-index: 10'][style*='pointer-events: none'][style*='background: rgb(255, 255, 255)'] {
background: #242c48 !important; /* Match your dropdown color */
color: #ffffff !important;
border: 1px solid #586a93 !important;
@@ -288,7 +288,7 @@ div[style*="z-index: 10"][style*="pointer-events: none"][style*="background: rgb
fill: #40a9ff !important;
color: #40a9ff !important;
}
-.ant-menu-title-content span[class*="sc-"] {
+.ant-menu-title-content span[class*='sc-'] {
color: #d7d7d7 !important;
}
.ant-empty-description {
@@ -309,7 +309,7 @@ div[style*="z-index: 10"][style*="pointer-events: none"][style*="background: rgb
}
/* Active tab */
-.ant-tabs-tab-btn[aria-selected="true"] {
+.ant-tabs-tab-btn[aria-selected='true'] {
color: #f0a25a !important;
font-weight: 600 !important;
}
@@ -345,13 +345,13 @@ svg text {
svg line {
stroke: #586a93 !important;
}
-svg text[text-anchor="middle"] {
+svg text[text-anchor='middle'] {
fill: #2c3c60 !important;
font-weight: bold !important;
font-size: 14px !important;
}
-svg text[text-anchor="middle"][dominant-baseline="text-before-edge"],
-svg text[text-anchor="middle"][style*="dominant-baseline: central"] {
+svg text[text-anchor='middle'][dominant-baseline='text-before-edge'],
+svg text[text-anchor='middle'][style*='dominant-baseline: central'] {
fill: #40a9ff !important;
font-weight: bold !important;
font-size: 14px !important;
@@ -560,4 +560,4 @@ svg {
border-radius: 6px;
padding: 8px 12px;
}
-}
\ No newline at end of file
+}
diff --git a/src/styles/themes/light/LightTheme.js b/src/styles/themes/light/LightTheme.js
index e1b955095..047095910 100644
--- a/src/styles/themes/light/LightTheme.js
+++ b/src/styles/themes/light/LightTheme.js
@@ -81,7 +81,10 @@ const LightTheme = COMMON_COLOR => {
backgroundBarNodesColor: '#fbfbfb',
fontNodeColor: '#00000073',
},
- HKGrid: { ActionChip: '#e7e7e7', LoadingOverlay: 'rgba(255, 255, 255, 0.8)' },
+ HKGrid: {
+ ActionChip: '#e7e7e7',
+ LoadingOverlay: 'rgba(255, 255, 255, 0.8)',
+ },
};
return {