diff options
Diffstat (limited to 'src/client/components')
| -rw-r--r-- | src/client/components/ui/a.vue | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/client/components/ui/a.vue b/src/client/components/ui/a.vue index 98f9212545..516cf02bd6 100644 --- a/src/client/components/ui/a.vue +++ b/src/client/components/ui/a.vue @@ -11,6 +11,7 @@ import * as os from '@/os'; import copyToClipboard from '@/scripts/copy-to-clipboard'; import { router } from '@/router'; import { deckmode, url } from '@/config'; +import { popout } from '@/scripts/popout'; export default defineComponent({ inject: { @@ -87,11 +88,23 @@ export default defineComponent({ }], e); }, + window() { + os.pageWindow(this.to); + }, + + popout() { + popout(this.to); + }, + nav() { + if (this.to.startsWith('/my/messaging')) { + if (this.$store.state.device.chatOpenBehavior === 'window') return this.window(); + if (this.$store.state.device.chatOpenBehavior === 'popout') return this.popout(); + } + if (this.behavior) { if (this.behavior === 'window') { - os.pageWindow(this.to); - return; + return this.window(); } } @@ -99,12 +112,10 @@ export default defineComponent({ this.navHook(this.to); } else { if (this.$store.state.device.defaultSideView && this.sideViewHook && this.to !== '/') { - this.sideViewHook(this.to); - return; + return this.sideViewHook(this.to); } if (this.$store.state.device.deckNavWindow && deckmode && this.to !== '/') { - os.pageWindow(this.to); - return; + return this.window(); } this.$router.push(this.to); |