Skip to content

Commit 48583de

Browse files
committed
[chore] Refactor event handler disposer
1 parent caae81a commit 48583de

5 files changed

Lines changed: 9 additions & 13 deletions

File tree

src/SharedElementRendererData.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ export default class SharedElementRendererData
263263
if (this.scenes.length > 10) {
264264
const { subscription } = this.scenes[0];
265265
this.scenes.splice(0, 1);
266-
if (subscription) subscription.remove();
266+
subscription?.();
267267
}
268268
this.updateSceneListeners();
269269
}
@@ -281,7 +281,7 @@ export default class SharedElementRendererData
281281
});
282282
} else if (!isActive && subscription) {
283283
sceneRoute.subscription = null;
284-
subscription.remove();
284+
subscription();
285285
}
286286
});
287287
}
@@ -350,9 +350,7 @@ export default class SharedElementRendererData
350350
handler: SharedElementRendererUpdateHandler
351351
): SharedElementEventSubscription {
352352
this.updateSubscribers.add(handler);
353-
return {
354-
remove: () => this.updateSubscribers.delete(handler)
355-
};
353+
return () => this.updateSubscribers.delete(handler);
356354
}
357355

358356
private emitUpdateEvent(): void {

src/SharedElementRendererView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export default class SharedElementRendererView extends React.PureComponent<
2222

2323
componentWillUnmount() {
2424
if (this.subscription) {
25-
this.subscription.remove();
25+
this.subscription();
2626
this.subscription = undefined;
2727
}
2828
}

src/SharedElementSceneData.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,9 +103,7 @@ export default class SharedElementSceneData {
103103
handler: SharedElementSceneUpdateHandler
104104
): SharedElementEventSubscription {
105105
this.updateSubscribers.add(handler);
106-
return {
107-
remove: () => this.updateSubscribers.delete(handler)
108-
};
106+
return () => this.updateSubscribers.delete(handler);
109107
}
110108

111109
private emitUpdateEvent(

src/createSharedElementScene.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ function createSharedElementScene(
3232
): React.ComponentType<any> {
3333
class SharedElementSceneView extends React.PureComponent<PropsType> {
3434
private subscriptions: {
35-
[key: string]: SharedElementEventSubscription;
35+
[key: string]: {
36+
remove(): void;
37+
};
3638
} = {};
3739
private sceneData: SharedElementSceneData = new SharedElementSceneData(
3840
Component,

src/types.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,7 @@ export type NavigationProp<RouteName = string, Params = object> = {
5252
dangerouslyGetParent(): NavigationProp | undefined;
5353
};
5454

55-
export type SharedElementEventSubscription = {
56-
remove(): void;
57-
};
55+
export type SharedElementEventSubscription = () => void;
5856

5957
export type SharedElementStrictConfig = {
6058
readonly id: string;

0 commit comments

Comments
 (0)