annotate libervia/web/pages/_browser/components.py @ 1621:d7c8a986f4fb default tip

doc (chat): chat documentation first draft: Include documentation for thread/reply. fix 457
author Goffi <goffi@goffi.org>
date Tue, 06 May 2025 00:40:53 +0200
parents a2cd4222c702
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1619
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 from browser import document
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
2
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
3 def init_collapsible_cards(parent_elt=None) -> None:
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 """Initialize cards which can be collapsed."""
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
5 parent = parent_elt or document
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
6 cards = parent.select('.collapsible-card')
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
7
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
8 for card in cards:
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
9 header = card.select_one('.collapsible-header')
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
10 content = card.select_one('.collapsible-content')
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
11
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
12 content.style.maxHeight = 'none'
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
13 natural_height = content.scrollHeight
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 content.dataset.natural_height = natural_height
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
15
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
16 header.bind('click', lambda ev: _toggle_card(ev))
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
17
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
18 def _toggle_card(event):
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
19 """Collapse/expand the card."""
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
20 header = event.currentTarget
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
21 card = header.closest('.collapsible-card')
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
22 content = card.select_one('.collapsible-content')
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
23
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
24 if content.style.maxHeight == '0px':
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
25 # Expand
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
26 content.style.maxHeight = f"{content.dataset.natural_height}px"
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
27 header.classList.remove('collapsed')
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
28 else:
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
29 # Collapse
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
30 content.style.maxHeight = '0px'
a2cd4222c702 browser: Updates for new design:
Goffi <goffi@goffi.org>
parents:
diff changeset
31 header.classList.add('collapsed')