refactor(FE-438): Use shared DetailOptionType for result tables

This commit is contained in:
rstubryan
2025-12-29 13:18:44 +07:00
parent cd41d5daab
commit 11a63f76b7
@@ -21,6 +21,7 @@ import {
getWeightStatusIndicatorColor,
getWeightStatusText,
} from '@/components/pages/uniformity/uniformity-utils';
import { DetailOptionType } from '@/components/pages/uniformity/detail/UniformityDetail';
type BodyWeightData = {
id: string;
@@ -29,18 +30,6 @@ type BodyWeightData = {
status?: 'ideal' | 'outside';
};
type SamplingData = {
id: string;
label: string;
value: string;
};
type ResultData = {
id: string;
label: string;
value: string;
};
const UniformityResultForm = () => {
const router = useRouter();
const setExpandedDrawerOpen = useUiStore((s) => s.setExpandedDrawerOpen);
@@ -64,10 +53,6 @@ const UniformityResultForm = () => {
setVerifyUniformityResult(null);
};
const handleBack = () => {
setUniformityStep('preview');
};
const handleSubmit = async () => {
if (!uniformityFormData || !uniformityFormData.file) {
toast.error('Form data is missing. Please try again.');
@@ -102,7 +87,7 @@ const UniformityResultForm = () => {
}
};
const samplingTableData: SamplingData[] = useMemo(() => {
const samplingTableData: DetailOptionType[] = useMemo(() => {
if (!verifyUniformityResult) return [];
const { sampling } = verifyUniformityResult;
@@ -131,7 +116,7 @@ const UniformityResultForm = () => {
];
}, [verifyUniformityResult]);
const columnsSampling: ColumnDef<SamplingData>[] = useMemo(
const columnsSampling: ColumnDef<DetailOptionType>[] = useMemo(
() => [
{
accessorKey: 'label',
@@ -147,7 +132,7 @@ const UniformityResultForm = () => {
[]
);
const resultTableData: ResultData[] = useMemo(() => {
const resultTableData: DetailOptionType[] = useMemo(() => {
if (!verifyUniformityResult) return [];
const { result } = verifyUniformityResult;
@@ -171,7 +156,7 @@ const UniformityResultForm = () => {
];
}, [verifyUniformityResult]);
const resultColumns: ColumnDef<ResultData>[] = useMemo(
const resultColumns: ColumnDef<DetailOptionType>[] = useMemo(
() => [
{
accessorKey: 'label',
@@ -270,7 +255,7 @@ const UniformityResultForm = () => {
<div className='flex flex-col gap-4'>
<div className=''>
<p className='text-sm font-medium mb-5'>Sampling and Range</p>
<Table<SamplingData>
<Table<DetailOptionType>
data={samplingTableData}
columns={columnsSampling}
pageSize={4}
@@ -283,7 +268,7 @@ const UniformityResultForm = () => {
<div className=''>
<p className='text-sm font-medium mb-5'>Result</p>
<Table<ResultData>
<Table<DetailOptionType>
data={resultTableData}
columns={resultColumns}
pageSize={3}