diff --git a/index.css b/index.css index 014ab2f5f9..efca63c685 100644 --- a/index.css +++ b/index.css @@ -11,9 +11,9 @@ /* TODO: Comment when theming goes live on production */ /* @media (prefers-color-scheme: dark) { - --bg-tertiary: #0d0f1c; - --bg-devtron-loader: #172433; - --fill-devtron-loader: #74B5FF; + --bg-tertiary: #15161F; + --bg-devtron-loader: #28364c; + --fill-devtron-loader: #6195d2; } */ } diff --git a/package.json b/package.json index 5526621ec8..51a5106081 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "homepage": "/dashboard", "dependencies": { - "@devtron-labs/devtron-fe-common-lib": "1.5.1", + "@devtron-labs/devtron-fe-common-lib": "1.5.2", "@esbuild-plugins/node-globals-polyfill": "0.2.3", "@rjsf/core": "^5.13.3", "@rjsf/utils": "^5.13.3", diff --git a/src/Pages/GlobalConfigurations/Authorization/Shared/components/AppPermissions/constants.ts b/src/Pages/GlobalConfigurations/Authorization/Shared/components/AppPermissions/constants.ts index 2d6743a3df..ffe32d7861 100644 --- a/src/Pages/GlobalConfigurations/Authorization/Shared/components/AppPermissions/constants.ts +++ b/src/Pages/GlobalConfigurations/Authorization/Shared/components/AppPermissions/constants.ts @@ -15,6 +15,7 @@ */ import { ACCESS_TYPE_MAP, EntityTypes, SelectPickerOptionType } from '@devtron-labs/devtron-fe-common-lib' +import { StylesConfig } from 'react-select' import { SELECT_ALL_VALUE } from '../../../../../../config' import { ActionTypes, authorizationSelectStyles } from '../../../constants' import { getDefaultStatusAndTimeout } from '../../../libUtils' @@ -72,10 +73,10 @@ export enum DirectPermissionFieldName { status = 'status', } -export const roleSelectStyles = { +export const roleSelectStyles: StylesConfig = { ...authorizationSelectStyles, - valueContainer: (base) => ({ - ...authorizationSelectStyles.valueContainer(base), + valueContainer: (base, state) => ({ + ...authorizationSelectStyles.valueContainer(base, state), display: 'flex', flexWrap: 'nowrap', textOverflow: 'ellipsis', diff --git a/src/Pages/GlobalConfigurations/Authorization/constants.ts b/src/Pages/GlobalConfigurations/Authorization/constants.ts index a67f95008d..2b1b5c2230 100644 --- a/src/Pages/GlobalConfigurations/Authorization/constants.ts +++ b/src/Pages/GlobalConfigurations/Authorization/constants.ts @@ -76,8 +76,8 @@ export const authorizationSelectStyles = { ..._selectStyles.control(base, state), height: '36px', }), - valueContainer: (base) => ({ - ..._selectStyles.valueContainer(base), + valueContainer: (base, state) => ({ + ..._selectStyles.valueContainer(base, state), maxHeight: '100%', }), option: (base, state) => ({ diff --git a/src/Pages/GlobalConfigurations/DeploymentCharts/List/UploadButton.tsx b/src/Pages/GlobalConfigurations/DeploymentCharts/List/UploadButton.tsx index 236a9dff13..21d5e3ed63 100644 --- a/src/Pages/GlobalConfigurations/DeploymentCharts/List/UploadButton.tsx +++ b/src/Pages/GlobalConfigurations/DeploymentCharts/List/UploadButton.tsx @@ -1,16 +1,14 @@ import { ReactComponent as Upload } from '@Icons/ic-upload.svg' +import { Button } from '@devtron-labs/devtron-fe-common-lib' import { UploadButtonProps } from '../types' const UploadButton = ({ handleOpenUploadChartModal }: UploadButtonProps) => ( - + dataTestId="upload-custom-chart-button" + /> ) export default UploadButton diff --git a/src/Pages/Shared/LinkedCIDetailsModal/constants.ts b/src/Pages/Shared/LinkedCIDetailsModal/constants.ts index 57800f2a42..13ffd5ed63 100644 --- a/src/Pages/Shared/LinkedCIDetailsModal/constants.ts +++ b/src/Pages/Shared/LinkedCIDetailsModal/constants.ts @@ -47,8 +47,8 @@ export const environmentFilterDropdownStyles = { height: 32, minHeight: 32, }), - menu: (base) => ({ - ...commonStyles.menu(base), + menu: (base, state) => ({ + ...commonStyles.menu(base, state), zIndex: 5, }), } diff --git a/src/Pages/Shared/OrganizationFrame/OrganizationFrame.component.tsx b/src/Pages/Shared/OrganizationFrame/OrganizationFrame.component.tsx index c720ddacb5..be1b6ff743 100644 --- a/src/Pages/Shared/OrganizationFrame/OrganizationFrame.component.tsx +++ b/src/Pages/Shared/OrganizationFrame/OrganizationFrame.component.tsx @@ -16,6 +16,7 @@ import { getRandomColor } from '@devtron-labs/devtron-fe-common-lib' import { ReactComponent as ICDevtron } from '../../../assets/icons/ic-devtron-blue-outline.svg' +import './organizationFrame.scss' const OrganizationFrame = () => (
@@ -30,7 +31,7 @@ const OrganizationFrame = () => (
- + ) diff --git a/src/Pages/Shared/OrganizationFrame/organizationFrame.scss b/src/Pages/Shared/OrganizationFrame/organizationFrame.scss new file mode 100644 index 0000000000..bbb5240732 --- /dev/null +++ b/src/Pages/Shared/OrganizationFrame/organizationFrame.scss @@ -0,0 +1,7 @@ +.organization-frame { + &__logo { + > path:first-child { + fill: var(--bg-sidebar); + } + } +} diff --git a/src/assets/gif/ic-no-eligible-commit.svg b/src/assets/gif/ic-no-eligible-commit.svg index 37c73ceefc..5cd37fbef7 100644 --- a/src/assets/gif/ic-no-eligible-commit.svg +++ b/src/assets/gif/ic-no-eligible-commit.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/src/assets/ic-info-filled-border.svg b/src/assets/ic-info-filled-border.svg deleted file mode 100644 index f1f02c2e1d..0000000000 --- a/src/assets/ic-info-filled-border.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - - - - - - - diff --git a/src/assets/icons/dark/ic-bulk-check.svg b/src/assets/icons/dark/ic-bulk-check.svg new file mode 100644 index 0000000000..5f7db4a099 --- /dev/null +++ b/src/assets/icons/dark/ic-bulk-check.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icons/dark/ic-checkbox-hover.svg b/src/assets/icons/dark/ic-checkbox-hover.svg new file mode 100644 index 0000000000..4feeea341e --- /dev/null +++ b/src/assets/icons/dark/ic-checkbox-hover.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/dark/ic-checkbox-intermediate.svg b/src/assets/icons/dark/ic-checkbox-intermediate.svg new file mode 100644 index 0000000000..0bbb4afb4a --- /dev/null +++ b/src/assets/icons/dark/ic-checkbox-intermediate.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/dark/ic-checkbox-selected.svg b/src/assets/icons/dark/ic-checkbox-selected.svg new file mode 100644 index 0000000000..1611e38ad1 --- /dev/null +++ b/src/assets/icons/dark/ic-checkbox-selected.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/dark/ic-checkbox-unselected.svg b/src/assets/icons/dark/ic-checkbox-unselected.svg new file mode 100644 index 0000000000..4224c9619b --- /dev/null +++ b/src/assets/icons/dark/ic-checkbox-unselected.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/dark/ic-github.svg b/src/assets/icons/dark/ic-github.svg new file mode 100644 index 0000000000..b9e0787a1f --- /dev/null +++ b/src/assets/icons/dark/ic-github.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/src/assets/icons/git/github.svg b/src/assets/icons/git/github.svg index bdb82773d6..9320f174f9 100644 --- a/src/assets/icons/git/github.svg +++ b/src/assets/icons/git/github.svg @@ -16,7 +16,6 @@ - - + diff --git a/src/assets/icons/ic-bulk-check.svg b/src/assets/icons/ic-bulk-check.svg index fb3c07adbf..b90b194466 100644 --- a/src/assets/icons/ic-bulk-check.svg +++ b/src/assets/icons/ic-bulk-check.svg @@ -14,8 +14,8 @@ - limitations under the License. --> - - - - + + + + diff --git a/src/assets/icons/ic-checkbox-hover.svg b/src/assets/icons/ic-checkbox-hover.svg new file mode 100644 index 0000000000..5b722dbd3f --- /dev/null +++ b/src/assets/icons/ic-checkbox-hover.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/ic-checkbox-intermediate.svg b/src/assets/icons/ic-checkbox-intermediate.svg index 625d530255..bec37de4bb 100644 --- a/src/assets/icons/ic-checkbox-intermediate.svg +++ b/src/assets/icons/ic-checkbox-intermediate.svg @@ -14,7 +14,9 @@ - limitations under the License. --> - - - + + + + + diff --git a/src/assets/icons/ic-checkbox-selected.svg b/src/assets/icons/ic-checkbox-selected.svg index 70b1e7767c..b5d0eb365b 100644 --- a/src/assets/icons/ic-checkbox-selected.svg +++ b/src/assets/icons/ic-checkbox-selected.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - - - + + + diff --git a/src/assets/icons/ic-checkbox-unselected.svg b/src/assets/icons/ic-checkbox-unselected.svg index ec83b54ebd..a64391cf67 100644 --- a/src/assets/icons/ic-checkbox-unselected.svg +++ b/src/assets/icons/ic-checkbox-unselected.svg @@ -14,6 +14,6 @@ - limitations under the License. --> - - + + diff --git a/src/assets/icons/ic-datadog.png b/src/assets/icons/ic-datadog.png deleted file mode 100644 index dcc26ac530..0000000000 Binary files a/src/assets/icons/ic-datadog.png and /dev/null differ diff --git a/src/assets/icons/ic-datadog.svg b/src/assets/icons/ic-datadog.svg new file mode 100644 index 0000000000..bc3b2da366 --- /dev/null +++ b/src/assets/icons/ic-datadog.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/icons/ic-newrelic.png b/src/assets/icons/ic-newrelic.png deleted file mode 100644 index 4c31cdbd29..0000000000 Binary files a/src/assets/icons/ic-newrelic.png and /dev/null differ diff --git a/src/assets/icons/ic-newrelic.svg b/src/assets/icons/ic-newrelic.svg new file mode 100644 index 0000000000..fd37900417 --- /dev/null +++ b/src/assets/icons/ic-newrelic.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/icons/ic-plugin.svg b/src/assets/icons/ic-plugin.svg index 904ac2febc..a061723f4b 100644 --- a/src/assets/icons/ic-plugin.svg +++ b/src/assets/icons/ic-plugin.svg @@ -14,7 +14,6 @@ - limitations under the License. --> - - - + + diff --git a/src/assets/icons/ic-secure.svg b/src/assets/icons/ic-secure.svg index d4d952cf3e..f841cc9cea 100644 --- a/src/assets/icons/ic-secure.svg +++ b/src/assets/icons/ic-secure.svg @@ -14,8 +14,7 @@ - limitations under the License. --> - - + diff --git a/src/assets/icons/ic-smiley-party.svg b/src/assets/icons/ic-smiley-party.svg index d58c726210..80056567f0 100644 --- a/src/assets/icons/ic-smiley-party.svg +++ b/src/assets/icons/ic-smiley-party.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - + ic-smiley-party @@ -70,4 +70,4 @@ - \ No newline at end of file + diff --git a/src/assets/icons/ic-upload.svg b/src/assets/icons/ic-upload.svg index 70ded176de..031247a9d2 100644 --- a/src/assets/icons/ic-upload.svg +++ b/src/assets/icons/ic-upload.svg @@ -16,6 +16,6 @@ - + diff --git a/src/assets/icons/slack-logo.svg b/src/assets/icons/slack-logo.svg index e51d271211..8f5040a40c 100644 --- a/src/assets/icons/slack-logo.svg +++ b/src/assets/icons/slack-logo.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - + ic-slack Created with Sketch. @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/src/assets/img/bug_fixing.svg b/src/assets/img/bug_fixing.svg index 66263294a0..95e7bed48f 100644 --- a/src/assets/img/bug_fixing.svg +++ b/src/assets/img/bug_fixing.svg @@ -14,4 +14,4 @@ - limitations under the License. --> -bug fixing \ No newline at end of file +bug fixing diff --git a/src/assets/img/guided-chart-repository.png b/src/assets/img/guided-chart-repository.png deleted file mode 100644 index 2ece6ae284..0000000000 Binary files a/src/assets/img/guided-chart-repository.png and /dev/null differ diff --git a/src/assets/img/guided-helm-search.png b/src/assets/img/guided-helm-search.png deleted file mode 100644 index 0188a61a9c..0000000000 Binary files a/src/assets/img/guided-helm-search.png and /dev/null differ diff --git a/src/assets/img/ic-empty-checklist.png b/src/assets/img/ic-empty-checklist.png deleted file mode 100644 index 670fb4aca5..0000000000 Binary files a/src/assets/img/ic-empty-checklist.png and /dev/null differ diff --git a/src/assets/img/ic-empty-tests.svg b/src/assets/img/ic-empty-tests.svg index 060752cc5f..9668b4af8a 100644 --- a/src/assets/img/ic-empty-tests.svg +++ b/src/assets/img/ic-empty-tests.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - + ic-empty-tests @@ -180,4 +180,4 @@ - \ No newline at end of file + diff --git a/src/assets/img/ic-help-outline.svg b/src/assets/img/ic-help-outline.svg index 5f3a6bee22..ded348d339 100644 --- a/src/assets/img/ic-help-outline.svg +++ b/src/assets/img/ic-help-outline.svg @@ -14,6 +14,6 @@ - limitations under the License. --> - + diff --git a/src/assets/img/ic-mechanical-operation.svg b/src/assets/img/ic-mechanical-operation.svg index a4ba40bbd6..35c33ec761 100644 --- a/src/assets/img/ic-mechanical-operation.svg +++ b/src/assets/img/ic-mechanical-operation.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - diff --git a/src/assets/img/ic-no-cluster-select@2x.png b/src/assets/img/ic-no-cluster-select@2x.png deleted file mode 100644 index f6591b5fca..0000000000 Binary files a/src/assets/img/ic-no-cluster-select@2x.png and /dev/null differ diff --git a/src/assets/img/ic-not-authorized.svg b/src/assets/img/ic-not-authorized.svg index 19e23c9115..4511d3721d 100644 --- a/src/assets/img/ic-not-authorized.svg +++ b/src/assets/img/ic-not-authorized.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - + diff --git a/src/assets/img/install-devtron-full.png b/src/assets/img/install-devtron-full.png deleted file mode 100644 index 8efa6adfbc..0000000000 Binary files a/src/assets/img/install-devtron-full.png and /dev/null differ diff --git a/src/assets/img/install-devtron-full@2x.png b/src/assets/img/install-devtron-full@2x.png deleted file mode 100644 index 5d4b3c1d6a..0000000000 Binary files a/src/assets/img/install-devtron-full@2x.png and /dev/null differ diff --git a/src/assets/img/install-devtron-full@3x.png b/src/assets/img/install-devtron-full@3x.png deleted file mode 100644 index 8307fda274..0000000000 Binary files a/src/assets/img/install-devtron-full@3x.png and /dev/null differ diff --git a/src/assets/img/login-bg-independence.png b/src/assets/img/login-bg-independence.png deleted file mode 100644 index f6f021f76c..0000000000 Binary files a/src/assets/img/login-bg-independence.png and /dev/null differ diff --git a/src/assets/img/mail-icon.svg b/src/assets/img/mail-icon.svg deleted file mode 100644 index a15c527a66..0000000000 --- a/src/assets/img/mail-icon.svg +++ /dev/null @@ -1,29 +0,0 @@ - - - - - ic-mail - Created with Sketch. - - - - - - - - - \ No newline at end of file diff --git a/src/assets/img/nav-logo.svg b/src/assets/img/nav-logo.svg index 5f4584b5d7..0b94b4a094 100644 --- a/src/assets/img/nav-logo.svg +++ b/src/assets/img/nav-logo.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - + ic-nav-logo Created with Sketch. @@ -38,4 +38,4 @@ - \ No newline at end of file + diff --git a/src/assets/img/no-eligible-commit.png b/src/assets/img/no-eligible-commit.png deleted file mode 100644 index fa2b9df43a..0000000000 Binary files a/src/assets/img/no-eligible-commit.png and /dev/null differ diff --git a/src/assets/img/no-offending-pipeline.svg b/src/assets/img/no-offending-pipeline.svg index 7888fa3d52..99ed3f7ccd 100644 --- a/src/assets/img/no-offending-pipeline.svg +++ b/src/assets/img/no-offending-pipeline.svg @@ -1 +1 @@ - + diff --git a/src/assets/img/warning-medium.svg b/src/assets/img/warning-medium.svg index 96ffd441d8..655b45c379 100644 --- a/src/assets/img/warning-medium.svg +++ b/src/assets/img/warning-medium.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - + diff --git a/src/assets/img/webhook.svg b/src/assets/img/webhook.svg index 355da2048f..3932c2b86c 100644 --- a/src/assets/img/webhook.svg +++ b/src/assets/img/webhook.svg @@ -14,7 +14,7 @@ - limitations under the License. --> - + diff --git a/src/components/ClusterNodes/NodeDetails.tsx b/src/components/ClusterNodes/NodeDetails.tsx index 5a734f32ae..36c9db2d62 100644 --- a/src/components/ClusterNodes/NodeDetails.tsx +++ b/src/components/ClusterNodes/NodeDetails.tsx @@ -257,16 +257,14 @@ const NodeDetails = ({ addTab, lowercaseKindToResourceGroupMap, updateTabUrl }: return (
{key}
{value && ( -
- {value} -
+
{value}
)}
@@ -438,7 +436,7 @@ const NodeDetails = ({ addTab, lowercaseKindToResourceGroupMap, updateTabUrl }: } return (
-
+
{`${issueCount} Probable issue${issueCount > 1 ? 's' : ''}`} diff --git a/src/components/ClusterNodes/clusterNodes.scss b/src/components/ClusterNodes/clusterNodes.scss index 50542ab5e0..4cf74bffe7 100644 --- a/src/components/ClusterNodes/clusterNodes.scss +++ b/src/components/ClusterNodes/clusterNodes.scss @@ -57,7 +57,7 @@ fill: var(--N0); } path { - fill: var(--y500); + fill: var(--Y500); } } .no-data-icon { diff --git a/src/components/app/details/appDetails/AppMetrics.tsx b/src/components/app/details/appDetails/AppMetrics.tsx index a4e479bc72..1e7b271f87 100644 --- a/src/components/app/details/appDetails/AppMetrics.tsx +++ b/src/components/app/details/appDetails/AppMetrics.tsx @@ -15,11 +15,17 @@ */ import React, { useState, useEffect } from 'react' -import { not, Progressing, ToastManager, ToastVariantType, useAsync } from '@devtron-labs/devtron-fe-common-lib' +import { not, Progressing, ToastManager, ToastVariantType, useAsync, useTheme } from '@devtron-labs/devtron-fe-common-lib' import { useParams, Link, NavLink } from 'react-router-dom' import moment, { Moment } from 'moment' import Tippy from '@tippyjs/react' -import { getIframeSrc, ThroughputSelect, getCalendarValue, isK8sVersionValid, LatencySelect } from './utils' +import { + getIframeSrc, + ThroughputSelect, + getCalendarValue, + isK8sVersionValid, + LatencySelect, +} from './utils' import { ChartTypes, AppMetricsTab, @@ -31,7 +37,7 @@ import { CalendarFocusInputType, AppDetailsPathParams, } from './appDetails.type' -import { GraphModal } from './GraphsModal' +import { GraphModal, GraphModalProps } from './GraphsModal' import { DatePickerType2 as DateRangePicker } from '../../../common' import { ReactComponent as GraphIcon } from '../../../../assets/icons/ic-graph.svg' import { ReactComponent as Fullscreen } from '../../../../assets/icons/ic-fullscreen-2.svg' @@ -59,6 +65,7 @@ export const AppMetrics: React.FC<{ k8sVersion addExtraSpace: boolean }> = ({ appName, environment, podMap, k8sVersion, addExtraSpace }) => { + const { appTheme } = useTheme() const { appMetrics, environmentName, infraMetrics } = environment const [calendar, setDateRange] = useState<{ startDate: Moment; endDate: Moment }>({ startDate: moment().subtract(5, 'minute'), @@ -162,6 +169,11 @@ export const AppMetrics: React.FC<{ setCalendarValue(str) } + const getIframeSrcWrapper: GraphModalProps['getIframeSrcWrapper'] = (params) => getIframeSrc({ + ...params, + grafanaTheme: appTheme, + }) + function handleStatusChange(selected): void { if (!isK8sVersionValid(k8sVersion)) { k8sVersion = DEFAULTK8SVERSION @@ -173,7 +185,14 @@ export const AppMetrics: React.FC<{ newPodHash, k8sVersion, } - const throughput = getIframeSrc(appInfo, ChartType.Status, calendarInputs, tab, true, selected.value) + const throughput = getIframeSrcWrapper({ + appInfo, + chartName: ChartType.Status, + calendarInputs, + tab, + isLegendRequired: true, + statusCode: selected.value + }) setStatusCode(selected.value) setGraphs({ ...graphs, @@ -192,7 +211,9 @@ export const AppMetrics: React.FC<{ newPodHash, k8sVersion, } - const latency = getIframeSrc(appInfo, ChartType.Latency, calendarInputs, tab, true, undefined, selected.value) + const latency = getIframeSrcWrapper({ + appInfo, chartName: ChartType.Latency, calendarInputs, tab, isLegendRequired: true, statusCode: undefined, latency: selected.value + }) setLatency(selected.value) setGraphs({ ...graphs, @@ -222,18 +243,29 @@ export const AppMetrics: React.FC<{ newPodHash, k8sVersion, } - const cpu = getIframeSrc(appInfo, ChartType.Cpu, calendarInputs, newTab, true) - const ram = getIframeSrc(appInfo, ChartType.Ram, calendarInputs, newTab, true) - const latency = getIframeSrc( + const cpu = getIframeSrcWrapper({ + appInfo, chartName: ChartType.Cpu, calendarInputs, tab: newTab, isLegendRequired: true + }) + const ram = getIframeSrcWrapper({ + appInfo, chartName: ChartType.Ram, calendarInputs, tab: newTab, isLegendRequired: true + }) + const latency = getIframeSrcWrapper({ appInfo, - ChartType.Latency, + chartName: ChartType.Latency, calendarInputs, - newTab, - true, - undefined, - selectedLatency, - ) - const throughput = getIframeSrc(appInfo, ChartType.Status, calendarInputs, newTab, true, StatusType.Throughput) + tab: newTab, + isLegendRequired: true, + statusCode: undefined, + latency: selectedLatency, + }) + const throughput = getIframeSrcWrapper({ + appInfo, + chartName: ChartType.Status, + calendarInputs, + tab: newTab, + isLegendRequired: true, + statusCode: StatusType.Throughput + }) setGraphs({ cpu, ram, @@ -254,9 +286,8 @@ export const AppMetrics: React.FC<{ useEffect(() => { getNewGraphs(tab) - }, [datasource, calendarValue]) + }, [datasource, calendarValue, appTheme]) - // @ts-ignore if (grafanaModuleStatus?.result?.status !== ModuleStatus.INSTALLED) { return } @@ -325,6 +356,7 @@ export const AppMetrics: React.FC<{ k8sVersion={k8sVersion} selectedLatency={selectedLatency} close={() => setChartName(null)} + getIframeSrcWrapper={getIframeSrcWrapper} /> ) : null}
diff --git a/src/components/app/details/appDetails/GraphsModal.tsx b/src/components/app/details/appDetails/GraphsModal.tsx index 94c0c6ca26..0d76e36d2d 100644 --- a/src/components/app/details/appDetails/GraphsModal.tsx +++ b/src/components/app/details/appDetails/GraphsModal.tsx @@ -20,7 +20,13 @@ import { VisibleModal } from '@devtron-labs/devtron-fe-common-lib' import { ReactComponent as Close } from '../../../../assets/icons/ic-close.svg' import { DatePickerType2 as DateRangePicker } from '../../../common' import { AppMetricsTabType, ChartType, StatusType, ChartTypes, StatusTypes, AppMetricsTab } from './appDetails.type' -import { getIframeSrc, isK8sVersionValid, ThroughputSelect, getCalendarValue, LatencySelect } from './utils' +import { + getIframeSrc, + isK8sVersionValid, + ThroughputSelect, + getCalendarValue, + LatencySelect, +} from './utils' import { ReactComponent as GraphIcon } from '../../../../assets/icons/ic-graph.svg' import { DEFAULTK8SVERSION } from '../../../../config' @@ -47,6 +53,9 @@ export interface GraphModalProps { k8sVersion: string selectedLatency: number close: () => void + getIframeSrcWrapper: ( + params: Omit[0], 'grafanaTheme'>, + ) => ReturnType } interface GraphModalState { @@ -133,58 +142,62 @@ export class GraphModal extends Component { k8sVersion, } - const cpu = getIframeSrc(appInfo, ChartType.Cpu, this.state.calendarInputs, tab, false) - const ram = getIframeSrc(appInfo, ChartType.Ram, this.state.calendarInputs, tab, false) - const latency = getIframeSrc( + const cpu = this.props.getIframeSrcWrapper({ + appInfo, chartName: ChartType.Cpu, calendarInputs: this.state.calendarInputs, tab, isLegendRequired: false + }) + const ram = this.props.getIframeSrcWrapper({ + appInfo, chartName: ChartType.Ram, calendarInputs: this.state.calendarInputs, tab, isLegendRequired: false + }) + const latency = this.props.getIframeSrcWrapper({ appInfo, - ChartType.Latency, - this.state.calendarInputs, + chartName: ChartType.Latency, + calendarInputs: this.state.calendarInputs, tab, - false, - undefined, - this.state.selectedLatency, - ) - const status2xx = getIframeSrc( + isLegendRequired: false, + statusCode: undefined, + latency: this.state.selectedLatency, + }) + const status2xx = this.props.getIframeSrcWrapper({ appInfo, - ChartType.Status, - this.state.calendarInputs, + chartName: ChartType.Status, + calendarInputs: this.state.calendarInputs, tab, - false, - StatusType.status2xx, - ) - const status4xx = getIframeSrc( + isLegendRequired: false, + statusCode: StatusType.status2xx, + }) + const status4xx = this.props.getIframeSrcWrapper({ appInfo, - ChartType.Status, - this.state.calendarInputs, + chartName: ChartType.Status, + calendarInputs: this.state.calendarInputs, tab, - false, - StatusType.status4xx, - ) - const status5xx = getIframeSrc( + isLegendRequired: false, + statusCode: StatusType.status4xx, + }) + const status5xx = this.props.getIframeSrcWrapper({ appInfo, - ChartType.Status, - this.state.calendarInputs, + chartName: ChartType.Status, + calendarInputs: this.state.calendarInputs, tab, - false, - StatusType.status5xx, - ) - const throughput = getIframeSrc( + isLegendRequired: false, + statusCode: StatusType.status5xx, + }) + const throughput = this.props.getIframeSrcWrapper({ appInfo, - ChartType.Status, - this.state.calendarInputs, + chartName: ChartType.Status, + calendarInputs: this.state.calendarInputs, tab, - false, - StatusType.Throughput, - ) - const mainChartUrl = getIframeSrc( + isLegendRequired: false, + statusCode: StatusType.Throughput, + }) + const mainChartUrl = this.props.getIframeSrcWrapper({ appInfo, - this.state.mainChartName, - this.state.calendarInputs, + chartName: this.state.mainChartName, + calendarInputs: this.state.calendarInputs, tab, - true, - this.state.statusCode, - this.state.selectedLatency, - ) + isLegendRequired: true, + statusCode: this.state.statusCode, + latency: this.state.selectedLatency, + }) return { cpu, ram, throughput, status2xx, status4xx, status5xx, latency, mainChartUrl } } @@ -309,15 +322,15 @@ export class GraphModal extends Component { newPodHash: this.props.newPodHash, k8sVersion, } - return getIframeSrc( + return this.props.getIframeSrcWrapper({ appInfo, - chartType, - this.state.calendarInputs, - this.state.tab, - true, + chartName: chartType, + calendarInputs: this.state.calendarInputs, + tab: this.state.tab, + isLegendRequired: true, statusCode, - selectedLatency, - ) + latency: selectedLatency, + }) } render() { diff --git a/src/components/app/details/appDetails/LoadingCard.tsx b/src/components/app/details/appDetails/LoadingCard.tsx index c8c5569f8a..42cb6a9fc7 100644 --- a/src/components/app/details/appDetails/LoadingCard.tsx +++ b/src/components/app/details/appDetails/LoadingCard.tsx @@ -20,7 +20,7 @@ const LoadingCard = ({ wider }: LoadingCardType) => (
-
+
diff --git a/src/components/app/details/appDetails/appDetails.scss b/src/components/app/details/appDetails/appDetails.scss index aad262c810..547ece9531 100644 --- a/src/components/app/details/appDetails/appDetails.scss +++ b/src/components/app/details/appDetails/appDetails.scss @@ -786,8 +786,11 @@ table.pod__table td:last-child { &.f-progressing, &.f-inprogress, - &.f-unknown, &.initiated { + color: var(--O500); + } + + &.f-unknown { color: var(--Y500); } @@ -1774,7 +1777,7 @@ table.resource-tree { .dc__app-summary__icon { &.healthy { background-size: contain, contain; - background: url(../../../../assets/icons/appstatus/ic-heart-green.svg), transparent; + background: url('../../../../assets/icons/appstatus/ic-heart-green.svg'), transparent; } } diff --git a/src/components/app/details/appDetails/types.ts b/src/components/app/details/appDetails/types.ts new file mode 100644 index 0000000000..cd45474e4b --- /dev/null +++ b/src/components/app/details/appDetails/types.ts @@ -0,0 +1,13 @@ +import { AppMetricsTabType, ChartTypes, StatusTypes } from './appDetails.type' +import { AppInfo } from './utils' + +export interface GetIFrameSrcParamsType { + appInfo: AppInfo + chartName: ChartTypes + calendarInputs + tab: AppMetricsTabType + isLegendRequired: boolean + statusCode?: StatusTypes + latency?: number + grafanaTheme: 'light' | 'dark' +} diff --git a/src/components/app/details/appDetails/utils.tsx b/src/components/app/details/appDetails/utils.tsx index c5b5742d14..c289ba2c77 100644 --- a/src/components/app/details/appDetails/utils.tsx +++ b/src/components/app/details/appDetails/utils.tsx @@ -21,6 +21,7 @@ import { AggregationKeys } from '../../types' import { getVersionArr, isVersionLessThanOrEqualToTarget, DayPickerRangeControllerPresets } from '../../../common' import { ChartTypes, AppMetricsTabType, StatusType, StatusTypes } from './appDetails.type' import { ZERO_TIME_STRING, Nodes, NodeType, ACTION_STATE, ButtonStyleType, SelectPicker, SelectPickerProps, SelectPickerVariantType } from '@devtron-labs/devtron-fe-common-lib' +import { GetIFrameSrcParamsType } from './types' export function getAggregator(nodeType: NodeType, defaultAsOtherResources?: boolean): AggregationKeys { switch (nodeType) { @@ -172,15 +173,16 @@ export interface AppInfo { k8sVersion: string } -export function getIframeSrc( - appInfo: AppInfo, - chartName: ChartTypes, +export function getIframeSrc({ + appInfo, + chartName, calendarInputs, - tab: AppMetricsTabType, - isLegendRequired: boolean, - statusCode?: StatusTypes, - latency?: number, -): string { + tab, + isLegendRequired, + statusCode, + latency, + grafanaTheme = 'light', +}: GetIFrameSrcParamsType): string { const baseURL = getGrafanaBaseURL(chartName) let grafanaURL = addChartNameExtensionToBaseURL(baseURL, appInfo.k8sVersion, chartName, statusCode) grafanaURL = addQueryParamToGrafanaURL( @@ -193,6 +195,7 @@ export function getIframeSrc( calendarInputs, tab, isLegendRequired, + grafanaTheme, statusCode, latency, ) @@ -300,6 +303,7 @@ export function addQueryParamToGrafanaURL( calendarInputs, tab: AppMetricsTabType, isLegendRequired: boolean, + grafanaTheme: GetIFrameSrcParamsType['grafanaTheme'], statusCode?: StatusTypes, latency?: number, ): string { @@ -333,7 +337,7 @@ export function addQueryParamToGrafanaURL( panelId = tab === 'aggregate' ? 4 : 5 } url += `&from=${startTime}&to=${endTime}` - url += `&panelId=${panelId}` + url += `&panelId=${panelId}&theme=${grafanaTheme}` return url } diff --git a/src/components/app/details/triggerView/workflow/nodes/TriggerLinkedCINode.tsx b/src/components/app/details/triggerView/workflow/nodes/TriggerLinkedCINode.tsx index a5600045b3..d069579776 100644 --- a/src/components/app/details/triggerView/workflow/nodes/TriggerLinkedCINode.tsx +++ b/src/components/app/details/triggerView/workflow/nodes/TriggerLinkedCINode.tsx @@ -114,9 +114,6 @@ export class TriggerLinkedCINode extends Component { className={`workflow-node__trigger-type workflow-node-trigger-type--external-ci ${ this.props.isCITriggerBlocked ? 'flex bcr-1 er-2 bw-1 cr-5' : '' }`} - style={{ - opacity: this.props.isCITriggerBlocked ? 1 : 0.4, - }} > {this.props.isCITriggerBlocked ? 'BLOCKED' : this.props.triggerType}
diff --git a/src/components/app/details/triggerView/workflow/nodes/workflow.utils.tsx b/src/components/app/details/triggerView/workflow/nodes/workflow.utils.tsx index c1222e2c21..903712228b 100644 --- a/src/components/app/details/triggerView/workflow/nodes/workflow.utils.tsx +++ b/src/components/app/details/triggerView/workflow/nodes/workflow.utils.tsx @@ -48,7 +48,7 @@ export const getNodeSideHeadingAndClass = ( } if (isDeploymentBlocked) { - return { heading: DO_NOT_DEPLOY, className: 'bcy-5 cn-9 dc__opacity-1' } + return { heading: DO_NOT_DEPLOY, className: 'bcy-5 text__black--imp dc__opacity-1' } } return { heading: triggerType, className: '' } diff --git a/src/components/app/list/list.scss b/src/components/app/list/list.scss index c9ba84cb53..31d882b306 100644 --- a/src/components/app/list/list.scss +++ b/src/components/app/list/list.scss @@ -182,15 +182,6 @@ color: var(--B500); } -.app-list__cell--status { - position: relative; - overflow: visible; -} - -.app-list__cell--status .bg { - background-image: url('../../../assets/icons/appstatus/bg-white.svg'); -} - .app-list__cell--env, .app-list__cell--cluster, .app-list__cell--namespace, @@ -361,10 +352,6 @@ background-color: var(--bg-secondary); } -.app-list__row:hover .app-list__cell--status .bg { - background-image: url('../../../assets/icons/appstatus/bg-gray.svg'); -} - .app-list__row:hover .cell__link { color: var(--B500); font-weight: 600; diff --git a/src/components/charts/list/list.scss b/src/components/charts/list/list.scss index a00fa6ee8d..d3989c94dc 100644 --- a/src/components/charts/list/list.scss +++ b/src/components/charts/list/list.scss @@ -517,6 +517,7 @@ .chart-group-list-page__body { height: 100%; overflow: auto; + background-color: var(--bg-secondary); } } diff --git a/src/components/ciConfig/CIAdvancedConfig.tsx b/src/components/ciConfig/CIAdvancedConfig.tsx index 6a3832f79f..4b41cb01b1 100644 --- a/src/components/ciConfig/CIAdvancedConfig.tsx +++ b/src/components/ciConfig/CIAdvancedConfig.tsx @@ -112,7 +112,7 @@ export default function CIAdvancedConfig({ className="flex left cursor mb-20" data-testid="advanced-option-drop-down-button" > -
+
diff --git a/src/components/ciPipeline/LinkedCIPipelineEdit.tsx b/src/components/ciPipeline/LinkedCIPipelineEdit.tsx index 4aa3a97f16..a428af98f9 100644 --- a/src/components/ciPipeline/LinkedCIPipelineEdit.tsx +++ b/src/components/ciPipeline/LinkedCIPipelineEdit.tsx @@ -168,11 +168,11 @@ export default class LinkedCIPipeline extends Component ({ - ...base, + ...multiSelectStyles.control(base, state), cursor: 'pointer', }), menu: (base, state) => ({ - ...base, + ...multiSelectStyles.menu(base, state), marginTop: 'auto', zIndex: 4, }), @@ -185,7 +185,7 @@ export default class LinkedCIPipeline extends Component ({ - ...base, + ...multiSelectStyles.valueContainer(base, state), color: 'var(--N900)', background: state.isDisabled ? 'var(--N100) !important' : 'var(--N50) !important', }), diff --git a/src/components/ciPipeline/ciPipeline.scss b/src/components/ciPipeline/ciPipeline.scss index b3b35e0051..e8feb1b9a3 100644 --- a/src/components/ciPipeline/ciPipeline.scss +++ b/src/components/ciPipeline/ciPipeline.scss @@ -87,7 +87,7 @@ padding: 14px 16px; display: flex; background-blend-mode: multiply; - background-image: linear-gradient(to bottom, var(--bg-window), var(--bg-window)); + background-image: linear-gradient(to bottom, var(--bg-tertiary), var(--bg-tertiary)); border-top: solid 1px var(--N200); border-radius: 0 0 4px 4px; } diff --git a/src/components/cluster/Cluster.tsx b/src/components/cluster/Cluster.tsx index 5ec75990dc..ba4c67b636 100644 --- a/src/components/cluster/Cluster.tsx +++ b/src/components/cluster/Cluster.tsx @@ -653,7 +653,8 @@ const Cluster = ({
diff --git a/src/components/common/DatePickers/Calender.tsx b/src/components/common/DatePickers/Calender.tsx index 17dac12f2d..51a6cdded6 100644 --- a/src/components/common/DatePickers/Calender.tsx +++ b/src/components/common/DatePickers/Calender.tsx @@ -73,7 +73,7 @@ const styless = { }, PresetDateRangePicker_button: { width: '178px', - background: 'var(--bg-primary)', + background: 'var(--transparent)', border: 'none', color: 'var(--N900)', padding: '8px', diff --git a/src/components/common/DatePickers/DayPickerRangeController.tsx b/src/components/common/DatePickers/DayPickerRangeController.tsx index fdff154551..7ec1314c30 100644 --- a/src/components/common/DatePickers/DayPickerRangeController.tsx +++ b/src/components/common/DatePickers/DayPickerRangeController.tsx @@ -78,7 +78,7 @@ const styless = { }, PresetDateRangePicker_button: { width: '188px', - background: 'var(--bg-primary)', + background: 'var(--transparent)', border: 'none', color: 'var(--N900)', padding: '8px', @@ -152,13 +152,13 @@ export class DatePickerType2 extends Component { }} >
-

Pick timerange

+

Pick time range