| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -82,6 +82,8 @@ export const COMPOSE_FOCUS = 'COMPOSE_FOCUS';
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				const messages = defineMessages({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  uploadErrorLimit: { id: 'upload_error.limit', defaultMessage: 'File upload limit exceeded.' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  uploadErrorPoll:  { id: 'upload_error.poll', defaultMessage: 'File upload not allowed with polls.' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  open: { id: 'compose.published.open', defaultMessage: 'Open' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  published: { id: 'compose.published.body', defaultMessage: 'Post published.' },
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				});
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				export const ensureComposeIsVisible = (getState, routerHistory) => {
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -240,6 +242,13 @@ export function submitCompose(routerHistory) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        insertIfOnline('public');
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        insertIfOnline(`account:${response.data.account.id}`);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      dispatch(showAlert({
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        message: messages.published,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        action: messages.open,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        dismissAfter: 10000,
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        onClick: () => routerHistory.push(`/@${response.data.account.username}/${response.data.id}`),
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      }));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }).catch(function (error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      dispatch(submitComposeFail(error));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    });
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -269,18 +278,19 @@ export function submitComposeFail(error) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				export function uploadCompose(files) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				  return function (dispatch, getState) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const uploadLimit = 4;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const media  = getState().getIn(['compose', 'media_attachments']);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const pending  = getState().getIn(['compose', 'pending_media_attachments']);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const media = getState().getIn(['compose', 'media_attachments']);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const pending = getState().getIn(['compose', 'pending_media_attachments']);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    const progress = new Array(files.length).fill(0);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    let total = Array.from(files).reduce((a, v) => a + v.size, 0);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if (files.length + media.size + pending > uploadLimit) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      dispatch(showAlert(undefined, messages.uploadErrorLimit));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      dispatch(showAlert({ message: messages.uploadErrorLimit }));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      return;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    if (getState().getIn(['compose', 'poll'])) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      dispatch(showAlert(undefined, messages.uploadErrorPoll));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      dispatch(showAlert({ message: messages.uploadErrorPoll }));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				      return;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |