diff --git a/src/constants.js b/src/constants.js index bd888eb24ce93..8eb0089b512e8 100644 --- a/src/constants.js +++ b/src/constants.js @@ -77,6 +77,12 @@ const SyncEvents = { // Utils const MAIN_PROFILE_ID = 'allChannels' +// Width threshold in px at which we switch to using a more heavily altered view for mobile users +const MOBILE_WIDTH_THRESHOLD = 680 + +// Height threshold in px at which we switch to using a more heavily altered playlist view for mobile users +const PLAYLIST_HEIGHT_FORCE_LIST_THRESHOLD = 500 + // YouTube search character limit is 100 characters const SEARCH_CHAR_LIMIT = 100 @@ -85,5 +91,7 @@ export { DBActions, SyncEvents, MAIN_PROFILE_ID, + MOBILE_WIDTH_THRESHOLD, + PLAYLIST_HEIGHT_FORCE_LIST_THRESHOLD, SEARCH_CHAR_LIMIT } diff --git a/src/renderer/App.js b/src/renderer/App.js index 68d30084e1bb8..bda2bad5686d4 100644 --- a/src/renderer/App.js +++ b/src/renderer/App.js @@ -105,6 +105,14 @@ export default defineComponent({ return this.$store.getters.getBaseTheme }, + isSideNavOpen: function () { + return this.$store.getters.getIsSideNavOpen + }, + + hideLabelsSideBar: function () { + return this.$store.getters.getHideLabelsSideBar + }, + mainColor: function () { return this.$store.getters.getMainColor }, diff --git a/src/renderer/App.vue b/src/renderer/App.vue index 5ba049345ace1..fb54f93110337 100644 --- a/src/renderer/App.vue +++ b/src/renderer/App.vue @@ -5,7 +5,9 @@ class="app" :class="{ hideOutlines: outlinesHidden, - isLocaleRightToLeft: isLocaleRightToLeft + isLocaleRightToLeft: isLocaleRightToLeft, + isSideNavOpen: isSideNavOpen, + hideLabelsSideBar: hideLabelsSideBar && !isSideNavOpen }" > diff --git a/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.js b/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.js index 32a4012373b9e..f94037ef774bd 100644 --- a/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.js +++ b/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.js @@ -52,7 +52,40 @@ export default defineComponent({ required: false, default: '', }, + playlistId: { + type: String, + default: null + }, + playlistType: { + type: String, + default: null + }, + playlistItemId: { + type: String, + default: null + }, + alwaysShowAddToPlaylistButton: { + type: Boolean, + default: false, + }, + quickBookmarkButtonEnabled: { + type: Boolean, + default: true, + }, + canMoveVideoUp: { + type: Boolean, + default: false, + }, + canMoveVideoDown: { + type: Boolean, + default: false, + }, + canRemoveFromPlaylist: { + type: Boolean, + default: false, + }, }, + emits: ['move-video-down', 'move-video-up', 'remove-from-playlist'], data: function () { return { visible: this.firstScreen @@ -160,7 +193,17 @@ export default defineComponent({ methods: { onVisibilityChanged: function (visible) { this.visible = visible - } + }, + moveVideoUp: function() { + this.$emit('move-video-up') + }, + moveVideoDown: function() { + this.$emit('move-video-down') + }, + + removeFromPlaylist: function() { + this.$emit('remove-from-playlist') + }, } }) diff --git a/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.vue b/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.vue index c5f734c937696..df93ed245667b 100644 --- a/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.vue +++ b/src/renderer/components/ft-list-lazy-wrapper/ft-list-lazy-wrapper.vue @@ -17,7 +17,18 @@ v-if="finalDataType === 'video' || finalDataType === 'shortVideo'" :appearance="appearance" :data="data" + :playlist-id="playlistId" + :playlist-type="playlistType" + :playlist-item-id="playlistItemId" :show-video-with-last-viewed-playlist="showVideoWithLastViewedPlaylist" + :always-show-add-to-playlist-button="alwaysShowAddToPlaylistButton" + :quick-bookmark-button-enabled="quickBookmarkButtonEnabled" + :can-move-video-up="canMoveVideoUp" + :can-move-video-down="canMoveVideoDown" + :can-remove-from-playlist="canRemoveFromPlaylist" + @move-video-up="moveVideoUp" + @move-video-down="moveVideoDown" + @remove-from-playlist="removeFromPlaylist" />

diff --git a/src/renderer/components/ft-refresh-widget/ft-refresh-widget.js b/src/renderer/components/ft-refresh-widget/ft-refresh-widget.js index a7f5a420702fc..f73e7585ab3e2 100644 --- a/src/renderer/components/ft-refresh-widget/ft-refresh-widget.js +++ b/src/renderer/components/ft-refresh-widget/ft-refresh-widget.js @@ -22,15 +22,6 @@ export default defineComponent({ } }, emits: ['click'], - computed: { - isSideNavOpen: function () { - return this.$store.getters.getIsSideNavOpen - }, - - hideLabelsSideBar: function () { - return this.$store.getters.getHideLabelsSideBar - } - }, methods: { click: function() { this.$emit('click') diff --git a/src/renderer/components/ft-refresh-widget/ft-refresh-widget.css b/src/renderer/components/ft-refresh-widget/ft-refresh-widget.scss similarity index 73% rename from src/renderer/components/ft-refresh-widget/ft-refresh-widget.css rename to src/renderer/components/ft-refresh-widget/ft-refresh-widget.scss index a2637ea1abe90..c77a2b5155ac9 100644 --- a/src/renderer/components/ft-refresh-widget/ft-refresh-widget.css +++ b/src/renderer/components/ft-refresh-widget/ft-refresh-widget.scss @@ -1,9 +1,9 @@ +@use '../../scss-partials/utils'; + .floatingRefreshSection { - position: fixed; - inset-block-start: 60px; - inset-inline-end: 0; + @include utils.fixed-top-bar; + box-sizing: border-box; - inline-size: calc(100% - 80px); padding-block: 5px; padding-inline: 10px; box-shadow: 0 2px 1px 0 var(--primary-shadow-color); @@ -13,21 +13,12 @@ align-items: center; gap: 5px; justify-content: flex-end; - z-index: 3; } .floatingRefreshSection:has(.lastRefreshTimestamp + .refreshButton) { justify-content: space-between; } -.floatingRefreshSection.sideNavOpen { - inline-size: calc(100% - 200px); -} - -.floatingRefreshSection.hideLabelsSideBar { - inline-size: calc(100% - 60px); -} - .lastRefreshTimestamp { margin-block: 0; text-align: center; diff --git a/src/renderer/components/ft-refresh-widget/ft-refresh-widget.vue b/src/renderer/components/ft-refresh-widget/ft-refresh-widget.vue index 5a914b2579913..8224711566915 100644 --- a/src/renderer/components/ft-refresh-widget/ft-refresh-widget.vue +++ b/src/renderer/components/ft-refresh-widget/ft-refresh-widget.vue @@ -1,10 +1,6 @@