Skip to content

Commit

Permalink
feat: isSSR, fromSSR, onSSR for Platform
Browse files Browse the repository at this point in the history
  • Loading branch information
rstoenescu committed Jun 10, 2018
1 parent 45926a0 commit ed56ea1
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 10 deletions.
2 changes: 1 addition & 1 deletion dev/components/new-layout/pages/default.vue
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<template>
<q-page padding class="bg-yellow page-default-padding">
<q-page padding class="page-default-padding">
<q-toggle v-model="extra" label="Extra content" />
<div v-if="extra">
<div v-for="n in 50">
Expand Down
6 changes: 3 additions & 3 deletions src/components/layout/QLayout.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { QScrollObservable, QResizeObservable, QWindowResizeObservable } from '../observables'
import { isSSR } from '../../plugins/platform'
import { onSSR } from '../../plugins/platform'

export default {
name: 'QLayout',
Expand All @@ -17,8 +17,8 @@ export default {
},
data () {
return {
height: isSSR || this.$q.platform.is.fromSSR ? 0 : window.innerHeight,
width: isSSR || this.$q.platform.is.fromSSR ? 0 : window.innerWidth,
height: onSSR ? 0 : window.innerHeight,
width: onSSR ? 0 : window.innerWidth,

header: {
size: 0,
Expand Down
6 changes: 3 additions & 3 deletions src/components/observables/QWindowResizeObservable.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { listenOpts } from '../../utils/event'
import { isSSR } from '../../plugins/platform'
import { onSSR, fromSSR } from '../../plugins/platform'

export default {
name: 'QWindowResizeObservable',
Expand Down Expand Up @@ -28,10 +28,10 @@ export default {
}
},
created () {
this.emit(isSSR || this.$q.platform.is.fromSSR)
this.emit(onSSR)
},
mounted () {
this.$q.platform.is.fromSSR && this.emit()
fromSSR && this.emit()
window.addEventListener('resize', this.trigger, listenOpts.passive)
},
beforeDestroy () {
Expand Down
4 changes: 2 additions & 2 deletions src/mixins/can-render.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
// using it to manage SSR rendering with best performance
import { isSSR } from '../plugins/platform'
import { onSSR } from '../plugins/platform'

export default {
data () {
return {
canRender: !isSSR && !this.$q.platform.is.fromSSR
canRender: !onSSR
}
},
mounted () {
Expand Down
8 changes: 7 additions & 1 deletion src/plugins/platform.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
/* eslint-disable no-mixed-operators */

export const isSSR = typeof window === 'undefined'
export let fromSSR = false
export let onSSR = isSSR

function getMatch (userAgent, platformMatch) {
const match = /(edge)\/([\w.]+)/.exec(userAgent) ||
Expand Down Expand Up @@ -157,11 +159,15 @@ function getPlatform (userAgent) {
browser.cordova = true
}

browser.fromSSR = browser.cordova === void 0 &&
browser.fromSSR = fromSSR = browser.cordova === void 0 &&
browser.electron === void 0 &&
!!document.querySelector('[data-server-rendered]')

fromSSR && (onSSR = true)
}

browser.onSSR = onSSR

return browser
}

Expand Down

0 comments on commit ed56ea1

Please sign in to comment.