import { useEffect } from 'react'; export interface SubmitButtonProps { isAdmin: boolean; canSubmit: boolean; onAdminSubmit: () => void; onUserSubmit: () => void; onAdminMount?: () => void; // admin 진입 시 애니메이션 등 부수효과 } // TODO: AdminSubmitButton 과 UserSubmitButton 을 별도 컴포넌트로 분리하고, // SubmitButton 은 role에 따라 둘 중 하나를 렌더하는 dispatcher로 만들어라. export function SubmitButton({ isAdmin, canSubmit, onAdminSubmit, onUserSubmit, onAdminMount }: SubmitButtonProps) { useEffect(() => { if (!isAdmin) return; onAdminMount?.(); }, [isAdmin, onAdminMount]); if (isAdmin) { return ( <button data-testid="btn" className="admin-btn" onClick={onAdminSubmit}> Approve & Submit </button> ); } return ( <button data-testid="btn" className="user-btn" disabled={!canSubmit} onClick={onUserSubmit}> Submit for Review </button> ); }
Tests