메뉴별 권한 관리 기능 개선

- defaultGrant 값에 따른 권한 항목 조건부 표시 구현
- 권한 상태 관리 로직 개선 (초기값과 기본값 분리)
- API 응답 구조 타입 수정 및 처리 로직 개선
- 거래취소 비밀번호 변경 페이지 오타 수정

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Jay Sheen
2025-09-29 16:26:13 +09:00
parent 74ab29f80a
commit 3027d6d3ab
5 changed files with 65 additions and 38 deletions

View File

@@ -14,14 +14,14 @@ import { snackBar } from '@/shared/lib/toast';
export const PasswordModifyCancelPasswordPage = () => {
const { navigate } = useNavigate();
const [mid, setMid] = useState<string>('nictest00m');
const [newPassword, setNewPassword] = useState<string>('');
const [password, setPassword] = useState<string>('');
const [confirmPassword, setConfirmPassword] = useState<string>('');
const changeCancelPasswordMutation = useUserChangeCancelPasswordMutation({
onSuccess: () => {
snackBar('비밀번호가 성공적으로 변경되었습니다.');
// Clear form
setNewPassword('');
setPassword('');
setConfirmPassword('');
// Navigate back
navigate(PATHS.account.password.manage);
@@ -32,6 +32,7 @@ export const PasswordModifyCancelPasswordPage = () => {
});
const midList = [
{ value: 'nictest00', label: 'nictest00' },
{ value: 'nictest00m', label: 'nictest00m' },
{ value: 'nictest01m', label: 'nictest01m' },
{ value: 'nictest02m', label: 'nictest02m' },
@@ -47,9 +48,9 @@ export const PasswordModifyCancelPasswordPage = () => {
// 저장 버튼 활성화 조건 체크
const isFormValid = () => {
return (
newPassword.length >= 8 &&
password.length >= 8 &&
confirmPassword.length >= 8 &&
newPassword === confirmPassword
password === confirmPassword
);
};
@@ -60,7 +61,7 @@ export const PasswordModifyCancelPasswordPage = () => {
// TODO: Validate current password before submitting
changeCancelPasswordMutation.mutate({
mid,
password: newPassword
password: password
});
};
@@ -82,24 +83,24 @@ export const PasswordModifyCancelPasswordPage = () => {
<div className="ua-row">
<div className="ua-label"> <span className="red">*</span></div>
<input
className={`wid-100 ${confirmPassword && newPassword !== confirmPassword ? 'error' : ''}`}
className={`wid-100 ${confirmPassword && password !== confirmPassword ? 'error' : ''}`}
type="password"
placeholder=""
value={newPassword}
onChange={(e) => setNewPassword(e.target.value)}
value={password}
onChange={(e) => setPassword(e.target.value)}
/>
</div>
<div className="ua-row">
<div className="ua-label"> <span className="red">*</span></div>
<input
className={`wid-100 ${confirmPassword && newPassword !== confirmPassword ? 'error' : ''}`}
className={`wid-100 ${confirmPassword && password !== confirmPassword ? 'error' : ''}`}
type="password"
placeholder=""
value={confirmPassword}
onChange={(e) => setConfirmPassword(e.target.value)}
/>
</div>
{confirmPassword && newPassword !== confirmPassword && (
{confirmPassword && password !== confirmPassword && (
<div className="ua-help error"> </div>
)}
</div>