Skip to content

Commit f27e25f

Browse files
committed
feat(ClientTriggers): now emit exit event
1 parent 5f17f19 commit f27e25f

File tree

5 files changed

+53
-27
lines changed

5 files changed

+53
-27
lines changed

examples/triggerBug.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
from trame.app import get_server
2+
from trame.ui.html import DivLayout
3+
from trame.widgets import client, html, trame
4+
5+
6+
server = get_server(client_type="vue3")
7+
8+
9+
def app_exit():
10+
print("App exited")
11+
12+
13+
with DivLayout(server):
14+
a = client.ClientTriggers(exit=app_exit)
15+
b = trame.ClientTriggers(exit=app_exit)
16+
print(f"{a=}")
17+
print(f"{b=}")
18+
html.H1("App")
19+
20+
# trame.ListBrowser() # Uncommenting this line makes the `exit` event not trigger the callback
21+
22+
if __name__ == "__main__":
23+
24+
server.start()

trame_components/widgets/trame.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ClientStateChange(HtmlElement):
4343
"""
4444

4545
def __init__(self, children=None, **kwargs):
46-
super().__init__("trame-client-state-change", children, **kwargs)
46+
super().__init__("tc-client-state-change", children, **kwargs)
4747
self._attr_names += [
4848
("value", ":value"),
4949
"immediate",
@@ -65,7 +65,7 @@ class ClientTriggers(HtmlElement):
6565

6666
def __init__(self, ref="trame_triggers", children=None, **kwargs):
6767
self.__name = ref
68-
super().__init__("trame-client-triggers", children=None, ref=ref, **kwargs)
68+
super().__init__("tc-client-triggers", children=None, ref=ref, **kwargs)
6969
self._attr_names += ["ref"]
7070
self._event_names += list(kwargs.keys())
7171

@@ -89,7 +89,7 @@ class Cursor(HtmlElement):
8989
"""
9090

9191
def __init__(self, **kwargs):
92-
super().__init__("trame-cursor", **kwargs)
92+
super().__init__("tc-cursor", **kwargs)
9393
self._attr_names += ["active", "cursors"]
9494

9595

@@ -113,7 +113,7 @@ class LifeCycleMonitor(HtmlElement):
113113
"""
114114

115115
def __init__(self, children=None, **kwargs):
116-
super().__init__("trame-life-cycle-monitor", children, **kwargs)
116+
super().__init__("tc-life-cycle-monitor", children, **kwargs)
117117
self._attr_names += [
118118
"name",
119119
"type",
@@ -153,7 +153,7 @@ class MouseTrap(HtmlElement):
153153
"""
154154

155155
def __init__(self, **kwargs):
156-
super().__init__("trame-mouse-trap", **kwargs)
156+
super().__init__("tc-mouse-trap", **kwargs)
157157
self._attributes["_trame_mapping"] = ':mapping="trame__mousetrap"'
158158
self._event_names += [*kwargs.keys()]
159159

@@ -189,7 +189,7 @@ class SizeObserver(HtmlElement):
189189
"""
190190

191191
def __init__(self, _name, **kwargs):
192-
super().__init__("trame-size-observer", **kwargs)
192+
super().__init__("tc-size-observer", **kwargs)
193193
self._attr_names += [
194194
"name",
195195
]
@@ -241,7 +241,7 @@ class FloatCard(HtmlElement):
241241
"""
242242

