feat(WEB): 동적 게시판, 파트너 관리, 공지 팝업 모달 추가
- 동적 게시판 시스템 구현 (/boards/[boardCode]) - 파트너 관리 페이지 및 폼 추가 - 공지 팝업 모달 컴포넌트 (NoticePopupModal) - localStorage 기반 1일간 숨김 기능 - 테스트 페이지 (/test/popup) - IntegratedListTemplateV2 개선 - 기타 버그 수정 및 타입 개선 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,9 @@ interface ApiResponse<T> {
|
||||
function transformApiToFrontend(apiData: BoardApiData): Board {
|
||||
const extraSettings = apiData.extra_settings || {};
|
||||
|
||||
// permissions 추출 (read 권한 기준으로 사용)
|
||||
const permissions = extraSettings.permissions?.read || [];
|
||||
|
||||
return {
|
||||
id: String(apiData.id),
|
||||
boardCode: apiData.board_code,
|
||||
@@ -35,6 +38,7 @@ function transformApiToFrontend(apiData: BoardApiData): Board {
|
||||
target: extraSettings.target || 'all',
|
||||
targetId: extraSettings.target_id,
|
||||
targetName: extraSettings.target_name,
|
||||
permissions: permissions.length > 0 ? permissions : undefined,
|
||||
boardName: apiData.name,
|
||||
description: apiData.description || undefined,
|
||||
status: apiData.is_active ? 'active' : 'inactive',
|
||||
@@ -50,14 +54,26 @@ function transformApiToFrontend(apiData: BoardApiData): Board {
|
||||
* 프론트엔드 데이터 → API 요청 형식 변환
|
||||
*/
|
||||
function transformFrontendToApi(data: BoardFormData & { boardCode?: string; description?: string }, isUpdate = false): Record<string, unknown> {
|
||||
// extra_settings 구성
|
||||
const extraSettings: Record<string, unknown> = {
|
||||
target: data.target,
|
||||
target_name: data.target === 'department' ? data.targetName : null,
|
||||
};
|
||||
|
||||
// 권한 대상인 경우 permissions 추가
|
||||
if (data.target === 'permission' && data.permissions && data.permissions.length > 0) {
|
||||
extraSettings.permissions = {
|
||||
read: data.permissions,
|
||||
write: data.permissions,
|
||||
manage: data.permissions,
|
||||
};
|
||||
}
|
||||
|
||||
const result: Record<string, unknown> = {
|
||||
name: data.boardName,
|
||||
description: data.description || null,
|
||||
is_active: data.status === 'active',
|
||||
extra_settings: {
|
||||
target: data.target,
|
||||
target_name: data.target === 'department' ? data.targetName : null,
|
||||
},
|
||||
extra_settings: extraSettings,
|
||||
};
|
||||
|
||||
// 생성 시에만 board_code 전송 (수정 시에는 코드 변경 불가)
|
||||
|
||||
Reference in New Issue
Block a user