fix(client): デッキUI時に ページで表示 ボタンが機能しない問題を修正

Fix #9010
This commit is contained in:
syuilo 2022-07-17 05:12:22 +09:00
parent bce7a4ed03
commit d771dd598b
4 changed files with 13 additions and 5 deletions

View file

@ -9,6 +9,13 @@
You should also include the user name that made the change. You should also include the user name that made the change.
--> -->
## 12.x.x (unreleased)
### Improvements
### Bugfixes
- Client: デッキUI時に ページで表示 ボタンが機能しない問題を修正 @syuilo
## 12.116.0 (2022/07/16) ## 12.116.0 (2022/07/16)
### Improvements ### Improvements

View file

@ -122,7 +122,7 @@ function close() {
} }
function expand() { function expand() {
mainRouter.push(router.getCurrentPath()); mainRouter.push(router.getCurrentPath(), 'forcePage');
windowEl.close(); windowEl.close();
} }

View file

@ -71,7 +71,7 @@ export class Router extends EventEmitter<{
private currentKey = Date.now().toString(); private currentKey = Date.now().toString();
public currentRoute: ShallowRef<RouteDef | null> = shallowRef(null); public currentRoute: ShallowRef<RouteDef | null> = shallowRef(null);
public navHook: ((path: string) => boolean) | null = null; public navHook: ((path: string, flag?: any) => boolean) | null = null;
constructor(routes: Router['routes'], currentPath: Router['currentPath']) { constructor(routes: Router['routes'], currentPath: Router['currentPath']) {
super(); super();
@ -213,14 +213,14 @@ export class Router extends EventEmitter<{
return this.currentKey; return this.currentKey;
} }
public push(path: string) { public push(path: string, flag?: any) {
const beforePath = this.currentPath; const beforePath = this.currentPath;
if (path === beforePath) { if (path === beforePath) {
this.emit('same'); this.emit('same');
return; return;
} }
if (this.navHook) { if (this.navHook) {
const cancel = this.navHook(path); const cancel = this.navHook(path, flag);
if (cancel) return; if (cancel) return;
} }
this.navigate(path, null); this.navigate(path, null);

View file

@ -89,7 +89,8 @@ import { mainRouter } from '@/router';
import { unisonReload } from '@/scripts/unison-reload'; import { unisonReload } from '@/scripts/unison-reload';
const XStatusBars = defineAsyncComponent(() => import('@/ui/_common_/statusbars.vue')); const XStatusBars = defineAsyncComponent(() => import('@/ui/_common_/statusbars.vue'));
mainRouter.navHook = (path): boolean => { mainRouter.navHook = (path, flag): boolean => {
if (flag === 'forcePage') return false;
const noMainColumn = !deckStore.state.columns.some(x => x.type === 'main'); const noMainColumn = !deckStore.state.columns.some(x => x.type === 'main');
if (deckStore.state.navWindow || noMainColumn) { if (deckStore.state.navWindow || noMainColumn) {
os.pageWindow(path); os.pageWindow(path);