243243
def __init__(self, children=None, **kwargs):
244-
super().__init__("trame-float-card", children, **kwargs)
244+
super().__init__("tc-float-card", children, **kwargs)
245245
self._attr_names += [
246246
"handle_color",
247247
"handle_position",
@@ -292,7 +292,7 @@ class ListBrowser(HtmlElement):
292292
"""
293293

294294
def __init__(self, children=None, **kwargs):
295-
super().__init__("trame-list-browser", children, **kwargs)
295+
super().__init__("tc-list-browser", children, **kwargs)
296296
self._attr_names += [
297297
"path_icon",
298298
"path_selected_icon",
@@ -350,7 +350,7 @@ class GitTree(HtmlElement):
350350
"""
351351

352352
def __init__(self, children=None, **kwargs):
353-
super().__init__("trame-git-tree", children, **kwargs)
353+
super().__init__("tc-git-tree", children, **kwargs)
354354
self._attr_names += [
355355
"sources",
356356
"actives",
@@ -406,7 +406,7 @@ class XaiHeatMap(HtmlElement):
406406
"""
407407

408408
def __init__(self, children=None, **kwargs):
409-
super().__init__("trame-xai-heat-map", children, **kwargs)
409+
super().__init__("tc-xai-heat-map", children, **kwargs)
410410
self._attr_names += [
411411
"heatmap",
412412
"shape",
@@ -461,7 +461,7 @@ class XaiImage(HtmlElement):
461461
"""
462462

463463
def __init__(self, children=None, **kwargs):
464-
super().__init__("trame-xai-image", children, **kwargs)
464+
super().__init__("tc-xai-image", children, **kwargs)
465465
self._attr_names += [
466466
"src",
467467
"max_height",
@@ -498,7 +498,7 @@ def __init__(self, children=None, **kwargs):
498498

499499
class LineSeed(HtmlElement):
500500
def __init__(self, children=None, **kwargs):
501-
super().__init__("trame-line-seed", children, **kwargs)
501+
super().__init__("tc-line-seed", children, **kwargs)
502502
self._attr_names += [
503503
("point_1", "point1"),
504504
("point_2", "point2"),

vue-components/src/components/TrameClientTriggers.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
const { onMounted, onBeforeUnmount } = window.Vue;
22

33
export default {
4-
emits: ["mounted", "created", "beforeDestroy", "beforeUnmount"],
4+
emits: ["mounted", "created", "beforeDestroy", "beforeUnmount", "exit"],
55
setup(props, { emit, expose }) {
66
function emitTopic(topic, event) {
77
emit(topic, event);
@@ -12,6 +12,9 @@ export default {
1212
emit("beforeDestroy");
1313
emit("beforeUnmount");
1414
});
15+
window.addEventListener("beforeunload", () => {
16+
emit("exit");
17+
});
1518
expose({ emit: emitTopic });
1619

1720
emit("created");

vue-components/src/components/TrameListBrowser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ export default {
121121
return true;
122122
}
123123
const txt = [item.text.toLowerCase(), item.type.toLowerCase()].join(
124-
" ",
124+
" "
125125
);
126126
const tokens = filterValues.value;
127127
for (let i = 0; i < tokens.length; i++) {

vue-components/src/components/index.js

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,16 @@ import TrameXaiImage from "./TrameXaiImage";
1313
import TrameLineSeed from "./TrameLineSeed";
1414

1515
export default {
16-
TrameClientStateChange,
17-
TrameClientTriggers,
18-
TrameCursor,
19-
TrameFloatCard,
20-
TrameGitTree,
21-
TrameLifeCycleMonitor,
22-
TrameListBrowser,
23-
TrameMouseTrap,
24-
TrameSizeObserver,
25-
TrameXaiHeatMap,
26-
TrameXaiImage,
27-
28-
TrameLineSeed,
16+
TcClientStateChange: TrameClientStateChange,
17+
TcClientTriggers: TrameClientTriggers,
18+
TcCursor: TrameCursor,
19+
TcFloatCard: TrameFloatCard,
20+
TcGitTree: TrameGitTree,
21+
TcLifeCycleMonitor: TrameLifeCycleMonitor,
22+
TcListBrowser: TrameListBrowser,
23+
TcMouseTrap: TrameMouseTrap,
24+
TcSizeObserver: TrameSizeObserver,
25+
TcXaiHeatMap: TrameXaiHeatMap,
26+
TcXaiImage: TrameXaiImage,
27+
TcLineSeed: TrameLineSeed,
2928
};

0 commit comments

Comments
 (0)