From 63c9677fbe4ebdb17fcd8a8e00d8e03d27a606de Mon Sep 17 00:00:00 2001 From: Phan An Date: Sat, 16 Jul 2022 11:52:39 +0200 Subject: [PATCH] feat: revamp Screen headers --- resources/assets/js/__tests__/UnitTestCase.ts | 4 + .../js/components/screens/AlbumScreen.vue | 8 +- .../js/components/screens/AllSongsScreen.vue | 20 ++++- .../js/components/screens/ArtistScreen.vue | 8 +- .../js/components/screens/FavoritesScreen.vue | 13 +++- .../js/components/screens/PlaylistScreen.vue | 15 +++- .../js/components/screens/QueueScreen.vue | 14 +++- .../screens/RecentlyPlayedScreen.vue | 18 ++++- .../search/SearchSongResultsScreen.vue | 22 +++++- .../js/components/song/AddToMenu.spec.ts | 3 +- .../assets/js/components/song/SongList.vue | 30 +++++-- resources/assets/js/components/ui/Btn.vue | 1 + .../assets/js/components/ui/BtnGroup.vue | 10 ++- resources/assets/js/components/ui/Overlay.vue | 2 +- .../assets/js/components/ui/ScreenHeader.vue | 78 ++++++++++++++----- .../js/components/ui/ThumbnailStack.vue | 42 ++++++++++ .../js/components/ui/VirtualScroller.vue | 4 +- .../assets/js/composables/useSongList.ts | 18 ++++- 18 files changed, 254 insertions(+), 56 deletions(-) create mode 100644 resources/assets/js/components/ui/ThumbnailStack.vue diff --git a/resources/assets/js/__tests__/UnitTestCase.ts b/resources/assets/js/__tests__/UnitTestCase.ts index daf7f5c3..1833d3ad 100644 --- a/resources/assets/js/__tests__/UnitTestCase.ts +++ b/resources/assets/js/__tests__/UnitTestCase.ts @@ -6,6 +6,7 @@ import { clickaway, droppable, focus } from '@/directives' import { defineComponent, nextTick } from 'vue' import { commonStore, userStore } from '@/stores' import factory from '@/__tests__/factory' +import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' export default abstract class UnitTestCase { private backupMethods = new Map() @@ -69,6 +70,9 @@ export default abstract class UnitTestCase { 'koel-clickaway': clickaway, 'koel-focus': focus, 'koel-droppable': droppable + }, + components: { + icon: FontAwesomeIcon } } }, options)) diff --git a/resources/assets/js/components/screens/AlbumScreen.vue b/resources/assets/js/components/screens/AlbumScreen.vue index 6243aaf6..161d8f34 100644 --- a/resources/assets/js/components/screens/AlbumScreen.vue +++ b/resources/assets/js/components/screens/AlbumScreen.vue @@ -1,6 +1,6 @@ - +
@@ -69,6 +69,7 @@ const { SongList, SongListControls, ControlsToggle, + headerLayout, songs, songList, showingControls, @@ -76,7 +77,8 @@ const { onPressEnter, playAll, playSelected, - toggleControls + toggleControls, + onScrollBreakpoint } = useSongList(albumSongs, 'album', { columns: ['track', 'title', 'artist', 'length'] }) const useLastfm = toRef(commonStore.state, 'use_last_fm') diff --git a/resources/assets/js/components/screens/AllSongsScreen.vue b/resources/assets/js/components/screens/AllSongsScreen.vue index 43fea652..67a5bd0f 100644 --- a/resources/assets/js/components/screens/AllSongsScreen.vue +++ b/resources/assets/js/components/screens/AllSongsScreen.vue @@ -1,9 +1,13 @@ @@ -39,6 +49,9 @@ const { SongList, SongListControls, ControlsToggle, + ThumbnailStack, + headerLayout, + thumbnails, songs, songList, duration, @@ -46,7 +59,8 @@ const { isPhone, onPressEnter, playSelected, - toggleControls + toggleControls, + onScrollBreakpoint } = useSongList(toRef(songStore.state, 'songs'), 'all-songs') let initialized = false diff --git a/resources/assets/js/components/screens/ArtistScreen.vue b/resources/assets/js/components/screens/ArtistScreen.vue index aac8e141..abd5c8f1 100644 --- a/resources/assets/js/components/screens/ArtistScreen.vue +++ b/resources/assets/js/components/screens/ArtistScreen.vue @@ -1,6 +1,6 @@ - +
@@ -66,6 +66,7 @@ const { SongList, SongListControls, ControlsToggle, + headerLayout, songList, songs, showingControls, @@ -73,7 +74,8 @@ const { onPressEnter, playAll, playSelected, - toggleControls + toggleControls, + onScrollBreakpoint } = useSongList(artistSongs, 'artist', { columns: ['track', 'title', 'album', 'length'] }) const ArtistInfo = defineAsyncComponent(() => import('@/components/artist/ArtistInfo.vue')) diff --git a/resources/assets/js/components/screens/FavoritesScreen.vue b/resources/assets/js/components/screens/FavoritesScreen.vue index 31cd5039..4d9ae51c 100644 --- a/resources/assets/js/components/screens/FavoritesScreen.vue +++ b/resources/assets/js/components/screens/FavoritesScreen.vue @@ -1,9 +1,13 @@