summaryrefslogtreecommitdiff
path: root/src/web/app/common/mixins.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/web/app/common/mixins.ts')
-rw-r--r--src/web/app/common/mixins.ts40
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) });
+};