Skip to content

feat(#25): 소장본 등록 화면에 소장본 목록·상태 변경 구현 - #26

Open
fnzl54 wants to merge 3 commits into
mainfrom
feat/#25
Open

feat(#25): 소장본 등록 화면에 소장본 목록·상태 변경 구현#26
fnzl54 wants to merge 3 commits into
mainfrom
feat/#25

Conversation

@fnzl54

@fnzl54 fnzl54 commented Aug 16, 2026

Copy link
Copy Markdown
Member

연관 이슈

작업 사항

  • GET /bookitems(관리번호·도서명 검색, 서버 페이지네이션), PATCH /bookitems/{id}/status(분실·폐기) 연동 함수·타입 추가 (src/lib/api/bookitems.ts)
  • BOOK_ITEM_NOT_FOUND_CODE 중복 선언 방지 — 소유권을 bookitems.ts로 옮기고 loans.ts는 재수출만 유지
  • CopyListCard 신규: 소장본 목록 + 검색(관리번호/도서명 입력 2개, AND) + 상태별 3분기 액션(AVAILABLE→분실/폐기 버튼, ON_LOAN→변경 불가 문구, LOST/DISPOSED→종결 표시)
  • 상태 변경 성공 시 낙관적 갱신 없이 재조회(fetchToken), 등록 성공 시 별도 트리거(refreshToken)로 1페이지 리셋 — 두 트리거를 의도적으로 분리해 상태 변경할 때마다 목록이 1페이지로 튀지 않게 함
  • CopyRegisterFormonCreated 콜백 추가, CopyRegisterSection 신설로 폼·목록 배선을 페이지에서 분리
  • src/components/README.md 컴포넌트 인벤토리·합성 관계 동기화 (Combobox 문단의 낡은 서술도 정정)

디자인 대비 변경 사항 (사용자 확인 완료)

  • 백엔드 검색 응답에 bookTitle이 없던 초기 상태를 확인해 사용자가 백엔드에 필드를 추가함(재확인 완료)
  • 디자인 원본의 통합 검색창 1개는 백엔드 q/managementNumber가 AND 조건이라 그대로 구현 불가 — 사용자 확인 후 입력 2개(관리번호/도서명)로 대체

테스트

  • 타입체크 통과 (npx tsc --noEmit)
  • 빌드 통과 (npm run build)
  • lint 통과 (npm run lint)
  • QA 검증 24/24 PASS (_workspace/04_qa-report.md)
  • 로컬 실행 확인 (npm run dev) — 브라우저 수동 확인은 진행하지 않음

주의 사항 및 참고사항

  • 분실/폐기 버튼은 확인 다이얼로그 없이 즉시 처리(기존 ReturnListCard의 반납 처리와 동일 관례)
  • ON_LOAN 소장본의 상태 변경 차단은 UI 정책 — 서버(ChangeBookItemStatusService)는 source 상태를 검사하지 않음

fnzl54 and others added 3 commits August 16, 2026 17:47
GET /bookitems(검색·목록), PATCH /bookitems/{id}/status(분실·폐기 처리) 연동 함수와
타입을 추가한다. BOOK_ITEM_NOT_FOUND_CODE는 loans.ts와 중복 선언되지 않도록
bookitems.ts로 소유권을 옮기고 loans.ts는 재수출만 남긴다.

Generated with design-to-frontend harness (Claude Opus 4.8)
Co-Authored-By: Claude <noreply@anthropic.com>
/copies/new 화면에 소장본 목록 카드(CopyListCard)를 추가한다. 관리번호·도서명
검색(AND, 서버 페이지네이션), 상태별 3분기 액션(AVAILABLE→분실/폐기, ON_LOAN→
변경 불가 문구, LOST/DISPOSED→종결)을 제공하고 상태 변경 성공 시 재조회한다.
CopyRegisterForm에 onCreated 콜백을 추가하고 CopyRegisterSection으로 폼·목록의
refreshToken 배선을 묶는다. 컴포넌트 인벤토리 문서를 동기화한다.

Generated with design-to-frontend harness (Claude Opus 4.8)
Co-Authored-By: Claude <noreply@anthropic.com>
디자인 원본처럼 검색 입력을 별도 Card가 아니라 "소장본 목록" 카드 헤더 아래
구분선 안에 둔다. 순서도 도서명·관리번호로 맞춘다.

Generated with design-to-frontend harness (Claude Opus 4.8)
Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant