Recognise image spoilers (based on "body")
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				continuous-integration/drone/push Build is passing
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			This commit is contained in:
		
							parent
							
								
									a004e84adc
								
							
						
					
					
						commit
						2e91ff8ff2
					
				
					 2 changed files with 52 additions and 1 deletions
				
			
		| 
						 | 
					@ -16,7 +16,23 @@ class Image extends GroupableEvent {
 | 
				
			||||||
			image.attribute("width", info.w)
 | 
								image.attribute("width", info.w)
 | 
				
			||||||
			image.attribute("height", info.h)
 | 
								image.attribute("height", info.h)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		this.child(image)
 | 
							const wrapper = ejs("div").class("c-media__wrapper").child(
 | 
				
			||||||
 | 
								image
 | 
				
			||||||
 | 
							)
 | 
				
			||||||
 | 
							if (this.data.content.body && this.data.content.body.startsWith("SPOILER")) {
 | 
				
			||||||
 | 
								wrapper.attribute("tabindex", 0)
 | 
				
			||||||
 | 
								wrapper.class("c-media--spoiler")
 | 
				
			||||||
 | 
								const wall = ejs("div").class("c-media__spoiler").text("Spoiler")
 | 
				
			||||||
 | 
								wrapper.child(wall)
 | 
				
			||||||
 | 
								function toggle() {
 | 
				
			||||||
 | 
									wrapper.element.classList.toggle("c-media--shown")
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
								wrapper.on("click", toggle)
 | 
				
			||||||
 | 
								wrapper.on("keydown", event => {
 | 
				
			||||||
 | 
									if (event.key === "Enter") toggle()
 | 
				
			||||||
 | 
								})
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							this.child(wrapper)
 | 
				
			||||||
		super.render()
 | 
							super.render()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -58,6 +58,7 @@
 | 
				
			||||||
    // fix whitespace
 | 
					    // fix whitespace
 | 
				
			||||||
    font-size: 0
 | 
					    font-size: 0
 | 
				
			||||||
    margin-top: 8px
 | 
					    margin-top: 8px
 | 
				
			||||||
 | 
					    display: flex
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  &--pending
 | 
					  &--pending
 | 
				
			||||||
    opacity: 0.5
 | 
					    opacity: 0.5
 | 
				
			||||||
| 
						 | 
					@ -149,3 +150,37 @@
 | 
				
			||||||
    padding: 12px
 | 
					    padding: 12px
 | 
				
			||||||
    background-color: c.$milder
 | 
					    background-color: c.$milder
 | 
				
			||||||
    border-radius: 8px
 | 
					    border-radius: 8px
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.c-media
 | 
				
			||||||
 | 
					  &__wrapper
 | 
				
			||||||
 | 
					    overflow: hidden
 | 
				
			||||||
 | 
					    position: relative
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  &--spoiler
 | 
				
			||||||
 | 
					    cursor: pointer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    img
 | 
				
			||||||
 | 
					      filter: blur(40px)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  &--shown img
 | 
				
			||||||
 | 
					    filter: none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  &__spoiler
 | 
				
			||||||
 | 
					    position: absolute
 | 
				
			||||||
 | 
					    top: 0
 | 
				
			||||||
 | 
					    bottom: 0
 | 
				
			||||||
 | 
					    left: 0
 | 
				
			||||||
 | 
					    right: 0
 | 
				
			||||||
 | 
					    display: flex
 | 
				
			||||||
 | 
					    align-items: center
 | 
				
			||||||
 | 
					    justify-content: center
 | 
				
			||||||
 | 
					    font-size: 18px
 | 
				
			||||||
 | 
					    font-weight: 500
 | 
				
			||||||
 | 
					    color: #fff
 | 
				
			||||||
 | 
					    text-transform: uppercase
 | 
				
			||||||
 | 
					    background: rgba(0, 0, 0, 0.3)
 | 
				
			||||||
 | 
					    cursor: pointer
 | 
				
			||||||
 | 
					    pointer-events: none
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  &--shown &__spoiler
 | 
				
			||||||
 | 
					    display: none
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue