Skip to content

Commit

Permalink
fix: ssr
Browse files Browse the repository at this point in the history
  • Loading branch information
u3u committed Dec 10, 2018
1 parent 7f63c86 commit 1024ab1
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 12 deletions.
10 changes: 4 additions & 6 deletions packages/@moefe/vue-aplayer/components/APlayer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import classNames from 'classnames';
import _Hls from 'hls.js';
import Audio, { ReadyState, events } from '@moefe/vue-audio';
import Store from '@moefe/vue-store';
import Mixin from 'utils/mixin';
import Player, { Notice } from './Player';
import PlayList from './PlayList';
import Lyric from './Lyric';
Expand All @@ -25,7 +26,7 @@ if (typeof BroadcastChannel !== 'undefined') {
channel = new BroadcastChannel('aplayer');
}

@Component
@Component({ mixins: [Mixin] })
export default class APlayer extends Vue.Component<
APlayer.Options,
APlayer.Events
Expand Down Expand Up @@ -117,11 +118,6 @@ export default class APlayer extends Vue.Component<
return shuffle([...this.orderList]);
}

// eslint-disable-next-line class-methods-use-this
private get isMobile(): boolean {
return /mobile/i.test(window.navigator.userAgent);
}

// 是否正在缓冲
private get isLoading(): boolean {
const { preload, currentPlayed, currentLoaded } = this;
Expand All @@ -132,6 +128,8 @@ export default class APlayer extends Vue.Component<

private readonly options!: APlayer.InstallOptions;

private readonly isMobile!: boolean;

// 是否正在拖动进度条(防止抖动)
private isDraggingProgressBar = false;

Expand Down
10 changes: 4 additions & 6 deletions packages/@moefe/vue-touch/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as Vue from 'vue-tsx-support';
import Component from 'vue-class-component';
import { Prop } from 'vue-property-decorator';
import Mixin from 'utils/mixin';

export interface TouchProps {
panMoveClass?: string;
Expand All @@ -12,23 +13,20 @@ export interface TouchEvents {
onPanEnd: MouseEvent | TouchEvent;
}

@Component
@Component({ mixins: [Mixin] })
export default class Touch extends Vue.Component<TouchProps, TouchEvents> {
@Prop({ type: String, required: false })
private readonly panMoveClass!: string;

private readonly isMobile!: boolean;

private isDragMove: boolean = false;

private get classNames() {
const { panMoveClass, isDragMove } = this;
return { [panMoveClass]: isDragMove };
}

// eslint-disable-next-line class-methods-use-this
private get isMobile(): boolean {
return /mobile/i.test(window.navigator.userAgent);
}

private get dragStart(): 'touchstart' | 'mousedown' {
return this.isMobile ? 'touchstart' : 'mousedown';
}
Expand Down
12 changes: 12 additions & 0 deletions utils/mixin.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import Vue from 'vue';
import Component from 'vue-class-component';

@Component
export default class Mixin extends Vue {
private get isMobile(): boolean {
const ua = this.$ssrContext
? this.$ssrContext.userAgent
: window.navigator.userAgent;
return /mobile/i.test(ua);
}
}

0 comments on commit 1024ab1

Please sign in to comment.