From 784d9f26abfb616a32d88606719c6c08fdb47c49 Mon Sep 17 00:00:00 2001 From: rstubryan Date: Fri, 6 Mar 2026 15:00:33 +0700 Subject: [PATCH] refactor(FE): Refactor fetchChecklistDetail with useCallback --- .../detail/DetailDailyChecklistContent.tsx | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/figma-make/components/pages/list-daily-checklist/detail/DetailDailyChecklistContent.tsx b/src/figma-make/components/pages/list-daily-checklist/detail/DetailDailyChecklistContent.tsx index 88f04a80..12de5c84 100644 --- a/src/figma-make/components/pages/list-daily-checklist/detail/DetailDailyChecklistContent.tsx +++ b/src/figma-make/components/pages/list-daily-checklist/detail/DetailDailyChecklistContent.tsx @@ -1,6 +1,6 @@ 'use client'; -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import * as React from 'react'; import { ArrowLeft, CheckCircle, XCircle, AlertCircle } from 'lucide-react'; import { Card, CardContent } from '@/figma-make/components/base/card'; @@ -137,15 +137,7 @@ export function DetailDailyChecklistContent() { const [rejectReason, setRejectReason] = useState(''); const [actionLoading, setActionLoading] = useState(false); - useEffect(() => { - if (checklistId) { - fetchChecklistDetail(); - } else { - router.push('/404'); - } - }, [checklistId]); - - const fetchChecklistDetail = async () => { + const fetchChecklistDetail = useCallback(async () => { if (!checklistId) { console.warn('checklistId missing'); setLoading(false); @@ -320,7 +312,15 @@ export function DetailDailyChecklistContent() { } finally { setLoading(false); } - }; + }, [checklistId, router]); + + useEffect(() => { + if (checklistId) { + fetchChecklistDetail(); + } else { + router.push('/404'); + } + }, [checklistId, fetchChecklistDetail, router]); const groupDetailData = (rows: ChecklistDetailRow[]) => { // Group by phase_id