[Client] Refactoring
This commit is contained in:
		
							parent
							
								
									431da9e087
								
							
						
					
					
						commit
						b6475958d0
					
				
					 19 changed files with 72 additions and 102 deletions
				
			
		| 
						 | 
					@ -8,12 +8,13 @@ class Connection {
 | 
				
			||||||
		this.onOpen =    this.onOpen.bind(this);
 | 
							this.onOpen =    this.onOpen.bind(this);
 | 
				
			||||||
		this.onClose =   this.onClose.bind(this);
 | 
							this.onClose =   this.onClose.bind(this);
 | 
				
			||||||
		this.onMessage = this.onMessage.bind(this);
 | 
							this.onMessage = this.onMessage.bind(this);
 | 
				
			||||||
 | 
							this.send =      this.send.bind(this);
 | 
				
			||||||
		this.close =     this.close.bind(this);
 | 
							this.close =     this.close.bind(this);
 | 
				
			||||||
		// ----------------------------------------
 | 
							// ----------------------------------------
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							riot.observable(this);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.state = 'initializing';
 | 
							this.state = 'initializing';
 | 
				
			||||||
		this.stateEv = riot.observable();
 | 
					 | 
				
			||||||
		this.event = riot.observable();
 | 
					 | 
				
			||||||
		this.me = me;
 | 
							this.me = me;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const host = CONFIG.apiUrl.replace('http', 'ws');
 | 
							const host = CONFIG.apiUrl.replace('http', 'ws');
 | 
				
			||||||
| 
						 | 
					@ -22,23 +23,23 @@ class Connection {
 | 
				
			||||||
		this.socket.addEventListener('close', this.onClose);
 | 
							this.socket.addEventListener('close', this.onClose);
 | 
				
			||||||
		this.socket.addEventListener('message', this.onMessage);
 | 
							this.socket.addEventListener('message', this.onMessage);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.event.on('i_updated', me.update);
 | 
							this.on('i_updated', me.update);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	onOpen() {
 | 
						onOpen() {
 | 
				
			||||||
		this.state = 'connected';
 | 
							this.state = 'connected';
 | 
				
			||||||
		this.stateEv.trigger('connected');
 | 
							this.trigger('_connected_');
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	onClose() {
 | 
						onClose() {
 | 
				
			||||||
		this.state = 'reconnecting';
 | 
							this.state = 'reconnecting';
 | 
				
			||||||
		this.stateEv.trigger('closed');
 | 
							this.trigger('_closed_');
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	onMessage(message) {
 | 
						onMessage(message) {
 | 
				
			||||||
		try {
 | 
							try {
 | 
				
			||||||
			const msg = JSON.parse(message.data);
 | 
								const msg = JSON.parse(message.data);
 | 
				
			||||||
			if (msg.type) this.event.trigger(msg.type, msg.body);
 | 
								if (msg.type) this.trigger(msg.type, msg.body);
 | 
				
			||||||
		} catch(e) {
 | 
							} catch(e) {
 | 
				
			||||||
			// noop
 | 
								// noop
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -52,8 +52,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.history = [];
 | 
							this.history = [];
 | 
				
			||||||
		this.fetching = true;
 | 
							this.fetching = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -65,11 +63,11 @@
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			stream.on('signin', this.onSignin);
 | 
								this.stream.on('signin', this.onSignin);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('signin', this.onSignin);
 | 
								this.stream.off('signin', this.onSignin);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onSignin = signin => {
 | 
							this.onSignin = signin => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -44,7 +44,7 @@
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.stream.stateEv.on('connected', () => {
 | 
							this.stream.on('_connected_', () => {
 | 
				
			||||||
			this.update();
 | 
								this.update();
 | 
				
			||||||
			setTimeout(() => {
 | 
								setTimeout(() => {
 | 
				
			||||||
				Velocity(this.root, {
 | 
									Velocity(this.root, {
 | 
				
			||||||
| 
						 | 
					@ -53,7 +53,7 @@
 | 
				
			||||||
			}, 1000);
 | 
								}, 1000);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.stream.stateEv.on('closed', () => {
 | 
							this.stream.on('_closed_', () => {
 | 
				
			||||||
			this.update();
 | 
								this.update();
 | 
				
			||||||
			Velocity(this.root, {
 | 
								Velocity(this.root, {
 | 
				
			||||||
				opacity: 1
 | 
									opacity: 1
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,8 +76,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.user = null;
 | 
							this.user = null;
 | 
				
			||||||
		this.userPromise = isPromise(this.opts.user)
 | 
							this.userPromise = isPromise(this.opts.user)
 | 
				
			||||||
			? this.opts.user
 | 
								? this.opts.user
 | 
				
			||||||
| 
						 | 
					@ -91,14 +89,14 @@
 | 
				
			||||||
					init: false,
 | 
										init: false,
 | 
				
			||||||
					user: user
 | 
										user: user
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
				stream.on('follow', this.onStreamFollow);
 | 
									this.stream.on('follow', this.onStreamFollow);
 | 
				
			||||||
				stream.on('unfollow', this.onStreamUnfollow);
 | 
									this.stream.on('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('follow', this.onStreamFollow);
 | 
								this.stream.off('follow', this.onStreamFollow);
 | 
				
			||||||
			stream.off('unfollow', this.onStreamUnfollow);
 | 
								this.stream.off('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onStreamFollow = user => {
 | 
							this.onStreamFollow = user => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -246,8 +246,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.files = [];
 | 
							this.files = [];
 | 
				
			||||||
		this.folders = [];
 | 
							this.folders = [];
 | 
				
			||||||
		this.hierarchyFolders = [];
 | 
							this.hierarchyFolders = [];
 | 
				
			||||||
| 
						 | 
					@ -279,10 +277,10 @@
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			stream.on('drive_file_created', this.onStreamDriveFileCreated);
 | 
								this.stream.on('drive_file_created', this.onStreamDriveFileCreated);
 | 
				
			||||||
			stream.on('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
								this.stream.on('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
				
			||||||
			stream.on('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
								this.stream.on('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
				
			||||||
			stream.on('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
								this.stream.on('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Riotのバグでnullを渡しても""になる
 | 
								// Riotのバグでnullを渡しても""になる
 | 
				
			||||||
			// https://github.com/riot/riot/issues/2080
 | 
								// https://github.com/riot/riot/issues/2080
 | 
				
			||||||
| 
						 | 
					@ -295,10 +293,10 @@
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('drive_file_created', this.onStreamDriveFileCreated);
 | 
								this.stream.off('drive_file_created', this.onStreamDriveFileCreated);
 | 
				
			||||||
			stream.off('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
								this.stream.off('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
				
			||||||
			stream.off('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
								this.stream.off('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
				
			||||||
			stream.off('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
								this.stream.off('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onStreamDriveFileCreated = file => {
 | 
							this.onStreamDriveFileCreated = file => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,8 +73,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.user = null;
 | 
							this.user = null;
 | 
				
			||||||
		this.userPromise = isPromise(this.opts.user)
 | 
							this.userPromise = isPromise(this.opts.user)
 | 
				
			||||||
			? this.opts.user
 | 
								? this.opts.user
 | 
				
			||||||
| 
						 | 
					@ -88,14 +86,14 @@
 | 
				
			||||||
					init: false,
 | 
										init: false,
 | 
				
			||||||
					user: user
 | 
										user: user
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
				stream.on('follow', this.onStreamFollow);
 | 
									this.stream.on('follow', this.onStreamFollow);
 | 
				
			||||||
				stream.on('unfollow', this.onStreamUnfollow);
 | 
									this.stream.on('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('follow', this.onStreamFollow);
 | 
								this.stream.off('follow', this.onStreamFollow);
 | 
				
			||||||
			stream.off('unfollow', this.onStreamUnfollow);
 | 
								this.stream.off('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onStreamFollow = user => {
 | 
							this.onStreamFollow = user => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -61,13 +61,11 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.images = [];
 | 
							this.images = [];
 | 
				
			||||||
		this.initializing = true;
 | 
							this.initializing = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
			stream.on('drive_file_created', this.onStreamDriveFileCreated);
 | 
								this.stream.on('drive_file_created', this.onStreamDriveFileCreated);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			this.api('drive/stream', {
 | 
								this.api('drive/stream', {
 | 
				
			||||||
				type: 'image/*',
 | 
									type: 'image/*',
 | 
				
			||||||
| 
						 | 
					@ -81,7 +79,7 @@
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('drive_file_created', this.onStreamDriveFileCreated);
 | 
								this.stream.off('drive_file_created', this.onStreamDriveFileCreated);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onStreamDriveFileCreated = file => {
 | 
							this.onStreamDriveFileCreated = file => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -36,17 +36,15 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.isLoading = true;
 | 
							this.isLoading = true;
 | 
				
			||||||
		this.isEmpty = false;
 | 
							this.isEmpty = false;
 | 
				
			||||||
		this.moreLoading = false;
 | 
							this.moreLoading = false;
 | 
				
			||||||
		this.noFollowing = this.I.following_count == 0;
 | 
							this.noFollowing = this.I.following_count == 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
			stream.on('post', this.onStreamPost);
 | 
								this.stream.on('post', this.onStreamPost);
 | 
				
			||||||
			stream.on('follow', this.onStreamFollow);
 | 
								this.stream.on('follow', this.onStreamFollow);
 | 
				
			||||||
			stream.on('unfollow', this.onStreamUnfollow);
 | 
								this.stream.on('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			document.addEventListener('keydown', this.onDocumentKeydown);
 | 
								document.addEventListener('keydown', this.onDocumentKeydown);
 | 
				
			||||||
			window.addEventListener('scroll', this.onScroll);
 | 
								window.addEventListener('scroll', this.onScroll);
 | 
				
			||||||
| 
						 | 
					@ -55,9 +53,9 @@
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('post', this.onStreamPost);
 | 
								this.stream.off('post', this.onStreamPost);
 | 
				
			||||||
			stream.off('follow', this.onStreamFollow);
 | 
								this.stream.off('follow', this.onStreamFollow);
 | 
				
			||||||
			stream.off('unfollow', this.onStreamUnfollow);
 | 
								this.stream.off('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			document.removeEventListener('keydown', this.onDocumentKeydown);
 | 
								document.removeEventListener('keydown', this.onDocumentKeydown);
 | 
				
			||||||
			window.removeEventListener('scroll', this.onScroll);
 | 
								window.removeEventListener('scroll', this.onScroll);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -192,10 +192,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.mixin('i');
 | 
							this.mixin('i');
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('user-preview');
 | 
					 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
							this.mixin('user-preview');
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.notifications = [];
 | 
							this.notifications = [];
 | 
				
			||||||
		this.loading = true;
 | 
							this.loading = true;
 | 
				
			||||||
| 
						 | 
					@ -208,11 +206,11 @@
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			stream.on('notification', this.onNotification);
 | 
								this.stream.on('notification', this.onNotification);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('notification', this.onNotification);
 | 
								this.stream.off('notification', this.onNotification);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onNotification = notification => {
 | 
							this.onNotification = notification => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,8 +14,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.unreadCount = 0;
 | 
							this.unreadCount = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.page = this.opts.mode || 'timeline';
 | 
							this.page = this.opts.mode || 'timeline';
 | 
				
			||||||
| 
						 | 
					@ -26,12 +24,12 @@
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
			document.title = 'Misskey';
 | 
								document.title = 'Misskey';
 | 
				
			||||||
			Progress.start();
 | 
								Progress.start();
 | 
				
			||||||
			stream.on('post', this.onStreamPost);
 | 
								this.stream.on('post', this.onStreamPost);
 | 
				
			||||||
			document.addEventListener('visibilitychange', this.windowOnVisibilitychange, false);
 | 
								document.addEventListener('visibilitychange', this.windowOnVisibilitychange, false);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('post', this.onStreamPost);
 | 
								this.stream.off('post', this.onStreamPost);
 | 
				
			||||||
			document.removeEventListener('visibilitychange', this.windowOnVisibilitychange);
 | 
								document.removeEventListener('visibilitychange', this.windowOnVisibilitychange);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -369,7 +369,7 @@
 | 
				
			||||||
				type: 'capture',
 | 
									type: 'capture',
 | 
				
			||||||
				id: this.p.id
 | 
									id: this.p.id
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
			this.stream.event.on('post-updated', this.onStreamPostUpdated);
 | 
								this.stream.on('post-updated', this.onStreamPostUpdated);
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.decapture = () => {
 | 
							this.decapture = () => {
 | 
				
			||||||
| 
						 | 
					@ -377,7 +377,7 @@
 | 
				
			||||||
				type: 'decapture',
 | 
									type: 'decapture',
 | 
				
			||||||
				id: this.p.id
 | 
									id: this.p.id
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
			this.stream.event.off('post-updated', this.onStreamPostUpdated);
 | 
								this.stream.off('post-updated', this.onStreamPostUpdated);
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -99,13 +99,11 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.page = this.opts.page;
 | 
							this.page = this.opts.page;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
			stream.on('read_all_messaging_messages', this.onReadAllMessagingMessages);
 | 
								this.stream.on('read_all_messaging_messages', this.onReadAllMessagingMessages);
 | 
				
			||||||
			stream.on('unread_messaging_message', this.onUnreadMessagingMessage);
 | 
								this.stream.on('unread_messaging_message', this.onUnreadMessagingMessage);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Fetch count of unread messaging messages
 | 
								// Fetch count of unread messaging messages
 | 
				
			||||||
			this.api('messaging/unread').then(res => {
 | 
								this.api('messaging/unread').then(res => {
 | 
				
			||||||
| 
						 | 
					@ -118,8 +116,8 @@
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('read_all_messaging_messages', this.onReadAllMessagingMessages);
 | 
								this.stream.off('read_all_messaging_messages', this.onReadAllMessagingMessages);
 | 
				
			||||||
			stream.off('unread_messaging_message', this.onUnreadMessagingMessage);
 | 
								this.stream.off('unread_messaging_message', this.onUnreadMessagingMessage);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onReadAllMessagingMessages = () => {
 | 
							this.onReadAllMessagingMessages = () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -159,8 +159,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.files = [];
 | 
							this.files = [];
 | 
				
			||||||
		this.folders = [];
 | 
							this.folders = [];
 | 
				
			||||||
		this.hierarchyFolders = [];
 | 
							this.hierarchyFolders = [];
 | 
				
			||||||
| 
						 | 
					@ -176,10 +174,10 @@
 | 
				
			||||||
		this.multiple =this.opts.multiple;
 | 
							this.multiple =this.opts.multiple;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
			stream.on('drive_file_created', this.onStreamDriveFileCreated);
 | 
								this.stream.on('drive_file_created', this.onStreamDriveFileCreated);
 | 
				
			||||||
			stream.on('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
								this.stream.on('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
				
			||||||
			stream.on('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
								this.stream.on('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
				
			||||||
			stream.on('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
								this.stream.on('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			// Riotのバグでnullを渡しても""になる
 | 
								// Riotのバグでnullを渡しても""になる
 | 
				
			||||||
			// https://github.com/riot/riot/issues/2080
 | 
								// https://github.com/riot/riot/issues/2080
 | 
				
			||||||
| 
						 | 
					@ -195,10 +193,10 @@
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('drive_file_created', this.onStreamDriveFileCreated);
 | 
								this.stream.off('drive_file_created', this.onStreamDriveFileCreated);
 | 
				
			||||||
			stream.off('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
								this.stream.off('drive_file_updated', this.onStreamDriveFileUpdated);
 | 
				
			||||||
			stream.off('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
								this.stream.off('drive_folder_created', this.onStreamDriveFolderCreated);
 | 
				
			||||||
			stream.off('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
								this.stream.off('drive_folder_updated', this.onStreamDriveFolderUpdated);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onStreamDriveFileCreated = file => {
 | 
							this.onStreamDriveFileCreated = file => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,8 +54,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.user = null;
 | 
							this.user = null;
 | 
				
			||||||
		this.userPromise = isPromise(this.opts.user)
 | 
							this.userPromise = isPromise(this.opts.user)
 | 
				
			||||||
			? this.opts.user
 | 
								? this.opts.user
 | 
				
			||||||
| 
						 | 
					@ -69,14 +67,14 @@
 | 
				
			||||||
					init: false,
 | 
										init: false,
 | 
				
			||||||
					user: user
 | 
										user: user
 | 
				
			||||||
				});
 | 
									});
 | 
				
			||||||
				stream.on('follow', this.onStreamFollow);
 | 
									this.stream.on('follow', this.onStreamFollow);
 | 
				
			||||||
				stream.on('unfollow', this.onStreamUnfollow);
 | 
									this.stream.on('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('follow', this.onStreamFollow);
 | 
								this.stream.off('follow', this.onStreamFollow);
 | 
				
			||||||
			stream.off('unfollow', this.onStreamUnfollow);
 | 
								this.stream.off('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onStreamFollow = user => {
 | 
							this.onStreamFollow = user => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,8 +9,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.init = new Promise((res, rej) => {
 | 
							this.init = new Promise((res, rej) => {
 | 
				
			||||||
			this.api('posts/timeline').then(posts => {
 | 
								this.api('posts/timeline').then(posts => {
 | 
				
			||||||
				res(posts);
 | 
									res(posts);
 | 
				
			||||||
| 
						 | 
					@ -19,15 +17,15 @@
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
			stream.on('post', this.onStreamPost);
 | 
								this.stream.on('post', this.onStreamPost);
 | 
				
			||||||
			stream.on('follow', this.onStreamFollow);
 | 
								this.stream.on('follow', this.onStreamFollow);
 | 
				
			||||||
			stream.on('unfollow', this.onStreamUnfollow);
 | 
								this.stream.on('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('post', this.onStreamPost);
 | 
								this.stream.off('post', this.onStreamPost);
 | 
				
			||||||
			stream.off('follow', this.onStreamFollow);
 | 
								this.stream.off('follow', this.onStreamFollow);
 | 
				
			||||||
			stream.off('unfollow', this.onStreamUnfollow);
 | 
								this.stream.off('unfollow', this.onStreamUnfollow);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.more = () => {
 | 
							this.more = () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -63,8 +63,6 @@
 | 
				
			||||||
		this.mixin('api');
 | 
							this.mixin('api');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.notifications = [];
 | 
							this.notifications = [];
 | 
				
			||||||
		this.loading = true;
 | 
							this.loading = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -78,11 +76,11 @@
 | 
				
			||||||
				this.trigger('fetched');
 | 
									this.trigger('fetched');
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			stream.on('notification', this.onNotification);
 | 
								this.stream.on('notification', this.onNotification);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('notification', this.onNotification);
 | 
								this.stream.off('notification', this.onNotification);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.onNotification = notification => {
 | 
							this.onNotification = notification => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -15,8 +15,6 @@
 | 
				
			||||||
		this.mixin('i');
 | 
							this.mixin('i');
 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.unreadCount = 0;
 | 
							this.unreadCount = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
| 
						 | 
					@ -29,7 +27,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			Progress.start();
 | 
								Progress.start();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			stream.on('post', this.onStreamPost);
 | 
								this.stream.on('post', this.onStreamPost);
 | 
				
			||||||
			document.addEventListener('visibilitychange', this.onVisibilitychange, false);
 | 
								document.addEventListener('visibilitychange', this.onVisibilitychange, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			this.refs.ui.refs.home.on('loaded', () => {
 | 
								this.refs.ui.refs.home.on('loaded', () => {
 | 
				
			||||||
| 
						 | 
					@ -38,7 +36,7 @@
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('post', this.onStreamPost);
 | 
								this.stream.off('post', this.onStreamPost);
 | 
				
			||||||
			document.removeEventListener('visibilitychange', this.onVisibilitychange);
 | 
								document.removeEventListener('visibilitychange', this.onVisibilitychange);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -345,7 +345,7 @@
 | 
				
			||||||
				type: 'capture',
 | 
									type: 'capture',
 | 
				
			||||||
				id: this.p.id
 | 
									id: this.p.id
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
			this.stream.event.on('post-updated', this.onStreamPostUpdated);
 | 
								this.stream.on('post-updated', this.onStreamPostUpdated);
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.decapture = () => {
 | 
							this.decapture = () => {
 | 
				
			||||||
| 
						 | 
					@ -353,7 +353,7 @@
 | 
				
			||||||
				type: 'decapture',
 | 
									type: 'decapture',
 | 
				
			||||||
				id: this.p.id
 | 
									id: this.p.id
 | 
				
			||||||
			});
 | 
								});
 | 
				
			||||||
			this.stream.event.off('post-updated', this.onStreamPostUpdated);
 | 
								this.stream.off('post-updated', this.onStreamPostUpdated);
 | 
				
			||||||
		};
 | 
							};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,19 +12,16 @@
 | 
				
			||||||
	</style>
 | 
						</style>
 | 
				
			||||||
	<script>
 | 
						<script>
 | 
				
			||||||
		this.mixin('i');
 | 
							this.mixin('i');
 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.mixin('stream');
 | 
							this.mixin('stream');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		const stream = this.stream.event;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		this.isDrawerOpening = false;
 | 
							this.isDrawerOpening = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('mount', () => {
 | 
							this.on('mount', () => {
 | 
				
			||||||
			stream.on('notification', this.onStreamNotification);
 | 
								this.stream.on('notification', this.onStreamNotification);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.on('unmount', () => {
 | 
							this.on('unmount', () => {
 | 
				
			||||||
			stream.off('notification', this.onStreamNotification);
 | 
								this.stream.off('notification', this.onStreamNotification);
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		this.toggleDrawer = () => {
 | 
							this.toggleDrawer = () => {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue