Skip to content

Commit 9a0924b

Browse files
committed
Fix Galleria
1 parent c711143 commit 9a0924b

File tree

1 file changed

+51
-51
lines changed

1 file changed

+51
-51
lines changed

lib/src/widgets/html/galleria.dart

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,113 @@
1-
// ignore_for_file: deprecated_member_use
2-
31
part of '../html.dart';
42

53
const kColumns = 3;
64
const kSpacing = 3.0;
75

86
class Galleria {
9-
final BuildMetadata galleryMeta;
7+
final BuildTree galleryTree;
108
final TinhteWidgetFactory wf;
119

10+
final _items = <WidgetPlaceholder>[];
1211
final _lb = LbTrigger();
1312

14-
Galleria(this.wf, this.galleryMeta);
13+
Galleria(this.wf, this.galleryTree);
1514

1615
BuildOp? _galleriaOp;
1716
BuildOp get op {
18-
return _galleriaOp ??= BuildOp(
17+
return _galleriaOp ??= BuildOp.v1(
1918
onChild: onChild,
20-
onWidgets: onWidgets,
19+
onRenderBlock: onRenderBlock,
2120
);
2221
}
2322

24-
void onChild(BuildMetadata childMeta) {
25-
final e = childMeta.element;
26-
if (e.parent != galleryMeta.element) return;
23+
void onChild(BuildTree _, BuildTree subTree) {
24+
final e = subTree.element;
25+
if (e.parent != galleryTree.element) return;
2726
if (e.localName != 'li') return;
28-
29-
childMeta.register(_GalleriaItem(wf, this, childMeta).op);
27+
subTree.register(_GalleriaItem(wf, this, subTree).op);
3028
}
3129

32-
Iterable<Widget> onWidgets(
33-
BuildMetadata _, Iterable<WidgetPlaceholder> widgets) =>
34-
[
35-
WidgetPlaceholder<Galleria>(this,
36-
child: _GalleriaGrid(widgets.toList(growable: false)))
37-
];
30+
Widget onRenderBlock(BuildTree _, WidgetPlaceholder placeholder) =>
31+
_items.isNotEmpty ? _GalleriaGrid(_items) : placeholder;
3832
}
3933

4034
class _GalleriaItem {
41-
final BuildMetadata itemMeta;
35+
final BuildTree itemTree;
4236
final Galleria galleria;
4337
final WidgetFactory wf;
4438

4539
Widget? _description;
4640
BuildOp? _descriptionOp;
4741
String? _source;
48-
WidgetPlaceholder? _trigger;
42+
Widget? _trigger;
4943
BuildOp? _triggerOp;
5044

51-
_GalleriaItem(this.wf, this.galleria, this.itemMeta);
45+
_GalleriaItem(this.wf, this.galleria, this.itemTree);
5246

5347
BuildOp? _itemOp;
5448
BuildOp get op {
55-
return _itemOp ??= BuildOp(
49+
return _itemOp ??= BuildOp.v1(
5650
onChild: onChild,
57-
onWidgets: onWidgets,
51+
onRenderBlock: onRenderBlock,
5852
);
5953
}
6054

61-
void onChild(BuildMetadata childMeta) {
62-
final e = childMeta.element;
63-
if (e.parent != itemMeta.element) return;
55+
void onChild(BuildTree _, BuildTree subSubTree) {
56+
final e = subSubTree.element;
57+
if (e.parent != itemTree.element) return;
6458

6559
switch (e.className) {
6660
case 'LbTrigger':
6761
_source ??= wf.urlFull(e.attributes['href'] ?? '');
68-
final triggerOp = _triggerOp ??= BuildOp(
69-
onWidgets: (meta, widgets) {
70-
// bypass built-in A tag handling with 0 priority
71-
// and NOT returning anything in `onWidgets`
72-
_trigger = wf.buildColumnPlaceholder(meta, widgets);
73-
return [];
74-
},
75-
priority: 0,
62+
final triggerOp = _triggerOp ??= BuildOp.v1(
63+
alwaysRenderBlock: true,
64+
onRenderedBlock: (_, block) => _trigger = block,
7665
);
77-
childMeta.register(triggerOp);
66+
subSubTree.register(triggerOp);
7867
break;
7968
case 'Tinhte_Gallery_Description':
80-
final descriptionOp = _descriptionOp ??= BuildOp(
81-
onWidgets: (meta, widgets) {
82-
meta.tsb.enqueue((p, dynamic _) => p.copyWith(
83-
style: p
84-
.getDependency<ThemeData>()
85-
.textTheme
86-
.bodySmall
87-
?.copyWith(color: kCaptionColor)));
88-
_description = wf.buildColumnPlaceholder(meta, widgets);
89-
return [];
69+
final descriptionOp = _descriptionOp ??= BuildOp.v1(
70+
alwaysRenderBlock: true,
71+
onParsed: (descriptionTree) {
72+
return descriptionTree
73+
..apply<BuildContext?>(
74+
(style, context) => style.copyWith(
75+
textStyle: Theme.of(context!)
76+
.textTheme
77+
.bodySmall
78+
?.copyWith(color: kCaptionColor),
79+
),
80+
null,
81+
);
9082
},
83+
onRenderedBlock: (_, block) => _description = block,
9184
);
92-
childMeta.register(descriptionOp);
85+
subSubTree.register(descriptionOp);
9386
break;
9487
}
9588
}
9689

97-
Iterable<Widget> onWidgets(
98-
BuildMetadata _, Iterable<WidgetPlaceholder> widgets) {
90+
Widget onRenderBlock(BuildTree _, WidgetPlaceholder placeholder) {
9991
final scopedSource = _source;
10092
final scopedTrigger = _trigger;
101-
if (scopedSource == null || scopedTrigger == null) return widgets;
93+
if (scopedSource == null || scopedTrigger == null) return placeholder;
10294

10395
final index = galleria._lb.addSource(
10496
LbTriggerSource.image(scopedSource),
10597
caption: _description,
10698
);
107-
scopedTrigger.wrapWith((context, child) =>
108-
galleria._lb.buildGestureDetector(context, child, index));
10999

110-
return [scopedTrigger];
100+
galleria._items.add(
101+
WidgetPlaceholder.lazy(
102+
scopedTrigger,
103+
debugLabel: '${itemTree.element.localName}--galleriaItem',
104+
).wrapWith(
105+
(context, child) =>
106+
galleria._lb.buildGestureDetector(context, child, index),
107+
),
108+
);
109+
110+
return widget0;
111111
}
112112
}
113113

0 commit comments

Comments
 (0)