diff --git a/src/scripts/graph.js b/src/scripts/graph.js
index 45b91cc..1158bf2 100644
--- a/src/scripts/graph.js
+++ b/src/scripts/graph.js
@@ -59,7 +59,7 @@ export class Engine {
this.setupInteraction();
this.setupGraphStyle();
- let path = router.last('retrieve')?.params?.path;
+ let path = router.recall('retrieve')?.params?.path;
setTimeout(() => router.emit('retrieve', { path }), 500);
return container;
diff --git a/src/scripts/object.js b/src/scripts/object.js
index 318cf72..39b4d46 100644
--- a/src/scripts/object.js
+++ b/src/scripts/object.js
@@ -184,7 +184,7 @@ export class Folder extends BaseNode {
data-[active=true]:border-red-600 hover:border-neutral-800"
>
${node.name}
`;
@@ -217,14 +217,13 @@ export class Folder extends BaseNode {
return `
${html}
`;
diff --git a/src/scripts/router.js b/src/scripts/router.js
index d61d227..da3ec38 100644
--- a/src/scripts/router.js
+++ b/src/scripts/router.js
@@ -5,7 +5,7 @@ const Routes = {
const Events = {
entries: { /* eventName: [callbacks], */ },
- history: [ /* { eventName, params, }, */ ]
+ history: [ /* { eventName, params, }, */ ],
}
export default {
@@ -47,11 +47,15 @@ export default {
Events.entries[event]?.forEach(fn => fn(params));
},
- last(event) {
- return Events.history.find(e => e.event === event);
- },
on(event, callback) {
if (! Events.entries[event]) Events.entries[event] = [];
Events.entries[event]?.push(callback);
+ },
+ recall(event) {
+ return Events.history.find(e => e.event === event);
+ },
+ cancel(event) {
+ let callbacks = Events.entries[event]?.splice(0, 50);
+ this.on(event, () => Events.entries[event] = callbacks);
}
}