Commit 1b1d959a authored by Dannon Baker's avatar Dannon Baker
Browse files

Add explicit preventWindowManager parameter to router.push

Replace implicit window manager control (based on title presence) with
explicit preventWindowManager parameter for clearer intent.  Leaving off
title still works, but having an explicit control is what we should push
for.
parent 0c8c9980
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -268,10 +268,10 @@ function onDisplay() {
        // Only conditionally force to keep urls clean most of the time.
        if (route.path === itemUrls.value.display) {
            // @ts-ignore - monkeypatched router, drop with migration.
            router.push(itemUrls.value.display, { force: true });
            router.push(itemUrls.value.display, { force: true, preventWindowManager: true });
        } else if (itemUrls.value.display) {
            // @ts-ignore - monkeypatched router, drop with migration.
            router.push(itemUrls.value.display);
            router.push(itemUrls.value.display, { preventWindowManager: true });
        }
    }
}
+3 −3
Original line number Diff line number Diff line
@@ -7,13 +7,13 @@ import { addSearchParams } from "utils/url";
 * refresh if needed.
 *
 * @param {String} Location as parsed to original router.push()
 * @param {Object} Custom options, to provide a title and/or force reload
 * @param {Object} Custom options, to provide a title, force reload, and/or prevent window manager
 */
export function patchRouterPush(VueRouter) {
    const originalPush = VueRouter.prototype.push;
    VueRouter.prototype.push = function push(location, options = {}) {
        // add key to location to force component refresh
        const { title, force } = options;
        const { title, force, preventWindowManager } = options;
        if (force) {
            location = addSearchParams(location, { __vkey__: Date.now() });
        }
@@ -27,7 +27,7 @@ export function patchRouterPush(VueRouter) {
        }
        // show location in window manager
        const Galaxy = getGalaxyInstance();
        if (title && Galaxy.frame && Galaxy.frame.active) {
        if (title && !preventWindowManager && Galaxy.frame && Galaxy.frame.active) {
            Galaxy.frame.add({ title: title, url: location });
            return;
        }