@ -32,6 +32,7 @@ import {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				}  from  '../actions/compose' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  TIMELINE _DELETE  }  from  '../actions/timelines' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  STORE _HYDRATE  }  from  '../actions/store' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  REDRAFT  }  from  '../actions/statuses' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  Map  as  ImmutableMap ,  List  as  ImmutableList ,  OrderedSet  as  ImmutableOrderedSet ,  fromJS  }  from  'immutable' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  uuid  from  '../uuid' ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				import  {  me  }  from  '../initial_state' ; 
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -170,6 +171,18 @@ const hydrate = (state, hydratedState) => {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  state ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				const  domParser  =  new  DOMParser ( ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				const  htmlToText  =  status  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  const  fragment  =  domParser . parseFromString ( status . get ( 'content' ) ,  'text/html' ) . documentElement ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  status . get ( 'mentions' ) . forEach ( mention  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    fragment . querySelector ( ` a[href=" ${ mention . get ( 'url' ) } "] ` ) . textContent  =  ` @ ${ mention . get ( 'acct' ) } ` ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  return  fragment . textContent ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				} ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				export  default  function  compose ( state  =  initialState ,  action )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  switch ( action . type )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  case  STORE _HYDRATE : 
 
			
		 
		
	
	
		
			
				
					
						
							
								 
							 
						
						
							
								 
							 
						
						
					 
				
			
			 
			 
			
				@ -301,6 +314,24 @@ export default function compose(state = initialState, action) {
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        return  item ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      } ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  case  REDRAFT : 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    return  state . withMutations ( map  =>  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      map . set ( 'text' ,  htmlToText ( action . status ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      map . set ( 'in_reply_to' ,  action . status . get ( 'in_reply_to_id' ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      map . set ( 'privacy' ,  action . status . get ( 'visibility' ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      map . set ( 'media_attachments' ,  action . status . get ( 'media_attachments' ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      map . set ( 'focusDate' ,  new  Date ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      map . set ( 'caretPosition' ,  null ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      map . set ( 'idempotencyKey' ,  uuid ( ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      if  ( action . status . get ( 'spoiler_text' ) . length  >  0 )  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        map . set ( 'spoiler' ,  true ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        map . set ( 'spoiler_text' ,  action . status . get ( 'spoiler_text' ) ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      }  else  { 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        map . set ( 'spoiler' ,  false ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				        map . set ( 'spoiler_text' ,  '' ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				      } 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    } ) ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  default : 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				    return  state ; 
 
			
		 
		
	
		
			
				 
				 
			
			 
			 
			
				  }