Skip to content

Commit 3fee0bc

Browse files
wenboyu2jamiebuilds
authored andcommitted
Delay 0 should show loading state in the current event loop
1 parent 5995126 commit 3fee0bc

File tree

3 files changed

+26
-2
lines changed

3 files changed

+26
-2
lines changed

__tests__/__snapshots__/test.js.snap

+7
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,13 @@ exports[`preload 3`] = `
146146
</div>
147147
`;
148148

149+
exports[`preloadReady delay with 0 1`] = `
150+
<div>
151+
MyLoadingComponent
152+
{"isLoading":true,"pastDelay":true,"timedOut":false,"error":null}
153+
</div>
154+
`;
155+
149156
exports[`preloadReady many 1`] = `
150157
<div>
151158
MyComponent

__tests__/test.js

+13
Original file line numberDiff line numberDiff line change
@@ -264,4 +264,17 @@ describe('preloadReady', () => {
264264

265265
expect(component.toJSON()).toMatchSnapshot();
266266
});
267+
268+
test('delay with 0', () => {
269+
let LoadableMyComponent = Loadable({
270+
loader: createLoader(300, () => MyComponent),
271+
loading: MyLoadingComponent,
272+
delay: 0,
273+
timeout: 200,
274+
});
275+
276+
let loadingComponent = renderer.create(<LoadableMyComponent prop="foo" />);
277+
278+
expect(loadingComponent.toJSON()).toMatchSnapshot(); // loading
279+
});
267280
});

src/index.js

+6-2
Original file line numberDiff line numberDiff line change
@@ -163,9 +163,13 @@ function createLoadableComponent(loadFn, options) {
163163
}
164164

165165
if (typeof opts.delay === 'number') {
166-
this._delay = setTimeout(() => {
166+
if (opts.delay === 0) {
167167
this.setState({ pastDelay: true });
168-
}, opts.delay);
168+
} else {
169+
this._delay = setTimeout(() => {
170+
this.setState({ pastDelay: true });
171+
}, opts.delay);
172+
}
169173
}
170174

171175
if (typeof opts.timeout === 'number') {

0 commit comments

Comments
 (0)