You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
1.5 KiB

2 years ago
import { chunk, fill } from 'lodash'
tag app-tips
2 years ago
def unmount
show_more = no
2 years ago
def toggle
show_more = not show_more
get placeholder
<.tip.placeholder>
def pad arr
let i = arr.length
while i < 3
arr.push placeholder
i += 1
def get_chunks
let chunks = chunk(tips, 3)
pad(chunks[-1])
chunks
css >>> .tip-row
d:flex fld:row w:100% fl:1
2 years ago
fs:20px fs:14px
jc:end ta:center
css >>> .tip
d:flex fld:column jc:start fl:1
2 years ago
bdr:1px solid
bc:$tip-bc
min-width:0 ta:center p:10px
cursor:pointer transition:background 100ms
@first ta:left rdl:3px
@last ta:right bd:none rdr:3px
2 years ago
@hover bg:$tip-hover-c
2 years ago
css >>> .tip.noclick, .tip.placeholder
@hover bg:none cursor:auto
css >>> .tip-hotkey
2 years ago
fs:12px c:$tip-hotkey-c
css >>> .tip-content
2 years ago
pt:2px fs:14px c:$tip-content-c
2 years ago
def render
let chunks = get_chunks!
2 years ago
<self[d:none]=!config.data.enable_tips>
2 years ago
css d:flex fld:column gap:15px
2 years ago
2 years ago
<.tip-row>
for tip in chunks[0]
<> tip
if chunks.length > 1
<@click=toggle>
2 years ago
css w:100% d:flex ja:center c:$button-c rdb:4px cursor:pointer
2 years ago
transition:background 100ms
2 years ago
@hover bg:$tip-hover-c
2 years ago
if show_more
css rd:0
css svg w:15px
if show_more
<svg src="../assets/chevron-down.svg">
else
<svg src="../assets/chevron-up.svg">
<.more>
css d:flex fld:column gap:15px
unless show_more
css d:none
for row in chunks.slice(1)
<.tip-row>
for tip in row
<> tip