summaryrefslogtreecommitdiffstats
path: root/webapp/utils/global_event_emitter.jsx
blob: 0d231d2a2c18036a367a7d691b9ddcb7ef24ac28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.

import AppDispatcher from 'dispatcher/app_dispatcher.jsx';
import EventEmitter from 'events';

import EventTypes from 'utils/event_types.jsx';

class GlobalEventEmitterClass extends EventEmitter {
    constructor() {
        super();
        this.dispatchToken = AppDispatcher.register(this.handleEventPayload);
    }

    handleEventPayload = (payload) => {
        const {type, value, ...args} = payload.action; //eslint-disable-line no-use-before-define

        switch (type) {
        case EventTypes.POST_LIST_SCROLL_CHANGE:
            this.emit(type, value, args);
            break;
        }
    }
}

const GlobalEventEmitter = new GlobalEventEmitterClass();
export default GlobalEventEmitter;