From 07900172e7f03e2713b8daaf806fd3c3cc204670 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 18:16:04 +0300 Subject: [PATCH 01/16] feat: add valid icon to sync card --- src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx | 7 +++++-- src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx index d14be47d..6da30f75 100644 --- a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx +++ b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx @@ -1,6 +1,9 @@ import { Separator, XStack, YStack } from 'tamagui' -import { formatNumberForGauge } from '../../../utilities' import { Text } from '@status-im/components' +import { SwapIcon } from '@status-im/icons' + +import { formatNumberForGauge } from '../../../utilities' +import IconText from '../../../components/General/IconText' type SyncCardContentProps = { title: string @@ -16,7 +19,7 @@ const SyncCardContent = ({ title, value, total }: SyncCardContentProps) => { - {/* }>Syncing */} + }>Syncing {formatNumberForGauge(value)} / {formatNumberForGauge(total)} diff --git a/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx b/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx index bd2c6509..c4e05531 100644 --- a/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx +++ b/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx @@ -1,8 +1,8 @@ import { Separator, YStack } from 'tamagui' +import { Text } from '@status-im/components' import SyncCardContent from './SyncCardContent' import DashboardCardWrapper from '../DashboardCardWrapper' -import { Text } from '@status-im/components' const SyncStatusCard = () => { return ( From acb6b36649c9eaea84c781d706c51ec8abdd778a Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 18:18:53 +0300 Subject: [PATCH 02/16] fix: toFixed number from formatting function --- src/utilities.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utilities.ts b/src/utilities.ts index 257a21e5..d2cc79a9 100644 --- a/src/utilities.ts +++ b/src/utilities.ts @@ -24,5 +24,5 @@ export const convertSecondsToTimerFormat = (seconds: number) => { } export const formatNumberForGauge = (n: number): string => { - return n.toString().replace(/\./g, ',') + return n.toFixed(3).replace(/\./g, ',') } From 7cea165151f66d496aee50854fc56e74e4c5b2e6 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 18:33:27 +0300 Subject: [PATCH 03/16] fix: change format number func name --- src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx | 4 ++-- src/pages/DeviceSyncStatus/SyncStatusCardConsensus.tsx | 4 ++-- src/pages/DeviceSyncStatus/SyncStatusCardExecution.tsx | 4 ++-- .../ValidatorOnboarding/Activation/ActivationSyncCard.tsx | 4 ++-- .../KeyGenerationHeader/KeyGenerationSyncCard.tsx | 4 ++-- .../ValidatorSetup/ConsensusClient/ConsensusGaugeCard.tsx | 4 ++-- src/utilities.ts | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx index 6da30f75..ab3a29a9 100644 --- a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx +++ b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx @@ -2,7 +2,7 @@ import { Separator, XStack, YStack } from 'tamagui' import { Text } from '@status-im/components' import { SwapIcon } from '@status-im/icons' -import { formatNumberForGauge } from '../../../utilities' +import { formatNumberWithComa } from '../../../utilities' import IconText from '../../../components/General/IconText' type SyncCardContentProps = { @@ -21,7 +21,7 @@ const SyncCardContent = ({ title, value, total }: SyncCardContentProps) => { }>Syncing - {formatNumberForGauge(value)} / {formatNumberForGauge(total)} + {formatNumberWithComa(value)} / {formatNumberWithComa(total)} diff --git a/src/pages/DeviceSyncStatus/SyncStatusCardConsensus.tsx b/src/pages/DeviceSyncStatus/SyncStatusCardConsensus.tsx index ab4594ee..9f4fa8fb 100644 --- a/src/pages/DeviceSyncStatus/SyncStatusCardConsensus.tsx +++ b/src/pages/DeviceSyncStatus/SyncStatusCardConsensus.tsx @@ -5,7 +5,7 @@ import Icon from '../../components/General/Icon' import StandardGauge from '../../components/Charts/StandardGauge' import IconText from '../../components/General/IconText' import { TokenIcon } from '@status-im/icons' -import { formatNumberForGauge } from '../../utilities' +import { formatNumberWithComa } from '../../utilities' interface DeviceStorageHealthProps { synced: number @@ -72,7 +72,7 @@ const SyncStatusCardConsensus: React.FC = ({ synced, t }>{message} - {formatNumberForGauge(synced)} / {formatNumberForGauge(total)} + {formatNumberWithComa(synced)} / {formatNumberWithComa(total)} diff --git a/src/pages/DeviceSyncStatus/SyncStatusCardExecution.tsx b/src/pages/DeviceSyncStatus/SyncStatusCardExecution.tsx index 9a514964..6584ad63 100644 --- a/src/pages/DeviceSyncStatus/SyncStatusCardExecution.tsx +++ b/src/pages/DeviceSyncStatus/SyncStatusCardExecution.tsx @@ -3,7 +3,7 @@ import { Shadow, Text } from '@status-im/components' import StandardGauge from '../../components/Charts/StandardGauge' import IconText from '../../components/General/IconText' import { TokenIcon } from '@status-im/icons' -import { formatNumberForGauge } from '../../utilities' +import { formatNumberWithComa } from '../../utilities' interface DeviceStorageHealthProps { synced: number @@ -73,7 +73,7 @@ const SyncStatusCardExecution: React.FC = ({ synced, t }>{message} - {formatNumberForGauge(synced)} / {formatNumberForGauge(total)} + {formatNumberWithComa(synced)} / {formatNumberWithComa(total)} diff --git a/src/pages/ValidatorOnboarding/Activation/ActivationSyncCard.tsx b/src/pages/ValidatorOnboarding/Activation/ActivationSyncCard.tsx index 0a548ba1..c2329c79 100644 --- a/src/pages/ValidatorOnboarding/Activation/ActivationSyncCard.tsx +++ b/src/pages/ValidatorOnboarding/Activation/ActivationSyncCard.tsx @@ -1,7 +1,7 @@ import { Stack, XStack, YStack } from 'tamagui' import StandardGauge from '../../../components/Charts/StandardGauge' import { Text } from '@status-im/components' -import { formatNumberForGauge } from '../../../utilities' +import { formatNumberWithComa } from '../../../utilities' type ActivationSyncCardProps = { gaugeColor: string @@ -37,7 +37,7 @@ const ActivationSyncCard = ({ gaugeColor, gaugeSynced, gaugeTotal }: ActivationS - {formatNumberForGauge(gaugeSynced)} / {formatNumberForGauge(gaugeTotal)} + {formatNumberWithComa(gaugeSynced)} / {formatNumberWithComa(gaugeTotal)} diff --git a/src/pages/ValidatorOnboarding/KeyGeneration/KeyGenerationHeader/KeyGenerationSyncCard.tsx b/src/pages/ValidatorOnboarding/KeyGeneration/KeyGenerationHeader/KeyGenerationSyncCard.tsx index 32151617..0ee1ad06 100644 --- a/src/pages/ValidatorOnboarding/KeyGeneration/KeyGenerationHeader/KeyGenerationSyncCard.tsx +++ b/src/pages/ValidatorOnboarding/KeyGeneration/KeyGenerationHeader/KeyGenerationSyncCard.tsx @@ -4,7 +4,7 @@ import { Text } from '@status-im/components' import StandardGauge from '../../../../components/Charts/StandardGauge' import BorderBox from '../../../../components/General/BorderBox' -import { formatNumberForGauge } from '../../../../utilities' +import { formatNumberWithComa } from '../../../../utilities' type KeyGenerationSyncCardProps = { synced: number @@ -45,7 +45,7 @@ const KeyGenerationSyncCard = ({ synced, total, title, color }: KeyGenerationSyn {title} - {formatNumberForGauge(synced)} / {formatNumberForGauge(total)} + {formatNumberWithComa(synced)} / {formatNumberWithComa(total)} diff --git a/src/pages/ValidatorOnboarding/ValidatorSetup/ConsensusClient/ConsensusGaugeCard.tsx b/src/pages/ValidatorOnboarding/ValidatorSetup/ConsensusClient/ConsensusGaugeCard.tsx index 6118d2d8..254191b4 100644 --- a/src/pages/ValidatorOnboarding/ValidatorSetup/ConsensusClient/ConsensusGaugeCard.tsx +++ b/src/pages/ValidatorOnboarding/ValidatorSetup/ConsensusClient/ConsensusGaugeCard.tsx @@ -4,7 +4,7 @@ import { Text } from '@status-im/components' import StandardGauge from '../../../../components/Charts/StandardGauge' import BorderBox from '../../../../components/General/BorderBox' -import { formatNumberForGauge } from '../../../../utilities' +import { formatNumberWithComa } from '../../../../utilities' type ConsensusGaugeCardProps = { synced: number @@ -45,7 +45,7 @@ const ConsensusGaugeCard = ({ synced, total, title, color }: ConsensusGaugeCardP {title} - {formatNumberForGauge(synced)} / {formatNumberForGauge(total)} + {formatNumberWithComa(synced)} / {formatNumberWithComa(total)} diff --git a/src/utilities.ts b/src/utilities.ts index d2cc79a9..56230e26 100644 --- a/src/utilities.ts +++ b/src/utilities.ts @@ -23,6 +23,6 @@ export const convertSecondsToTimerFormat = (seconds: number) => { return `${String(minutes).padStart(2, '0')}:${String(remainingSeconds).padStart(2, '0')}` } -export const formatNumberForGauge = (n: number): string => { +export const formatNumberWithComa = (n: number): string => { return n.toFixed(3).replace(/\./g, ',') } From b3e0cd5365cb882e254cfb6c886bb8993ee7abe6 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 19:04:43 +0300 Subject: [PATCH 04/16] fix: small style change to sync card --- .../Dashboard/SyncStatusCard/SyncStatusCard.tsx | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx b/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx index c4e05531..df0f4647 100644 --- a/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx +++ b/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx @@ -1,4 +1,4 @@ -import { Separator, YStack } from 'tamagui' +import { Separator, Stack, YStack } from 'tamagui' import { Text } from '@status-im/components' import SyncCardContent from './SyncCardContent' @@ -8,13 +8,15 @@ const SyncStatusCard = () => { return ( - - Sync Status - + + + Sync Status + + - + - + From 76709aba998ef6a814b2059148c2e0daf8fbf7f7 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 19:28:22 +0300 Subject: [PATCH 05/16] feat: style sync card content component --- .../SyncStatusCard/SyncCardContent.tsx | 46 +++++++++++++------ 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx index ab3a29a9..ab38bc36 100644 --- a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx +++ b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.tsx @@ -1,6 +1,7 @@ -import { Separator, XStack, YStack } from 'tamagui' -import { Text } from '@status-im/components' +import { Separator, Stack, XStack, YStack } from 'tamagui' +import { Shadow, Text } from '@status-im/components' import { SwapIcon } from '@status-im/icons' +import { CSSProperties } from 'react' import { formatNumberWithComa } from '../../../utilities' import IconText from '../../../components/General/IconText' @@ -9,22 +10,37 @@ type SyncCardContentProps = { title: string value: number total: number + isTop?: boolean } -const SyncCardContent = ({ title, value, total }: SyncCardContentProps) => { +const SyncCardContent = ({ title, value, total, isTop }: SyncCardContentProps) => { + const style: CSSProperties = {} + + if (isTop === true) { + style.borderTopLeftRadius = '16px' + style.borderTopRightRadius = '16px' + } else if (isTop === false) { + style.borderBottomLeftRadius = '16px' + style.borderBottomRightRadius = '16px' + } + return ( - - - {title} - - - - }>Syncing - - {formatNumberWithComa(value)} / {formatNumberWithComa(total)} - - - + + + + + {title} + + + + + }>Syncing + + {formatNumberWithComa(value)} / {formatNumberWithComa(total)} + + + + ) } From ba1471861756f244baf5a952f59acb8e0c1668f9 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 19:33:50 +0300 Subject: [PATCH 06/16] fix: remove useless .0 --- src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx | 4 ++-- src/pages/DeviceSyncStatus/DeviceSyncStatus.tsx | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx b/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx index df0f4647..7cb2efa5 100644 --- a/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx +++ b/src/pages/Dashboard/SyncStatusCard/SyncStatusCard.tsx @@ -14,9 +14,9 @@ const SyncStatusCard = () => { - + - + diff --git a/src/pages/DeviceSyncStatus/DeviceSyncStatus.tsx b/src/pages/DeviceSyncStatus/DeviceSyncStatus.tsx index e9c9b5c9..c5e027e7 100644 --- a/src/pages/DeviceSyncStatus/DeviceSyncStatus.tsx +++ b/src/pages/DeviceSyncStatus/DeviceSyncStatus.tsx @@ -40,8 +40,8 @@ const DeviceSyncStatus = () => { subtitle="Monitor your Validator Client and Beacon Node syncing progression." /> - - + + From d728d24c0b8671cad0e3ba4c26e1216ef5dbf60a Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 20:06:21 +0300 Subject: [PATCH 07/16] feat: add story examples for sync card content --- .../SyncStatusCard/SyncCardContent.stories.ts | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.stories.ts b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.stories.ts index cfd2a8da..4fc26b5d 100644 --- a/src/pages/Dashboard/SyncStatusCard/SyncCardContent.stories.ts +++ b/src/pages/Dashboard/SyncStatusCard/SyncCardContent.stories.ts @@ -14,6 +14,38 @@ const meta = { export default meta type Story = StoryObj -export const Default: Story = { - args: { title: 'Sync Status', total: 113220, value: 50000 }, +export const ExecutionClient: Story = { + args: { title: 'Execution Client', value: 123.424, total: 170, isTop: true }, +} + +export const ConsensusClient: Story = { + args: { title: 'Consensus Client', value: 123.424, total: 170, isTop: false }, +} + +export const WithoutTitle: Story = { + args: { title: '', value: 123.424, total: 170 }, +} + +export const WithZeroValue: Story = { + args: { title: 'Consensus Client', value: 0, total: 170 }, +} + +export const WithZeroTotal: Story = { + args: { title: 'Consensus Client', value: 123.424, total: 0 }, +} + +export const WithZeroValueAndTotal: Story = { + args: { title: 'Consensus Client', value: 0, total: 0 }, +} + +export const WithoutValues: Story = { + args: { title: '', value: 0, total: 0 }, +} + +export const WithTopBorders: Story = { + args: { title: '', value: 0, total: 0, isTop: true }, +} + +export const WithBottomBorders: Story = { + args: { title: '', value: 0, total: 0, isTop: false }, } From 83ed4079b112d9d5b78792bb5ea76430057616eb Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 20:12:56 +0300 Subject: [PATCH 08/16] feat: add dashboard logo image --- public/icons/dashboard-logo.png | Bin 0 -> 109193 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 public/icons/dashboard-logo.png diff --git a/public/icons/dashboard-logo.png b/public/icons/dashboard-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..4f8e5554fe525332f9a8fb2908f972181a0a4910 GIT binary patch literal 109193 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 Date: Fri, 15 Sep 2023 20:44:05 +0300 Subject: [PATCH 09/16] fix: format dashboard code --- .../BalanceLineChart/BalanceChardCard.tsx | 162 +++++++++++------- .../Dashboard/BalanceLineChart/LineChart.tsx | 77 ++++----- src/pages/Dashboard/CPULoad/CPUCard.tsx | 144 ++++++++-------- .../ConsensusUptime/ConsensusUptimeCard.tsx | 157 +++++++++-------- .../ExecutionUptime/ExecutionUptime.tsx | 137 ++++++++------- .../Dashboard/UptimeChart/UptimeChart.tsx | 39 ++--- 6 files changed, 386 insertions(+), 330 deletions(-) diff --git a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx b/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx index 981d9a64..00319629 100644 --- a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx +++ b/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx @@ -1,73 +1,105 @@ -import './calendar.css' -import { Stack, XStack, YStack } from "tamagui"; -import DashboardCardWrapper from "../DashboardCardWrapper"; -import { Text } from "@status-im/components"; -import LineChart from "./LineChart"; -import Icon from "../../../components/General/Icon"; -import { DateRange } from 'react-day-picker'; +import { useState } from 'react' +import { Stack, XStack, YStack } from 'tamagui' import { Calendar } from '@status-im/components' -import { useState } from "react"; +import { Text } from '@status-im/components' +import { DateRange } from 'react-day-picker' +import DashboardCardWrapper from '../DashboardCardWrapper' +import LineChart from './LineChart' +import Icon from '../../../components/General/Icon' +import './calendar.css' const years = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEPT', 'OCT', 'NOV', 'DEC'] -const userGains = [10000, 15000, 17500, 20000, 19000, 23222, 25000, 20000, 20000, 21000, 22300, 21000] +const userGains = [ + 10000, 15000, 17500, 20000, 19000, 23222, 25000, 20000, 20000, 21000, 22300, 21000, +] const getMonthIndicesFromRange = (range: DateRange) => { - if (!range.from || !range.to) return [0, 11]; + if (!range.from || !range.to) return [0, 11] - return [range.from.getMonth(), range.to.getMonth()]; -}; -const BalanceChardCard = () => { - const [isCalendarVisible, setIsCalendarVisible] = useState(false) - const [dateRange, setDateRange] = useState({ from: undefined, to: undefined }); - const [startMonth, endMonth] = getMonthIndicesFromRange(dateRange); - const filteredYears = years.slice(startMonth, endMonth + 1); - const filteredUserGains = userGains.slice(startMonth, endMonth + 1); - - const handleRangeSelect = ( - range: DateRange | undefined, - // @NOTE: You can take selectedDay: Date, - ) => { - if (!range) { - setDateRange({ from: undefined, to: undefined }); - return; - } - setDateRange(range); - if (range.from && range.to) { - setIsCalendarVisible(false) - } - }; - - return ( - - - - - - Balance - setIsCalendarVisible(true)}> - 24,273 - 1.56% - - - setIsCalendarVisible((prev) => !prev)} style={{ border: '2px solid #09101C14', height: 'fit-content', padding: '3px', borderRadius: '10px' }}> - {dateRange?.from ? dateRange.from.toLocaleDateString() + ' ->' : 'Start Date -> '} - {dateRange?.to ? dateRange.to.toLocaleDateString() : ' End Date'} - - - - {isCalendarVisible && ( - - )} - - - - - ) + return [range.from.getMonth(), range.to.getMonth()] } -export default BalanceChardCard; + +const BalanceChardCard = () => { + const [isCalendarVisible, setIsCalendarVisible] = useState(false) + const [dateRange, setDateRange] = useState({ from: undefined, to: undefined }) + const [startMonth, endMonth] = getMonthIndicesFromRange(dateRange) + const filteredYears = years.slice(startMonth, endMonth + 1) + const filteredUserGains = userGains.slice(startMonth, endMonth + 1) + + const handleRangeSelect = ( + range: DateRange | undefined, + // @NOTE: You can take selectedDay: Date, + ) => { + if (!range) { + setDateRange({ from: undefined, to: undefined }) + return + } + setDateRange(range) + if (range.from && range.to) { + setIsCalendarVisible(false) + } + } + + return ( + + + + + + + Balance + + setIsCalendarVisible(true)} + > + + 24,273 + + + 1.56% + + + + setIsCalendarVisible(prev => !prev)} + style={{ + border: '2px solid #09101C14', + height: 'fit-content', + padding: '3px', + borderRadius: '10px', + }} + > + + {dateRange?.from ? dateRange.from.toLocaleDateString() + ' ->' : 'Start Date -> '}{' '} + + + {dateRange?.to ? dateRange.to.toLocaleDateString() : ' End Date'} + + + + + {isCalendarVisible && ( + + )} + + + + + ) +} + +export default BalanceChardCard diff --git a/src/pages/Dashboard/BalanceLineChart/LineChart.tsx b/src/pages/Dashboard/BalanceLineChart/LineChart.tsx index f609d033..3acf7a65 100644 --- a/src/pages/Dashboard/BalanceLineChart/LineChart.tsx +++ b/src/pages/Dashboard/BalanceLineChart/LineChart.tsx @@ -1,48 +1,41 @@ import { - Chart as ChartJS, - CategoryScale, - LinearScale, - PointElement, - LineElement, - Filler, -} from 'chart.js'; -import { Line } from 'react-chartjs-2'; - -ChartJS.register( - CategoryScale, - LinearScale, - PointElement, - LineElement, - Filler, -); - + Chart as ChartJS, + CategoryScale, + LinearScale, + PointElement, + LineElement, + Filler, +} from 'chart.js' +import { Line } from 'react-chartjs-2' +ChartJS.register(CategoryScale, LinearScale, PointElement, LineElement, Filler) type LineChartProps = { - years: string[]; - userGains: number[]; -}; -const LineChart = ({ years, userGains }: LineChartProps) => { - const data = { - type: 'line', - labels: years, - datasets: [ - { - data: userGains, - borderColor: '#1992D7', - backgroundColor: '#f6fbfd', - fill: true, - tension: 0.4, - pointRadius: 0, - } - ], - options: { - responsive: true, - maintainAspectRatio: true, - } - - }; - return ; + years: string[] + userGains: number[] } -export default LineChart; +const LineChart = ({ years, userGains }: LineChartProps) => { + const data = { + type: 'line', + labels: years, + datasets: [ + { + data: userGains, + borderColor: '#1992D7', + backgroundColor: '#f6fbfd', + fill: true, + tension: 0.4, + pointRadius: 0, + }, + ], + options: { + responsive: true, + maintainAspectRatio: true, + }, + } + + return +} + +export default LineChart diff --git a/src/pages/Dashboard/CPULoad/CPUCard.tsx b/src/pages/Dashboard/CPULoad/CPUCard.tsx index 1341cbd1..92d6c6b8 100644 --- a/src/pages/Dashboard/CPULoad/CPUCard.tsx +++ b/src/pages/Dashboard/CPULoad/CPUCard.tsx @@ -1,88 +1,96 @@ -import StandartLineChart from '../../../components/Charts/StandardLineChart' -import IconText from '../../../components/General/IconText' import { Paragraph, Separator, XStack, YStack } from 'tamagui' import { Shadow, Text } from '@status-im/components' import { IncorrectIcon } from '@status-im/icons' + +import StandartLineChart from '../../../components/Charts/StandardLineChart' +import IconText from '../../../components/General/IconText' import Icon from '../../../components/General/Icon' type DataPoint = { - x: number - y: number + x: number + y: number } type ChartData = { - id: string - color: string - data: DataPoint[] + id: string + color: string + data: DataPoint[] } type CPUCardProps = { - load: number[] + load: number[] } + const CPUCard = ({ load }: CPUCardProps) => { - const chartData: ChartData[] = [ - { - id: 'cpu', - color: '#8DC6BC', - data: load.map((yValue, index: number) => ({ - x: index + 1, - y: yValue, - })), - }, - ] - const currentLoad = - chartData[0].data.length > 0 ? chartData[0].data[chartData[0].data.length - 1].y : 0 + const chartData: ChartData[] = [ + { + id: 'cpu', + color: '#8DC6BC', + data: load.map((yValue, index: number) => ({ + x: index + 1, + y: yValue, + })), + }, + ] + const currentLoad = + chartData[0].data.length > 0 ? chartData[0].data[chartData[0].data.length - 1].y : 0 - const message = currentLoad < 80 ? 'Good' : 'Poor' + const message = currentLoad < 80 ? 'Good' : 'Poor' - return ( - + + - - -
- -
- - - CPU - - - {currentLoad} GB - - -
- - - : } - weight={'semibold'} - > - {message} - - {message === 'Poor' && ( - - {((currentLoad / 80) * 100).toFixed(0)}% Utilization - - )} - -
-
- ) +
+ +
+ + + CPU + + + {currentLoad} GB + + + + + + + ) : ( + + ) + } + weight={'semibold'} + > + {message} + + {message === 'Poor' && ( + + {((currentLoad / 80) * 100).toFixed(0)}% Utilization + + )} + + + + ) } export default CPUCard diff --git a/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.tsx b/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.tsx index 73536cfc..06921936 100644 --- a/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.tsx +++ b/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.tsx @@ -1,75 +1,86 @@ -import { Shadow, Text } from '@status-im/components'; -import { Stack, XStack, YStack } from 'tamagui'; -import UptimeChart from '../UptimeChart/UptimeChart'; -import Icon from '../../../components/General/Icon'; -const data: DataItem[] = [ - { - // @NOTE: if you want to add name in the XAxis. You need to set the names here - // name: 'Jan', - pv: 1, - pa: 1, - }, - { - // name: 'Feb', - pv: 0, - pa: 0 - }, - { - //name: 'Feb', - pv: 1, - pa: 0 - }, - { - //name: 'Feb', - pv: 0, - pa: 0 - }, - { - //name: 'Feb', - pv: 0, - pa: 0 - }, - { - //name: 'Feb', - pv: 1, - pa: 1 - }, - { - //name: 'Feb', - pv: 1, - pa: 1 - }, -]; -interface DataItem { - name?: string; - pa: number; - pv: number; -} -const ConsensusUptimeCard = () => { - return ( - - - - Consensus Uptime - - 98% - - 1.56% - - - - - - - - +import { Shadow, Text } from '@status-im/components' +import { Stack, XStack, YStack } from 'tamagui' - - ); +import UptimeChart from '../UptimeChart/UptimeChart' +import Icon from '../../../components/General/Icon' + +const data: DataItem[] = [ + { + // @NOTE: if you want to add name in the XAxis. You need to set the names here + // name: 'Jan', + pv: 1, + pa: 1, + }, + { + pv: 0, + pa: 0, + }, + { + pv: 1, + pa: 0, + }, + { + pv: 0, + pa: 0, + }, + { + pv: 0, + pa: 0, + }, + { + pv: 1, + pa: 1, + }, + { + pv: 1, + pa: 1, + }, +] + +type DataItem = { + name?: string + pa: number + pv: number } -export default ConsensusUptimeCard; \ No newline at end of file + +const ConsensusUptimeCard = () => { + return ( + + + + + Consensus Uptime + + + + 98% + + + + 1.56% + + + + + + + + + + + ) +} +export default ConsensusUptimeCard diff --git a/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.tsx b/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.tsx index 454051ee..8aade023 100644 --- a/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.tsx +++ b/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.tsx @@ -1,70 +1,85 @@ -import { Shadow, Text } from '@status-im/components'; -import { Stack, XStack, YStack } from 'tamagui'; -import Icon from '../../../components/General/Icon'; -import UptimeChart from '../UptimeChart/UptimeChart'; +import { Shadow, Text } from '@status-im/components' +import { Stack, XStack, YStack } from 'tamagui' + +import Icon from '../../../components/General/Icon' +import UptimeChart from '../UptimeChart/UptimeChart' const data: DataItem[] = [ - { - // @NOTE: if you want to add name in the XAxis. You need to set the names here - pv: 1, - pa: 1, - }, - { - pv: 0, - pa: 0 - }, - { - pv: 0, - pa: 0 - }, - { - pv: 0, - pa: 1 - }, - { - pv: 0, - pa: 0 - }, - { - pv: 1, - pa: 0 - }, - { - pv: 0, - pa: 1 - }, -]; + { + // @NOTE: if you want to add name in the XAxis. You need to set the names here + pv: 1, + pa: 1, + }, + { + pv: 0, + pa: 0, + }, + { + pv: 0, + pa: 0, + }, + { + pv: 0, + pa: 1, + }, + { + pv: 0, + pa: 0, + }, + { + pv: 1, + pa: 0, + }, + { + pv: 0, + pa: 1, + }, +] -interface DataItem { - name?: string; - pa: number; - pv: number; +type DataItem = { + name?: string + pa: number + pv: number } const ExecutionUptime = () => { - return ( - + + + + Execution Uptime + + + + 99% + + + + 2% + + + + + - - - Execution Uptime - - 99% - - 2% - - - - - - - - - - ); + > + + + + + + ) } -export default ExecutionUptime; \ No newline at end of file +export default ExecutionUptime diff --git a/src/pages/Dashboard/UptimeChart/UptimeChart.tsx b/src/pages/Dashboard/UptimeChart/UptimeChart.tsx index c061db48..c49ea97c 100644 --- a/src/pages/Dashboard/UptimeChart/UptimeChart.tsx +++ b/src/pages/Dashboard/UptimeChart/UptimeChart.tsx @@ -1,31 +1,28 @@ - -import { BarChart, Bar, ResponsiveContainer } from 'recharts'; +import { BarChart, Bar, ResponsiveContainer } from 'recharts' // @NOTE: XAxis for months or days // @NOTE: XAxis, YAxis, CartesianGrid, Tooltip, Legend, = You can use in wider chart -interface DataItem { - name?: string; - pa: number; - pv: number; +type DataItem = { + name?: string + pa: number + pv: number } type UptimeChartProps = { - data: DataItem[]; + data: DataItem[] } const UptimeChart = ({ data }: UptimeChartProps) => { - return ( - - - {/* */} - - {/* */} - - - - ); + return ( + + + {/* */} + + {/* */} + + + + ) } -export default UptimeChart; + +export default UptimeChart From fd767e1d451bc1ec2a2adfae365d41bc984587f8 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 20:48:36 +0300 Subject: [PATCH 10/16] feat: export years to reuse --- src/constants.ts | 17 ++++++++++ .../BalanceLineChart/BalanceChardCard.tsx | 2 +- .../BalanceLineChart/LineChart.stories.tsx | 34 ++++++++++--------- 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index caf61c22..414a0549 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -15,3 +15,20 @@ export const BAD_NETWORK_TEXT = 'Network Latency is high.' export const KEYSTORE_FILES = 'KeystoreFiles' export const RECOVERY_PHRASE = 'Recovery Phrase' export const BOTH_KEY_AND_RECOVERY = 'Both KeystoreFiles & Recovery Phrase' + +/* Dashboard */ + +export const years = [ + 'JAN', + 'FEB', + 'MAR', + 'APR', + 'MAY', + 'JUN', + 'JUL', + 'AUG', + 'SEPT', + 'OCT', + 'NOV', + 'DEC', +] diff --git a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx b/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx index 00319629..26558638 100644 --- a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx +++ b/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx @@ -7,9 +7,9 @@ import { DateRange } from 'react-day-picker' import DashboardCardWrapper from '../DashboardCardWrapper' import LineChart from './LineChart' import Icon from '../../../components/General/Icon' +import { years } from '../../../constants' import './calendar.css' -const years = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEPT', 'OCT', 'NOV', 'DEC'] const userGains = [ 10000, 15000, 17500, 20000, 19000, 23222, 25000, 20000, 20000, 21000, 22300, 21000, ] diff --git a/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx b/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx index 6652c699..b5061ec6 100644 --- a/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx +++ b/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx @@ -1,29 +1,31 @@ import type { Meta, StoryObj } from '@storybook/react' import LineChart from './LineChart' import { Stack } from 'tamagui' +import { years } from '../../../constants' -const years = ['JAN', 'FEB', 'MAR', 'APR', 'MAY', 'JUN', 'JUL', 'AUG', 'SEPT', 'OCT', 'NOV', 'DEC'] -const userGains = [10000, 15000, 17500, 20000, 19000, 23222, 25000, 20000, 20000, 21000, 22300, 21000] +const userGains = [ + 10000, 15000, 17500, 20000, 19000, 23222, 25000, 20000, 20000, 21000, 22300, 21000, +] const meta = { - title: 'Dashboard/LineChart', - component: LineChart, - parameters: { - layout: 'centered', - }, - tags: ['autodocs'], - decorators: [StoryObj => - ( - - , - - ) - ] + title: 'Dashboard/LineChart', + component: LineChart, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], + decorators: [ + StoryObj => ( + + , + + ), + ], } satisfies Meta export default meta type Story = StoryObj export const Page: Story = { - args: { userGains, years }, + args: { userGains, years }, } From f920822e40d31dcc07766622646776d71bf8f398 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 21:08:01 +0300 Subject: [PATCH 11/16] fix: spelling of balance chart card --- ...ChardCard.stories.tsx => BalanceChartCard.stories.tsx} | 8 ++++---- .../{BalanceChardCard.tsx => BalanceChartCard.tsx} | 4 ++-- .../Dashboard/BalanceLineChart/LineChart.stories.tsx | 3 ++- 3 files changed, 8 insertions(+), 7 deletions(-) rename src/pages/Dashboard/BalanceLineChart/{BalanceChardCard.stories.tsx => BalanceChartCard.stories.tsx} (59%) rename src/pages/Dashboard/BalanceLineChart/{BalanceChardCard.tsx => BalanceChartCard.tsx} (98%) diff --git a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.stories.tsx b/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx similarity index 59% rename from src/pages/Dashboard/BalanceLineChart/BalanceChardCard.stories.tsx rename to src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx index 6f93929f..b246d7c6 100644 --- a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.stories.tsx +++ b/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx @@ -1,15 +1,15 @@ import type { Meta, StoryObj } from '@storybook/react' -import BalanceChardCard from './BalanceChardCard' +import BalanceChartCard from './BalanceChartCard' const meta = { - title: 'Dashboard/BalanceChardCard', - component: BalanceChardCard, + title: 'Dashboard/BalanceChartCard', + component: BalanceChartCard, parameters: { layout: 'centered', }, tags: ['autodocs'], -} satisfies Meta +} satisfies Meta export default meta type Story = StoryObj diff --git a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx b/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.tsx similarity index 98% rename from src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx rename to src/pages/Dashboard/BalanceLineChart/BalanceChartCard.tsx index 26558638..ca61dd99 100644 --- a/src/pages/Dashboard/BalanceLineChart/BalanceChardCard.tsx +++ b/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.tsx @@ -20,7 +20,7 @@ const getMonthIndicesFromRange = (range: DateRange) => { return [range.from.getMonth(), range.to.getMonth()] } -const BalanceChardCard = () => { +const BalanceChartCard = () => { const [isCalendarVisible, setIsCalendarVisible] = useState(false) const [dateRange, setDateRange] = useState({ from: undefined, to: undefined }) const [startMonth, endMonth] = getMonthIndicesFromRange(dateRange) @@ -102,4 +102,4 @@ const BalanceChardCard = () => { ) } -export default BalanceChardCard +export default BalanceChartCard diff --git a/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx b/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx index b5061ec6..99fdc8c7 100644 --- a/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx +++ b/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx @@ -1,6 +1,7 @@ import type { Meta, StoryObj } from '@storybook/react' -import LineChart from './LineChart' import { Stack } from 'tamagui' + +import LineChart from './LineChart' import { years } from '../../../constants' const userGains = [ From 861fe003e6543fef29996801f1213baa9f51c2fc Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 21:10:10 +0300 Subject: [PATCH 12/16] feat: add story for uptime chart --- .../UptimeChart/UptimeChart.stories.tsx | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/pages/Dashboard/UptimeChart/UptimeChart.stories.tsx diff --git a/src/pages/Dashboard/UptimeChart/UptimeChart.stories.tsx b/src/pages/Dashboard/UptimeChart/UptimeChart.stories.tsx new file mode 100644 index 00000000..87cdae9c --- /dev/null +++ b/src/pages/Dashboard/UptimeChart/UptimeChart.stories.tsx @@ -0,0 +1,21 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import UptimeChart from './UptimeChart' + +const meta = { + title: 'Dashboard/UptimeChart', + component: UptimeChart, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: { + data: [], + }, +} From 1bcefdbc0cb0d87bef2bef2924b1cf6b51084585 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Fri, 15 Sep 2023 21:22:40 +0300 Subject: [PATCH 13/16] fix: change stories names from page to default --- .../Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx | 2 +- src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx | 2 +- src/pages/Dashboard/CPULoad/CPUCard.stories.tsx | 4 ++-- .../Dashboard/ConsensusUptime/ConsensusUptimeCard.stories.tsx | 2 +- .../Dashboard/ExecutionUptime/ExecutionUptime.stories.tsx | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx b/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx index b246d7c6..5d57b53b 100644 --- a/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx +++ b/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx @@ -14,6 +14,6 @@ const meta = { export default meta type Story = StoryObj -export const Page: Story = { +export const Default: Story = { args: {}, } diff --git a/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx b/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx index 99fdc8c7..3195fbef 100644 --- a/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx +++ b/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx @@ -27,6 +27,6 @@ const meta = { export default meta type Story = StoryObj -export const Page: Story = { +export const Default: Story = { args: { userGains, years }, } diff --git a/src/pages/Dashboard/CPULoad/CPUCard.stories.tsx b/src/pages/Dashboard/CPULoad/CPUCard.stories.tsx index 27b39eab..b537f9aa 100644 --- a/src/pages/Dashboard/CPULoad/CPUCard.stories.tsx +++ b/src/pages/Dashboard/CPULoad/CPUCard.stories.tsx @@ -14,6 +14,6 @@ const meta = { export default meta type Story = StoryObj -export const Page: Story = { - args: {load:[32,12,45,10]}, +export const Default: Story = { + args: { load: [32, 12, 45, 10] }, } diff --git a/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.stories.tsx b/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.stories.tsx index 0b6b8711..19788d41 100644 --- a/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.stories.tsx +++ b/src/pages/Dashboard/ConsensusUptime/ConsensusUptimeCard.stories.tsx @@ -14,6 +14,6 @@ const meta = { export default meta type Story = StoryObj -export const Page: Story = { +export const Default: Story = { args: {}, } diff --git a/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.stories.tsx b/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.stories.tsx index 345ec9a1..b1ab2e5d 100644 --- a/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.stories.tsx +++ b/src/pages/Dashboard/ExecutionUptime/ExecutionUptime.stories.tsx @@ -14,6 +14,6 @@ const meta = { export default meta type Story = StoryObj -export const Page: Story = { +export const Default: Story = { args: {}, } From 14a0ecd0cbf2e9834f1c2fd69ac90b6ef71b5ff9 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Sat, 16 Sep 2023 00:48:29 +0300 Subject: [PATCH 14/16] fix: folder name of balance chart card --- .../BalanceChartCard.stories.tsx | 0 .../{BalanceLineChart => BalanceChartCard}/BalanceChartCard.tsx | 0 .../{BalanceLineChart => BalanceChartCard}/LineChart.stories.tsx | 0 .../{BalanceLineChart => BalanceChartCard}/LineChart.tsx | 0 .../Dashboard/{BalanceLineChart => BalanceChartCard}/calendar.css | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename src/pages/Dashboard/{BalanceLineChart => BalanceChartCard}/BalanceChartCard.stories.tsx (100%) rename src/pages/Dashboard/{BalanceLineChart => BalanceChartCard}/BalanceChartCard.tsx (100%) rename src/pages/Dashboard/{BalanceLineChart => BalanceChartCard}/LineChart.stories.tsx (100%) rename src/pages/Dashboard/{BalanceLineChart => BalanceChartCard}/LineChart.tsx (100%) rename src/pages/Dashboard/{BalanceLineChart => BalanceChartCard}/calendar.css (100%) diff --git a/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx b/src/pages/Dashboard/BalanceChartCard/BalanceChartCard.stories.tsx similarity index 100% rename from src/pages/Dashboard/BalanceLineChart/BalanceChartCard.stories.tsx rename to src/pages/Dashboard/BalanceChartCard/BalanceChartCard.stories.tsx diff --git a/src/pages/Dashboard/BalanceLineChart/BalanceChartCard.tsx b/src/pages/Dashboard/BalanceChartCard/BalanceChartCard.tsx similarity index 100% rename from src/pages/Dashboard/BalanceLineChart/BalanceChartCard.tsx rename to src/pages/Dashboard/BalanceChartCard/BalanceChartCard.tsx diff --git a/src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx b/src/pages/Dashboard/BalanceChartCard/LineChart.stories.tsx similarity index 100% rename from src/pages/Dashboard/BalanceLineChart/LineChart.stories.tsx rename to src/pages/Dashboard/BalanceChartCard/LineChart.stories.tsx diff --git a/src/pages/Dashboard/BalanceLineChart/LineChart.tsx b/src/pages/Dashboard/BalanceChartCard/LineChart.tsx similarity index 100% rename from src/pages/Dashboard/BalanceLineChart/LineChart.tsx rename to src/pages/Dashboard/BalanceChartCard/LineChart.tsx diff --git a/src/pages/Dashboard/BalanceLineChart/calendar.css b/src/pages/Dashboard/BalanceChartCard/calendar.css similarity index 100% rename from src/pages/Dashboard/BalanceLineChart/calendar.css rename to src/pages/Dashboard/BalanceChartCard/calendar.css From 4c2206c663db99e7200b05d1e448da030753bd31 Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Sat, 16 Sep 2023 00:49:50 +0300 Subject: [PATCH 15/16] feat: create title with logo for dashboard --- src/pages/Dashboard/Dashboard.tsx | 8 +++++--- src/pages/Dashboard/TitleLogo.tsx | 20 ++++++++++++++++++++ 2 files changed, 25 insertions(+), 3 deletions(-) create mode 100644 src/pages/Dashboard/TitleLogo.tsx diff --git a/src/pages/Dashboard/Dashboard.tsx b/src/pages/Dashboard/Dashboard.tsx index d088c560..ef902dc1 100644 --- a/src/pages/Dashboard/Dashboard.tsx +++ b/src/pages/Dashboard/Dashboard.tsx @@ -3,21 +3,23 @@ import { XStack, YStack } from 'tamagui' import BasicInfoCards from './BasicInfoCards/BasicInfoCards' import AddCardsContainer from '../../components/General/AddCards/AddCardsContainer' import SyncStatusCard from './SyncStatusCard/SyncStatusCard' -import BalanceChardCard from './BalanceLineChart/BalanceChardCard' +import BalanceChartCard from './BalanceChartCard/BalanceChartCard' import CPUCard from './CPULoad/CPUCard' import ConsensusUptimeCard from './ConsensusUptime/ConsensusUptimeCard' import ExecutionUptime from './ExecutionUptime/ExecutionUptime' +import TitleLogo from './TitleLogo' const Dashboard = () => { return ( + - - + + diff --git a/src/pages/Dashboard/TitleLogo.tsx b/src/pages/Dashboard/TitleLogo.tsx new file mode 100644 index 00000000..98592d3e --- /dev/null +++ b/src/pages/Dashboard/TitleLogo.tsx @@ -0,0 +1,20 @@ +import { Text } from '@status-im/components' +import { XStack, YStack } from 'tamagui' + +const TitleLogo = () => { + return ( + + {/* } /> */} + + + Nimbus + + + Node Management Dashboard + + + + ) +} + +export default TitleLogo From 6751ccd4dc57074cc776eb3fae1365061600859c Mon Sep 17 00:00:00 2001 From: RadoslavDimchev Date: Sat, 16 Sep 2023 00:56:17 +0300 Subject: [PATCH 16/16] feat: create story for title logo --- src/pages/Dashboard/TitleLogo.stories.ts | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 src/pages/Dashboard/TitleLogo.stories.ts diff --git a/src/pages/Dashboard/TitleLogo.stories.ts b/src/pages/Dashboard/TitleLogo.stories.ts new file mode 100644 index 00000000..7d2a7b5a --- /dev/null +++ b/src/pages/Dashboard/TitleLogo.stories.ts @@ -0,0 +1,19 @@ +import type { Meta, StoryObj } from '@storybook/react' + +import TitleLogo from './TitleLogo' + +const meta = { + title: 'Dashboard/TitleLogo', + component: TitleLogo, + parameters: { + layout: 'centered', + }, + tags: ['autodocs'], +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: {}, +}