| 
									
										
										
										
											2018-03-15 20:04:24 -07:00
										 |  |  | {{#if sensitive }} | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  | <div class="status-sensitive-media-container {{sensitiveShown ? 'status-sensitive-media-shown' : 'status-sensitive-media-hidden'}}" | 
					
						
							|  |  |  | > | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  |   {{#if sensitiveShown}} | 
					
						
							|  |  |  |   <button type="button" | 
					
						
							|  |  |  |           class="status-sensitive-media-button" | 
					
						
							|  |  |  |           aria-label="Hide sensitive media" | 
					
						
							| 
									
										
										
										
											2018-03-15 08:59:30 -07:00
										 |  |  |           delegate-key="{{delegateKey}}" > | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     <div class="svg-wrapper"> | 
					
						
							| 
									
										
										
										
											2018-03-16 08:42:10 -07:00
										 |  |  |       <svg class="status-sensitive-media-svg"> | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  |         <use xlink:href="#fa-eye-slash" /> | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |       </svg> | 
					
						
							|  |  |  |     </div> | 
					
						
							|  |  |  |   </button> | 
					
						
							| 
									
										
										
										
											2018-04-05 18:18:23 -07:00
										 |  |  |   <MediaAttachments :mediaAttachments :sensitive :uuid /> | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  |   {{else}} | 
					
						
							|  |  |  |     <button type="button" | 
					
						
							|  |  |  |             class="status-sensitive-media-button" | 
					
						
							|  |  |  |             aria-label="Show sensitive media" | 
					
						
							| 
									
										
										
										
											2018-03-15 08:59:30 -07:00
										 |  |  |             delegate-key="{{delegateKey}}" > | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |       <div class="status-sensitive-media-warning"> | 
					
						
							|  |  |  |         <span>Sensitive content. Click to show.</span> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |       <div class="svg-wrapper"> | 
					
						
							| 
									
										
										
										
											2018-03-16 08:42:10 -07:00
										 |  |  |         <svg class="status-sensitive-media-svg"> | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  |           <use xlink:href="#fa-eye" /> | 
					
						
							|  |  |  |         </svg> | 
					
						
							|  |  |  |       </div> | 
					
						
							|  |  |  |     </button> | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |   {{/if}} | 
					
						
							|  |  |  | </div> | 
					
						
							|  |  |  | {{else}} | 
					
						
							| 
									
										
										
										
											2018-04-05 18:18:23 -07:00
										 |  |  |   <MediaAttachments :mediaAttachments :sensitive :uuid /> | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  | {{/if}} | 
					
						
							|  |  |  | <style> | 
					
						
							|  |  |  |   .status-sensitive-media-container { | 
					
						
							| 
									
										
										
										
											2018-02-09 20:07:48 -08:00
										 |  |  |     grid-area: media; | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     margin: 10px 0; | 
					
						
							|  |  |  |     position: relative; | 
					
						
							|  |  |  |     border-radius: 0; | 
					
						
							|  |  |  |     border: none; | 
					
						
							|  |  |  |     background: none; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .status-sensitive-media-button { | 
					
						
							|  |  |  |     margin: 0; | 
					
						
							|  |  |  |     padding: 0; | 
					
						
							|  |  |  |     border: none; | 
					
						
							|  |  |  |     background: none; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .status-sensitive-media-button:hover { | 
					
						
							|  |  |  |     background: none; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .status-sensitive-media-button:active { | 
					
						
							|  |  |  |     background: none; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .status-sensitive-media-shown .status-sensitive-media-button { | 
					
						
							|  |  |  |     position: absolute; | 
					
						
							|  |  |  |     left: 0; | 
					
						
							|  |  |  |     top: 0; | 
					
						
							|  |  |  |     z-index: 90; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  |   .status-sensitive-media-hidden .status-sensitive-media-button { | 
					
						
							|  |  |  |     right: 0; | 
					
						
							|  |  |  |     bottom: 0; | 
					
						
							|  |  |  |     width: 100%; | 
					
						
							|  |  |  |     height: 100%; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |   .status-sensitive-media-container.status-sensitive-media-hidden { | 
					
						
							|  |  |  |     width: 100%; | 
					
						
							|  |  |  |     margin: 10px auto; | 
					
						
							|  |  |  |     height: 200px; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .status-sensitive-media-container .status-sensitive-media-warning { | 
					
						
							|  |  |  |     position: absolute; | 
					
						
							|  |  |  |     top: 0; | 
					
						
							|  |  |  |     left: 0; | 
					
						
							|  |  |  |     right: 0; | 
					
						
							|  |  |  |     bottom: 0; | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     align-items: center; | 
					
						
							|  |  |  |     justify-content: center; | 
					
						
							|  |  |  |     color: var(--deemphasized-text-color); | 
					
						
							|  |  |  |     z-index: 60; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   .status-sensitive-media-container .svg-wrapper { | 
					
						
							|  |  |  |     display: flex; | 
					
						
							|  |  |  |     align-items: flex-start; | 
					
						
							|  |  |  |     justify-content: flex-start; | 
					
						
							|  |  |  |     z-index: 40; | 
					
						
							|  |  |  |     pointer-events: none; | 
					
						
							|  |  |  |     background: var(--mask-bg); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  |   .status-sensitive-media-hidden .svg-wrapper { | 
					
						
							|  |  |  |     position: absolute; | 
					
						
							|  |  |  |     top: 0; | 
					
						
							|  |  |  |     left: 0; | 
					
						
							|  |  |  |     right: 0; | 
					
						
							|  |  |  |     bottom: 0; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |   .status-sensitive-media-container.status-sensitive-media-shown .svg-wrapper { | 
					
						
							|  |  |  |     background: none; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2018-03-16 08:42:10 -07:00
										 |  |  |   .status-sensitive-media-svg { | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     width: 24px; | 
					
						
							|  |  |  |     height: 24px; | 
					
						
							|  |  |  |     fill: var(--mask-svg-fill); | 
					
						
							|  |  |  |     border-radius: 2px; | 
					
						
							|  |  |  |     background: var(--mask-opaque-bg); | 
					
						
							|  |  |  |     margin: 1px; | 
					
						
							|  |  |  |     padding: 6px 10px; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2018-03-16 08:42:10 -07:00
										 |  |  |   .status-sensitive-media-container.status-sensitive-media-hidden .status-sensitive-media-svg { | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     fill: var(--deemphasized-text-color); | 
					
						
							|  |  |  |     background: var(--mask-opaque-bg); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </style> | 
					
						
							|  |  |  | <script> | 
					
						
							| 
									
										
										
										
											2018-02-04 19:56:06 -08:00
										 |  |  |   import MediaAttachments from './MediaAttachments.html' | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |   import { store } from '../../_store/store' | 
					
						
							| 
									
										
										
										
											2018-03-15 08:59:30 -07:00
										 |  |  |   import { registerClickDelegate, unregisterClickDelegate } from '../../_utils/delegate' | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  |   export default { | 
					
						
							| 
									
										
										
										
											2018-03-15 08:59:30 -07:00
										 |  |  |     oncreate() { | 
					
						
							|  |  |  |       registerClickDelegate(this.get('delegateKey'), () => this.onClickSensitiveMediaButton()) | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  |     ondestroy() { | 
					
						
							|  |  |  |       unregisterClickDelegate(this.get('delegateKey')) | 
					
						
							|  |  |  |     }, | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     components: { | 
					
						
							| 
									
										
										
										
											2018-02-04 19:56:06 -08:00
										 |  |  |       MediaAttachments | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     }, | 
					
						
							|  |  |  |     store: () => store, | 
					
						
							|  |  |  |     computed: { | 
					
						
							| 
									
										
										
										
											2018-03-15 20:04:24 -07:00
										 |  |  |       mediaAttachments: (originalStatus) => originalStatus.media_attachments, | 
					
						
							|  |  |  |       sensitiveShown: ($sensitivesShown, uuid) => !!$sensitivesShown[uuid], | 
					
						
							|  |  |  |       sensitive: (originalStatus, $markMediaAsSensitive) => originalStatus.sensitive || $markMediaAsSensitive, | 
					
						
							|  |  |  |       delegateKey: (uuid) => `sensitive-${uuid}`, | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     }, | 
					
						
							|  |  |  |     methods: { | 
					
						
							|  |  |  |       onClickSensitiveMediaButton() { | 
					
						
							| 
									
										
										
										
											2018-03-15 20:04:24 -07:00
										 |  |  |         let uuid = this.get('uuid') | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |         let $sensitivesShown = this.store.get('sensitivesShown') || {} | 
					
						
							| 
									
										
										
										
											2018-03-15 20:04:24 -07:00
										 |  |  |         $sensitivesShown[uuid] = !$sensitivesShown[uuid] | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |         this.store.set({'sensitivesShown': $sensitivesShown}) | 
					
						
							|  |  |  |         this.fire('recalculateHeight') | 
					
						
							| 
									
										
										
										
											2018-02-04 15:59:42 -08:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2018-02-04 10:16:27 -08:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | </script> |