From f5f154883b818785dfd8cf3bd50ed18b62412b73 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 26 Dec 2025 09:49:18 +0700 Subject: [PATCH] feat(FE-438): Add UniformityBarChartSkeleton and use it --- .../pages/uniformity/UniformityChart.tsx | 142 ++++++++++-------- .../skeleton/UniformityBarChartSkeleton.tsx | 104 +++++++++++++ 2 files changed, 184 insertions(+), 62 deletions(-) create mode 100644 src/components/pages/uniformity/skeleton/UniformityBarChartSkeleton.tsx diff --git a/src/components/pages/uniformity/UniformityChart.tsx b/src/components/pages/uniformity/UniformityChart.tsx index 1db4d0bf..fb65e088 100644 --- a/src/components/pages/uniformity/UniformityChart.tsx +++ b/src/components/pages/uniformity/UniformityChart.tsx @@ -2,6 +2,7 @@ import React from 'react'; import Card from '@/components/Card'; import UniformityBarChart from '@/components/pages/uniformity/chart/UniformityBarChart'; import UniformityGaugeChart from '@/components/pages/uniformity/chart/UniformityGaugeChart'; +import UniformityBarChartSkeleton from './skeleton/UniformityBarChartSkeleton'; interface BarChartData { name: string; @@ -20,50 +21,50 @@ interface GaugeChartData { const UniformityChart = () => { // TODO: Replace with actual API call const barChartData: BarChartData[] = [ - { - name: '48-52', - uv: 80, - }, - { - name: '52-56', - uv: 120, - }, - { - name: '56-60', - uv: 160, - }, - { - name: '60-64', - uv: 200, - }, - { - name: '64-68', - uv: 160, - }, - { - name: '68-72', - uv: 120, - }, - { - name: '72-76', - uv: 80, - }, - { - name: '76-80', - uv: 120, - }, - { - name: '84-88', - uv: 160, - }, - { - name: '88-92', - uv: 200, - }, - { - name: '92-96', - uv: 160, - }, + // { + // name: '48-52', + // uv: 80, + // }, + // { + // name: '52-56', + // uv: 120, + // }, + // { + // name: '56-60', + // uv: 160, + // }, + // { + // name: '60-64', + // uv: 200, + // }, + // { + // name: '64-68', + // uv: 160, + // }, + // { + // name: '68-72', + // uv: 120, + // }, + // { + // name: '72-76', + // uv: 80, + // }, + // { + // name: '76-80', + // uv: 120, + // }, + // { + // name: '84-88', + // uv: 160, + // }, + // { + // name: '88-92', + // uv: 200, + // }, + // { + // name: '92-96', + // uv: 160, + // }, ]; // TODO: Replace with actual API call @@ -87,26 +88,43 @@ const UniformityChart = () => { }} >
- + {barChartData.length === 0 ? ( + + ) : ( + + )}
- - - + {gaugeChartData.value === 0 ? ( + + + + ) : ( + + + + )} ); }; diff --git a/src/components/pages/uniformity/skeleton/UniformityBarChartSkeleton.tsx b/src/components/pages/uniformity/skeleton/UniformityBarChartSkeleton.tsx new file mode 100644 index 00000000..4983c84e --- /dev/null +++ b/src/components/pages/uniformity/skeleton/UniformityBarChartSkeleton.tsx @@ -0,0 +1,104 @@ +import Button from '@/components/Button'; +import { Icon } from '@iconify/react'; + +const LeftLegend = () => { + return ( + <> +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + ); +}; + +const ChartArea = () => { + const ranges = [ + '48-52', + '52-56', + '56-60', + '60-64', + '64-68', + '68-72', + '72-76', + ]; + + return ( + <> +
+
+
+ {[...Array(5)].map((_, index) => ( +
+ ))} +
+ +
+ {ranges.map((range) => ( +
+ ))} +
+ +
+
+
+
+
+ + ); +}; + +const EmptyState = () => { + return ( + <> +
+
+ +
+ + No Filters Selected + + + Please choose filters to narrow down your results and make your search + easier. + +
+ + ); +}; + +const UniformityBarChartSkeleton = () => { + return ( +
+
+ + +
+ +
+ ); +}; + +export default UniformityBarChartSkeleton;