From 31a3c4e6faf1f8741da1f30e207f0f3bd994ba68 Mon Sep 17 00:00:00 2001 From: GulSam00 Date: Sat, 24 May 2025 09:13:19 +0900 Subject: [PATCH 1/5] =?UTF-8?q?design=20:=20=EC=8A=A4=ED=81=AC=EB=A1=A4=20?= =?UTF-8?q?=EB=AA=A8=EB=B0=94=EC=9D=BC=20=EB=86=92=EC=9D=B4=20=EC=A1=B0?= =?UTF-8?q?=EC=A0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/app/library/like/page.tsx | 2 +- apps/web/src/app/library/save/page.tsx | 4 ++-- apps/web/src/app/tosing/page.tsx | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/web/src/app/library/like/page.tsx b/apps/web/src/app/library/like/page.tsx index cecf515..b52b78e 100644 --- a/apps/web/src/app/library/like/page.tsx +++ b/apps/web/src/app/library/like/page.tsx @@ -43,7 +43,7 @@ export default function LikePage() { - + {likedSongs.map(song => ( - -
+ +
{saveSongFolderList && saveSongFolderList.map((folder, index) => ( 곡 추가
- + From 35e93d8fd6432ed9904d6992ed2f0c9cb28d3622 Mon Sep 17 00:00:00 2001 From: GulSam00 Date: Sat, 24 May 2025 10:38:54 +0900 Subject: [PATCH 2/5] =?UTF-8?q?feat=20:=20tosing=20=EB=AA=A8=EB=8B=AC?= =?UTF-8?q?=EC=97=90=EC=84=9C=20=EC=9E=AC=EC=83=9D=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=ED=83=AD=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/package.json | 3 +- apps/web/src/Footer.tsx | 3 +- apps/web/src/app/library/save/page.tsx | 1 + apps/web/src/app/tosing/AddListModal.tsx | 56 ++++++++++++++++++--- apps/web/src/app/tosing/SongList.tsx | 3 +- apps/web/src/components/ui/accordion.tsx | 64 ++++++++++++++++++++++++ apps/web/src/queries/saveSongQuery.ts | 1 + apps/web/src/queries/tosingSongQuery.ts | 4 ++ 8 files changed, 123 insertions(+), 12 deletions(-) create mode 100644 apps/web/src/components/ui/accordion.tsx diff --git a/apps/web/package.json b/apps/web/package.json index 2f7c389..8ab50c2 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -16,6 +16,7 @@ "@dnd-kit/sortable": "^10.0.0", "@dnd-kit/utilities": "^3.2.2", "@next/bundle-analyzer": "^15.3.2", + "@radix-ui/react-accordion": "^1.2.11", "@radix-ui/react-checkbox": "^1.1.5", "@radix-ui/react-dialog": "^1.1.6", "@radix-ui/react-dropdown-menu": "^2.1.6", @@ -23,7 +24,7 @@ "@radix-ui/react-scroll-area": "^1.2.4", "@radix-ui/react-select": "^2.2.4", "@radix-ui/react-separator": "^1.1.2", - "@radix-ui/react-slot": "^1.1.2", + "@radix-ui/react-slot": "^1.2.0", "@radix-ui/react-tabs": "^1.1.3", "@radix-ui/react-tooltip": "^1.2.6", "@repo/open-api": "workspace:*", diff --git a/apps/web/src/Footer.tsx b/apps/web/src/Footer.tsx index 51e5ebf..3a7cbf0 100644 --- a/apps/web/src/Footer.tsx +++ b/apps/web/src/Footer.tsx @@ -15,11 +15,12 @@ const navigation = [ export default function Footer() { const pathname = usePathname(); + const navPath = pathname.split('/')[1]; return (
{navigation.map(item => { - const isActive = pathname === item.href; + const isActive = '/' + navPath === item.href; return (
- + diff --git a/apps/web/src/lib/api/saveSong.ts b/apps/web/src/lib/api/saveSong.ts index c8bf131..fa971b1 100644 --- a/apps/web/src/lib/api/saveSong.ts +++ b/apps/web/src/lib/api/saveSong.ts @@ -5,7 +5,6 @@ import { instance } from './client'; export async function getSaveSong() { const response = await instance.get>('/songs/save'); - return response.data; } diff --git a/apps/web/src/types/song.ts b/apps/web/src/types/song.ts index 75f83c5..4168a7e 100644 --- a/apps/web/src/types/song.ts +++ b/apps/web/src/types/song.ts @@ -32,6 +32,16 @@ export interface SaveSong extends Song { updated_at: Date; } +export interface SaveActivity { + id: string; + user_id: string; + song_id: string; + folder_id: string; + + created_at: string; + updated_at: string; +} + export interface SaveSongFolder { folder_id: string; folder_name: string; @@ -42,6 +52,7 @@ export interface SaveSongFolderList { id: string; user_id: string; folder_name: string; + songItem: SaveActivity[]; created_at: string; updated_at: string; From 7c16fe1bc261dcfdfa5c8eae644d40ab0b06b20f Mon Sep 17 00:00:00 2001 From: GulSam00 Date: Sat, 24 May 2025 11:04:44 +0900 Subject: [PATCH 4/5] =?UTF-8?q?chore=20:pnpm-lock=20=EC=9D=B4=EC=8A=88=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pnpm-lock.yaml | 129 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 127 insertions(+), 2 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 848e0e5..5b3fea6 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -145,6 +145,9 @@ importers: '@next/bundle-analyzer': specifier: ^15.3.2 version: 15.3.2 + '@radix-ui/react-accordion': + specifier: ^1.2.11 + version: 1.2.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-checkbox': specifier: ^1.1.5 version: 1.2.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -167,8 +170,8 @@ importers: specifier: ^1.1.2 version: 1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) '@radix-ui/react-slot': - specifier: ^1.1.2 - version: 1.2.0(@types/react@19.0.10)(react@19.1.0) + specifier: ^1.2.0 + version: 1.2.2(@types/react@19.0.10)(react@19.1.0) '@radix-ui/react-tabs': specifier: ^1.1.3 version: 1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -1825,6 +1828,19 @@ packages: '@radix-ui/primitive@1.1.2': resolution: {integrity: sha512-XnbHrrprsNqZKQhStrSwgRUQzoCI1glLzdw79xiZPoofhGICeZRSQ3dIxAKH1gb3OHfNf4d6f+vAv3kil2eggA==} + '@radix-ui/react-accordion@1.2.11': + resolution: {integrity: sha512-l3W5D54emV2ues7jjeG1xcyN7S3jnK3zE2zHqgn0CmMsy9lNJwmgcrmaxS+7ipw15FAivzKNzH3d5EcGoFKw0A==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-arrow@1.1.4': resolution: {integrity: sha512-qz+fxrqgNxG0dYew5l7qR3c7wdgRu1XVUHGnGYX7rg5HM4p9SWaRmJwfgR3J0SgyUKayLmzQIun+N6rWRgiRKw==} peerDependencies: @@ -1864,6 +1880,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-collapsible@1.1.11': + resolution: {integrity: sha512-2qrRsVGSCYasSz1RFOorXwl0H7g7J1frQtgpQgYrt+MOidtPAINHn9CPovQXb83r8ahapdx3Tu0fa/pdFFSdPg==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-collection@1.1.4': resolution: {integrity: sha512-cv4vSf7HttqXilDnAnvINd53OTl1/bjUYVZrkFnA7nwmY9Ob2POUy0WY0sfqBAe1s5FyKsyceQlqiEGPYNTadg==} peerDependencies: @@ -1890,6 +1919,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-collection@1.1.7': + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-compose-refs@1.0.0': resolution: {integrity: sha512-0KaSv6sx787/hK3eF53iOkiSLwAGlFMx5lotrqD2pTjB18KbybKoEIgkNZTKC60YECDQTKGTRcDBILwZVqVKvA==} peerDependencies: @@ -2135,6 +2177,19 @@ packages: '@types/react-dom': optional: true + '@radix-ui/react-primitive@2.1.3': + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + react-dom: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + '@radix-ui/react-roving-focus@1.1.7': resolution: {integrity: sha512-C6oAg451/fQT3EGbWHbCQjYTtbyjNO1uzQgMzwyivcHT3GKNEmu1q3UuREhN+HzHAVtv3ivMVK08QlC+PkYw9Q==} peerDependencies: @@ -2210,6 +2265,15 @@ packages: '@types/react': optional: true + '@radix-ui/react-slot@1.2.3': + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc + peerDependenciesMeta: + '@types/react': + optional: true + '@radix-ui/react-tabs@1.1.9': resolution: {integrity: sha512-KIjtwciYvquiW/wAFkELZCVnaNLBsYNhTNcvl+zfMAbMhRkcvNuCLXDDd22L0j7tagpzVh/QwbFpwAATg7ILPw==} peerDependencies: @@ -9482,6 +9546,23 @@ snapshots: '@radix-ui/primitive@1.1.2': {} + '@radix-ui/react-accordion@1.2.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-collapsible': 1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-collection': 1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-direction': 1.1.1(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-arrow@1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-primitive': 2.1.0(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) @@ -9516,6 +9597,22 @@ snapshots: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-collapsible@1.1.11(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/primitive': 1.1.2 + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-id': 1.1.1(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-presence': 1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-use-controllable-state': 1.2.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-use-layout-effect': 1.1.1(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-collection@1.1.4(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) @@ -9540,6 +9637,18 @@ snapshots: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-collection@1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-context': 1.1.2(@types/react@19.0.10)(react@19.1.0) + '@radix-ui/react-primitive': 2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0) + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-compose-refs@1.0.0(react@18.3.1)': dependencies: '@babel/runtime': 7.27.0 @@ -9780,6 +9889,15 @@ snapshots: '@types/react': 19.0.10 '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-primitive@2.1.3(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': + dependencies: + '@radix-ui/react-slot': 1.2.3(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + react-dom: 19.1.0(react@19.1.0) + optionalDependencies: + '@types/react': 19.0.10 + '@types/react-dom': 19.0.4(@types/react@19.0.10) + '@radix-ui/react-roving-focus@1.1.7(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 @@ -9872,6 +9990,13 @@ snapshots: optionalDependencies: '@types/react': 19.0.10 + '@radix-ui/react-slot@1.2.3(@types/react@19.0.10)(react@19.1.0)': + dependencies: + '@radix-ui/react-compose-refs': 1.1.2(@types/react@19.0.10)(react@19.1.0) + react: 19.1.0 + optionalDependencies: + '@types/react': 19.0.10 + '@radix-ui/react-tabs@1.1.9(@types/react-dom@19.0.4(@types/react@19.0.10))(@types/react@19.0.10)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)': dependencies: '@radix-ui/primitive': 1.1.2 From 1a88cde310237f1b5a620d902e88e629d8930a4a Mon Sep 17 00:00:00 2001 From: GulSam00 Date: Sat, 24 May 2025 11:07:40 +0900 Subject: [PATCH 5/5] =?UTF-8?q?chore=20:=20=EB=B2=84=EC=A0=84=201.4.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/package.json | 2 +- apps/web/public/changelog.json | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/web/package.json b/apps/web/package.json index 8ab50c2..2674eaa 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -1,6 +1,6 @@ { "name": "web", - "version": "1.3.0", + "version": "1.4.0", "type": "module", "private": true, "scripts": { diff --git a/apps/web/public/changelog.json b/apps/web/public/changelog.json index fe0a7bc..521564b 100644 --- a/apps/web/public/changelog.json +++ b/apps/web/public/changelog.json @@ -23,5 +23,14 @@ "인기곡 페이지의 데이터를 산정하는 방식을 개선했습니다.", "로그아웃 이슈를 해결했습니다." ] + }, + + "1.4.0": { + "title": "버전 1.4.0", + "message": [ + "스크롤 디자인 높이를 조정했습니다.", + "부를곡 페이지에서 재생목록을 통해 노래를 추가할 수 있습니다.", + "로직을 수정하여 검색 페이지에서 재생목록으로 저장 시 재생목록의 개수를 확인할 수 있습니다." + ] } }