diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index 378f855..d1d42a0 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -1,8 +1,10 @@
services:
# 프론트엔드 - Vite 개발 서버
- fromis9-web:
+ fromis9-frontend:
image: node:20-alpine
- container_name: fromis9-web
+ container_name: fromis9-frontend
+ labels:
+ - "com.centurylinklabs.watchtower.enable=false"
working_dir: /app
command: sh -c "npm install && npm run dev -- --host 0.0.0.0 --port 80"
volumes:
diff --git a/docker-compose.yml b/docker-compose.yml
index cd0cb03..d4b7e29 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -1,7 +1,9 @@
services:
fromis9-web:
build: .
- container_name: fromis9-web
+ container_name: fromis9-frontend
+ labels:
+ - "com.centurylinklabs.watchtower.enable=false"
env_file:
- .env
networks:
diff --git a/frontend/src/pages/pc/AlbumDetail.jsx b/frontend/src/pages/pc/AlbumDetail.jsx
index cf8cd3f..d92965d 100644
--- a/frontend/src/pages/pc/AlbumDetail.jsx
+++ b/frontend/src/pages/pc/AlbumDetail.jsx
@@ -279,10 +279,12 @@ function AlbumDetail() {
className="col-span-1"
>
앨범 소개
-
-
- {album.description}
-
+
+
+
+ {album.description}
+
+
)}
diff --git a/frontend/src/pages/pc/Discography.jsx b/frontend/src/pages/pc/Discography.jsx
index 26cb314..4ffdbe0 100644
--- a/frontend/src/pages/pc/Discography.jsx
+++ b/frontend/src/pages/pc/Discography.jsx
@@ -35,11 +35,12 @@ function Discography() {
return titleTrack ? titleTrack.title : tracks[0].title;
};
- // 앨범 타입별 개수 계산
+ // 앨범 타입별 개수 계산 (album_type_short 우선 사용)
+ const getAlbumType = (album) => album.album_type_short || album.album_type;
const albumStats = {
- 정규: albums.filter(a => a.album_type === '정규').length,
- 미니: albums.filter(a => a.album_type === '미니').length,
- 싱글: albums.filter(a => a.album_type === '싱글').length,
+ 정규: albums.filter(a => getAlbumType(a) === '정규').length,
+ 미니: albums.filter(a => getAlbumType(a) === '미니').length,
+ 싱글: albums.filter(a => getAlbumType(a) === '싱글').length,
총: albums.length
};
diff --git a/frontend/src/pages/pc/admin/AdminAlbumForm.jsx b/frontend/src/pages/pc/admin/AdminAlbumForm.jsx
index 4b4a540..0261ec7 100644
--- a/frontend/src/pages/pc/admin/AdminAlbumForm.jsx
+++ b/frontend/src/pages/pc/admin/AdminAlbumForm.jsx
@@ -456,8 +456,14 @@ function AdminAlbumForm() {
};
const updateTrack = (index, field, value) => {
+ // 작사/작곡/편곡 필드에서 '|' (전각 세로 막대)를 ', '로 자동 변환
+ let processedValue = value;
+ if (['lyricist', 'composer', 'arranger'].includes(field)) {
+ processedValue = value.replace(/[||]/g, ', ');
+ }
+
setTracks(prev => prev.map((track, i) =>
- i === index ? { ...track, [field]: value } : track
+ i === index ? { ...track, [field]: processedValue } : track
));
};
@@ -746,7 +752,7 @@ function AdminAlbumForm() {
name="description"
value={formData.description}
onChange={handleInputChange}
- rows={4}
+ rows={8}
className="w-full px-4 py-2.5 border border-gray-200 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent resize-none"
placeholder="앨범에 대한 설명을 입력하세요..."
/>
@@ -830,7 +836,7 @@ function AdminAlbumForm() {
value={track.duration || ''}
onChange={(e) => updateTrack(index, 'duration', e.target.value)}
className="w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent text-center"
- placeholder="3:30"
+ placeholder="0:00"
/>
@@ -857,7 +863,6 @@ function AdminAlbumForm() {
animate={{ height: 'auto', opacity: 1 }}
exit={{ height: 0, opacity: 0 }}
transition={{ duration: 0.2 }}
- className="overflow-hidden"
>
{/* 작사/작곡/편곡 */}
@@ -912,7 +917,7 @@ function AdminAlbumForm() {
value={track.lyrics || ''}
onChange={(e) => updateTrack(index, 'lyrics', e.target.value)}
rows={12}
- className="w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent resize-y min-h-[200px]"
+ className="w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:outline-none focus:ring-2 focus:ring-primary focus:border-transparent resize-none min-h-[200px]"
placeholder="가사를 입력하세요..."
/>