feat: CSP 다음/카카오 도메인 허용 + 입고 성적서 파일 백엔드 연동 + 팝업 이미지 중앙정렬

- middleware CSP: *.kakao.com, *.kakaocdn.net 추가 (다음 주소찾기 차단 해결)
- frame-src에 'self' 추가
- 공지 팝업 이미지 중앙정렬 ([&_img]:mx-auto)
- HR 사원관리, 결재, 품목, 생산 등 다수 개선
- API 에러 핸들링 및 JSON 파싱 안정화
This commit is contained in:
유병철
2026-03-11 22:32:58 +09:00
parent e9ac2470e1
commit ea6ca335f1
24 changed files with 625 additions and 139 deletions

View File

@@ -112,8 +112,8 @@ export function NoticePopupModal({ popup, open, onOpenChange }: NoticePopupModal
{/* 제목 */}
<h3 className="text-base font-medium mb-4">{popup.title}</h3>
{/* 이미지 영역 */}
{popup.imageUrl ? (
{/* 이미지 영역 - imageUrl이 있을 때만 표시 */}
{popup.imageUrl && (
<div className="relative w-full aspect-[4/3] mb-4 rounded-md overflow-hidden border bg-muted">
<img
src={popup.imageUrl}
@@ -121,17 +121,13 @@ export function NoticePopupModal({ popup, open, onOpenChange }: NoticePopupModal
className="w-full h-full object-cover"
/>
</div>
) : (
<div className="w-full aspect-[4/3] mb-4 rounded-md border bg-muted flex items-center justify-center">
<span className="text-muted-foreground text-sm">IMG</span>
</div>
)}
{/* 내용 */}
<div className="text-sm text-foreground mb-6">
<p className="text-muted-foreground mb-2"></p>
<div
className="prose prose-sm max-w-none"
className="prose prose-sm max-w-none [&_img]:mx-auto [&_img]:block"
dangerouslySetInnerHTML={{ __html: sanitizeHTML(popup.content) }}
/>
</div>