fix: [card] 품의서 작성 버튼을 실제 품의서 작성 페이지로 이동

- API 호출 방식에서 router.push('/approval/draft/new')로 변경
- 불필요한 isLoadingApproval 상태 및 getApprovalFormUrl import 제거
This commit is contained in:
김보곤
2026-02-21 07:46:51 +09:00
parent 352171c019
commit 6971336477

View File

@@ -40,7 +40,6 @@ import {
updateCard, updateCard,
deleteCard, deleteCard,
getActiveEmployees, getActiveEmployees,
getApprovalFormUrl,
} from './actions'; } from './actions';
function formatExpiryDate(value: string): string { function formatExpiryDate(value: string): string {
@@ -113,7 +112,6 @@ export function CardDetail({ card, mode: initialMode, isLoading }: CardDetailPro
const searchParams = useSearchParams(); const searchParams = useSearchParams();
const [mode, setMode] = useState(initialMode); const [mode, setMode] = useState(initialMode);
const [isSaving, setIsSaving] = useState(false); const [isSaving, setIsSaving] = useState(false);
const [isLoadingApproval, setIsLoadingApproval] = useState(false);
const [employees, setEmployees] = useState<Array<{ id: string; label: string }>>([]); const [employees, setEmployees] = useState<Array<{ id: string; label: string }>>([]);
const [fieldErrors, setFieldErrors] = useState<FieldErrors>({}); const [fieldErrors, setFieldErrors] = useState<FieldErrors>({});
@@ -216,21 +214,8 @@ export function CardDetail({ card, mode: initialMode, isLoading }: CardDetailPro
} }
}; };
const handleApprovalForm = async () => { const handleApprovalForm = () => {
if (!card?.id) return; router.push('/ko/approval/draft/new');
setIsLoadingApproval(true);
try {
const result = await getApprovalFormUrl(card.id);
if (result.success && result.data?.url) {
window.open(result.data.url, '_blank');
} else {
toast.error(result.error || '품의서 작성 페이지 URL 조회에 실패했습니다.');
}
} catch {
toast.error('품의서 작성 URL 조회 중 오류가 발생했습니다.');
} finally {
setIsLoadingApproval(false);
}
}; };
if (isLoading) { if (isLoading) {
@@ -353,13 +338,8 @@ export function CardDetail({ card, mode: initialMode, isLoading }: CardDetailPro
<Button <Button
variant="outline" variant="outline"
onClick={handleApprovalForm} onClick={handleApprovalForm}
disabled={isLoadingApproval}
> >
{isLoadingApproval ? ( <ExternalLink className="h-4 w-4 mr-2" />
<Loader2 className="h-4 w-4 mr-2 animate-spin" />
) : (
<ExternalLink className="h-4 w-4 mr-2" />
)}
</Button> </Button>
</CardContent> </CardContent>