fix(WEB): E2E 테스트 버그 수정 (HOTFIX 2026-01-27)
- 카드내역 일괄변경 시 선택 항목 인식 안되는 버그 수정 - 게시판 글쓰기/수정 폼 미렌더링 버그 수정 (mode=new/edit 처리) - 자동 출퇴근 설정 저장 안되는 버그 수정 (useAuto API 연동) - DynamicBoardCreateForm/EditForm 컴포넌트 분리 - UniversalListPage에 onSelectionChange 콜백 추가 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@ interface ApiAttendanceSetting {
|
||||
id: number;
|
||||
tenant_id: number;
|
||||
use_gps: boolean;
|
||||
use_auto: boolean;
|
||||
allowed_radius: number;
|
||||
hq_address: string | null;
|
||||
hq_latitude: number | null;
|
||||
@@ -21,9 +22,10 @@ interface ApiAttendanceSetting {
|
||||
updated_at?: string;
|
||||
}
|
||||
|
||||
// React 폼 데이터 타입 (API 지원 필드만)
|
||||
// React 폼 데이터 타입
|
||||
export interface AttendanceSettingFormData {
|
||||
useGps: boolean;
|
||||
useAuto: boolean;
|
||||
allowedRadius: number;
|
||||
hqAddress: string | null;
|
||||
hqLatitude: number | null;
|
||||
@@ -60,6 +62,7 @@ interface ApiResponse<T> {
|
||||
function transformFromApi(data: ApiAttendanceSetting): AttendanceSettingFormData {
|
||||
return {
|
||||
useGps: data.use_gps,
|
||||
useAuto: data.use_auto,
|
||||
allowedRadius: data.allowed_radius,
|
||||
hqAddress: data.hq_address,
|
||||
hqLatitude: data.hq_latitude,
|
||||
@@ -74,6 +77,7 @@ function transformToApi(data: Partial<AttendanceSettingFormData>): Record<string
|
||||
const apiData: Record<string, unknown> = {};
|
||||
|
||||
if (data.useGps !== undefined) apiData.use_gps = data.useGps;
|
||||
if (data.useAuto !== undefined) apiData.use_auto = data.useAuto;
|
||||
if (data.allowedRadius !== undefined) apiData.allowed_radius = data.allowedRadius;
|
||||
if (data.hqAddress !== undefined) apiData.hq_address = data.hqAddress;
|
||||
if (data.hqLatitude !== undefined) apiData.hq_latitude = data.hqLatitude;
|
||||
|
||||
@@ -69,6 +69,7 @@ export function AttendanceSettingsManagement() {
|
||||
setSettings(prev => ({
|
||||
...prev,
|
||||
gpsEnabled: settingResult.data!.useGps,
|
||||
autoEnabled: settingResult.data!.useAuto,
|
||||
allowedRadius: settingResult.data!.allowedRadius as AllowedRadius,
|
||||
}));
|
||||
} else if (settingResult.error) {
|
||||
@@ -103,7 +104,7 @@ export function AttendanceSettingsManagement() {
|
||||
}));
|
||||
};
|
||||
|
||||
// 자동 출퇴근 사용 토글 (UI 전용 - API 미지원)
|
||||
// 자동 출퇴근 사용 토글
|
||||
const handleAutoToggle = (checked: boolean) => {
|
||||
setSettings(prev => ({
|
||||
...prev,
|
||||
@@ -132,9 +133,9 @@ export function AttendanceSettingsManagement() {
|
||||
const handleSave = async () => {
|
||||
setIsSaving(true);
|
||||
try {
|
||||
// API 지원 필드만 전송
|
||||
const result = await updateAttendanceSetting({
|
||||
useGps: settings.gpsEnabled,
|
||||
useAuto: settings.autoEnabled,
|
||||
allowedRadius: settings.allowedRadius,
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user