diff options
Diffstat (limited to 'src/web/app/common/mixins.ts')
| -rw-r--r-- | src/web/app/common/mixins.ts | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/web/app/common/mixins.ts b/src/web/app/common/mixins.ts new file mode 100644 index 0000000000..e9c3625937 --- /dev/null +++ b/src/web/app/common/mixins.ts @@ -0,0 +1,40 @@ +import * as riot from 'riot'; + +import MiOS from './mios'; +import ServerStreamManager from './scripts/streaming/server-stream-manager'; +import RequestsStreamManager from './scripts/streaming/requests-stream-manager'; +import MessagingIndexStreamManager from './scripts/streaming/messaging-index-stream-manager'; +import DriveStreamManager from './scripts/streaming/drive-stream-manager'; + +export default (mios: MiOS) => { + (riot as any).mixin('os', { + mios: mios + }); + + (riot as any).mixin('i', { + init: function() { + this.I = mios.i; + this.SIGNIN = mios.isSignedin; + + if (this.SIGNIN) { + this.on('mount', () => { + mios.i.on('updated', this.update); + }); + this.on('unmount', () => { + mios.i.off('updated', this.update); + }); + } + }, + me: mios.i + }); + + (riot as any).mixin('api', { + api: mios.api + }); + + (riot as any).mixin('stream', { stream: mios.stream }); + (riot as any).mixin('drive-stream', { driveStream: new DriveStreamManager(mios.i) }); + (riot as any).mixin('server-stream', { serverStream: new ServerStreamManager() }); + (riot as any).mixin('requests-stream', { requestsStream: new RequestsStreamManager() }); + (riot as any).mixin('messaging-index-stream', { messagingIndexStream: new MessagingIndexStreamManager(mios.i) }); +}; |