From 626993a740d794ce0a0d590db18c2198e595e843 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Wed, 25 Aug 2021 00:11:12 +0300 Subject: [PATCH 1/2] Fix dialog history --- src/components/appRouter.js | 8 +++++++- src/components/dialogHelper/dialogHelper.js | 2 +- src/scripts/routes.js | 5 +++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/components/appRouter.js b/src/components/appRouter.js index b23e532b4..e40875089 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -25,6 +25,7 @@ class AppRouter { msgTimeout; popstateOccurred = false; resolveOnNextShow; + previousRoute = {}; /** * Pages of "no return" (when "Go back" should behave differently, probably quitting the application). */ @@ -633,8 +634,13 @@ class AppRouter { getHandler(route) { return (ctx, next) => { ctx.isBack = this.popstateOccurred; - this.handleRoute(ctx, next, route); this.popstateOccurred = false; + + const ignore = route.dummyRoute === true || this.previousRoute.dummyRoute === true; + this.previousRoute = route; + if (ignore) return; + + this.handleRoute(ctx, next, route); }; } diff --git a/src/components/dialogHelper/dialogHelper.js b/src/components/dialogHelper/dialogHelper.js index 1f979bbce..5617f2a17 100644 --- a/src/components/dialogHelper/dialogHelper.js +++ b/src/components/dialogHelper/dialogHelper.js @@ -142,7 +142,7 @@ import '../../assets/css/scrollstyles.scss'; animateDialogOpen(dlg); if (isHistoryEnabled(dlg)) { - appRouter.pushState({ dialogId: hash }, 'Dialog', `#${hash}`); + appRouter.show('/dialog', { dialogId: hash }); window.addEventListener('popstate', onHashChange); } else { diff --git a/src/scripts/routes.js b/src/scripts/routes.js index 41497be0f..c74795724 100644 --- a/src/scripts/routes.js +++ b/src/scripts/routes.js @@ -560,6 +560,11 @@ import { appRouter } from '../components/appRouter'; serverRequest: true }); + defineRoute({ + path: '/dialog', + dummyRoute: true + }); + defineRoute({ path: '', isDefaultRoute: true, From 104b76f52206bc206bc43b88e9042ff860ed4fd4 Mon Sep 17 00:00:00 2001 From: Dmitry Lyzo Date: Wed, 25 Aug 2021 14:01:12 +0300 Subject: [PATCH 2/2] Revert "Fix accessing playersettingsmenu, groupSelectionMenu & playback video (Audio, Subtitles)" This reverts commit 924e5bc7b9c3767819c359d2471a7da6a16d0976. --- src/components/playback/playersettingsmenu.js | 15 +++++---------- src/components/syncPlay/ui/groupSelectionMenu.js | 6 ++---- src/controllers/playback/video/index.js | 6 ++---- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/src/components/playback/playersettingsmenu.js b/src/components/playback/playersettingsmenu.js index f2fd6f4d8..cc05d6e70 100644 --- a/src/components/playback/playersettingsmenu.js +++ b/src/components/playback/playersettingsmenu.js @@ -41,8 +41,7 @@ function showQualityMenu(player, btn) { return actionsheet.show({ items: menuItems, - positionTo: btn, - enableHistory: false + positionTo: btn }).then(function (id) { const bitrate = parseInt(id); if (bitrate !== selectedBitrate) { @@ -78,8 +77,7 @@ function showRepeatModeMenu(player, btn) { return actionsheet.show({ items: menuItems, - positionTo: btn, - enableHistory: false + positionTo: btn }).then(function (mode) { if (mode) { playbackManager.setRepeatMode(mode, player); @@ -140,8 +138,7 @@ function showAspectRatioMenu(player, btn) { return actionsheet.show({ items: menuItems, - positionTo: btn, - enableHistory: false + positionTo: btn }).then(function (id) { if (id) { playbackManager.setAspectRatio(id, player); @@ -163,8 +160,7 @@ function showPlaybackRateMenu(player, btn) { return actionsheet.show({ items: menuItems, - positionTo: btn, - enableHistory: false + positionTo: btn }).then(function (id) { if (id) { playbackManager.setPlaybackRate(id, player); @@ -241,8 +237,7 @@ function showWithUser(options, player, user) { return actionsheet.show({ items: menuItems, - positionTo: options.positionTo, - enableHistory: false + positionTo: options.positionTo }).then(function (id) { return handleSelectedOption(id, options, player); }); diff --git a/src/components/syncPlay/ui/groupSelectionMenu.js b/src/components/syncPlay/ui/groupSelectionMenu.js index 48c1327ea..96a731038 100644 --- a/src/components/syncPlay/ui/groupSelectionMenu.js +++ b/src/components/syncPlay/ui/groupSelectionMenu.js @@ -63,8 +63,7 @@ class GroupSelectionMenu { items: menuItems, positionTo: button, resolveOnClick: true, - border: true, - enableHistory: false + border: true }; actionsheet.show(menuOptions).then(function (id) { @@ -133,8 +132,7 @@ class GroupSelectionMenu { items: menuItems, positionTo: button, resolveOnClick: true, - border: true, - enableHistory: false + border: true }; actionsheet.show(menuOptions).then(function (id) { diff --git a/src/controllers/playback/video/index.js b/src/controllers/playback/video/index.js index a30b2a74c..6744d26d5 100644 --- a/src/controllers/playback/video/index.js +++ b/src/controllers/playback/video/index.js @@ -903,8 +903,7 @@ import { appRouter } from '../../../components/appRouter'; actionsheet.show({ items: menuItems, title: globalize.translate('Audio'), - positionTo: positionTo, - enableHistory: false + positionTo: positionTo }).then(function (id) { const index = parseInt(id); @@ -950,8 +949,7 @@ import { appRouter } from '../../../components/appRouter'; actionsheet.show({ title: globalize.translate('Subtitles'), items: menuItems, - positionTo: positionTo, - enableHistory: false + positionTo: positionTo }).then(function (id) { const index = parseInt(id);