Skip to content

Commit 798653e

Browse files
chore: rename to "isMounted"
1 parent 1a33886 commit 798653e

3 files changed

Lines changed: 23 additions & 32 deletions

File tree

packages/html/__tests__/HtmlImageLayer.test.ts

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {placeholder} from "../src/plugins/placeholder";
66
import {accessibility} from "../src/plugins/accessibility";
77
import {PluginResponse} from "../types";
88
import {cancelCurrentlyRunningPlugins} from "../src/utils/cancelCurrentlyRunningPlugins";
9-
import * as process from "process";
109

1110
jest.useFakeTimers();
1211

@@ -54,53 +53,45 @@ describe('HtmlImageLayer tests', function () {
5453
expect(img.src).toEqualAnalyticsToken('AXAABABD');
5554
});
5655

57-
it('should set image src twice if HtmlImageLayer instance won\'t be destroyed', async function () {
56+
it('should set image src twice if HtmlImageLayer instance won\'t be unmounted', async function () {
5857
const img = document.createElement('img');
5958
const pluginsState: any = {
6059
cleanupCallbacks: []
6160
};
6261
const spy = jest.spyOn(img, 'setAttribute');
63-
const dummyFailingPlugin = (): Promise<PluginResponse> => {
64-
return new Promise((resolve) => {
65-
pluginsState.cleanupCallbacks.push(() => {
66-
resolve('canceled')
67-
})
62+
const dummyFailingPlugin = (): Promise<PluginResponse> => new Promise((resolve) => {
63+
pluginsState.cleanupCallbacks.push(() => {
64+
resolve('canceled')
6865
})
69-
}
70-
const dummyLazyLoadPlugin = (): Promise<PluginResponse> => {
71-
return new Promise((resolve) => {
72-
resolve({lazyload: true});
73-
})
74-
}
66+
});
67+
const dummyLazyLoadPlugin = (): Promise<PluginResponse> => new Promise((resolve) => {
68+
resolve({lazyload: true});
69+
});
7570
new HtmlImageLayer(img, cldImage, [dummyFailingPlugin]);
7671
new HtmlImageLayer(img, cldImage, [dummyLazyLoadPlugin]);
7772
cancelCurrentlyRunningPlugins(pluginsState);
7873
await flushPromises();
7974
expect(spy).toHaveBeenCalledTimes(2);
8075
});
8176

82-
it('should set image src only once if HtmlImageLayer instance will be destroyed', async function () {
77+
it('should set image src only once if HtmlImageLayer instance will be unmounted', async function () {
8378
const img = document.createElement('img');
8479
const pluginsState: any = {
8580
cleanupCallbacks: []
8681
};
8782
const spy = jest.spyOn(img, 'setAttribute');
88-
const dummyFailingPlugin = (): Promise<PluginResponse> => {
89-
return new Promise((resolve) => {
90-
pluginsState.cleanupCallbacks.push(() => {
91-
resolve('canceled')
92-
})
93-
})
94-
}
95-
const dummyLazyLoadPlugin = (): Promise<PluginResponse> => {
96-
return new Promise((resolve) => {
97-
resolve({lazyload: true});
83+
const dummyFailingPlugin = (): Promise<PluginResponse> => new Promise((resolve) => {
84+
pluginsState.cleanupCallbacks.push(() => {
85+
resolve('canceled')
9886
})
99-
}
87+
});
88+
const dummyLazyLoadPlugin = (): Promise<PluginResponse> => new Promise((resolve) => {
89+
resolve({lazyload: true});
90+
});
10091
const instance1 = new HtmlImageLayer(img, cldImage, [dummyFailingPlugin]);
10192
new HtmlImageLayer(img, cldImage, [dummyLazyLoadPlugin]);
10293
cancelCurrentlyRunningPlugins(pluginsState);
103-
instance1.destroy();
94+
instance1.unmount();
10495
await flushPromises();
10596
expect(spy).toHaveBeenCalledTimes(1);
10697
});

packages/html/src/layers/htmlImageLayer.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import {getAnalyticsOptions} from "../utils/analytics";
66

77
export class HtmlImageLayer{
88
private imgElement: any;
9-
private destroyed = false;
9+
private isMounted = true;
1010
htmlPluginState: HtmlPluginState;
1111
constructor(element: HTMLImageElement | null, userCloudinaryImage: CloudinaryImage, plugins?: Plugins, baseAnalyticsOptions?: BaseAnalyticsOptions){
1212
this.imgElement = element;
@@ -15,7 +15,7 @@ export class HtmlImageLayer{
1515

1616
render(element, pluginCloudinaryImage, plugins, this.htmlPluginState, baseAnalyticsOptions)
1717
.then((pluginResponse)=>{ // when resolved updates the src
18-
if (this.destroyed) {
18+
if (!this.isMounted) {
1919
return;
2020
}
2121
this.htmlPluginState.pluginEventSubscription.forEach(fn=>{fn()});
@@ -34,14 +34,14 @@ export class HtmlImageLayer{
3434
const pluginCloudinaryImage = cloneDeep(userCloudinaryImage);
3535
render(this.imgElement, pluginCloudinaryImage, plugins, this.htmlPluginState)
3636
.then((pluginResponse)=>{
37-
if (this.destroyed) {
37+
if (!this.isMounted) {
3838
return;
3939
}
4040
const featuredAnalyticsOptions = getAnalyticsOptions(baseAnalyticsOptions, pluginResponse);
4141
this.imgElement.setAttribute('src', pluginCloudinaryImage.toURL(featuredAnalyticsOptions));
4242
});
4343
}
44-
destroy() {
45-
this.destroyed = true;
44+
unmount() {
45+
this.isMounted = false;
4646
}
4747
}

packages/react/src/AdvancedImage.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ class AdvancedImage extends React.Component <ImgProps> {
102102
componentWillUnmount() {
103103
// Safely cancel running events on unmount.
104104
cancelCurrentlyRunningPlugins(this.htmlLayerInstance.htmlPluginState);
105-
this.htmlLayerInstance.destroy();
105+
this.htmlLayerInstance.unmount();
106106
}
107107

108108
render() {

0 commit comments

Comments
 (0)