|
|
|
@ -26,6 +26,8 @@ class Bundle extends React.Component { |
|
|
|
|
onFetchFail: noop, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
static cache = {} |
|
|
|
|
|
|
|
|
|
state = { |
|
|
|
|
mod: undefined, |
|
|
|
|
forceRender: false, |
|
|
|
@ -58,8 +60,17 @@ class Bundle extends React.Component { |
|
|
|
|
this.timeout = setTimeout(() => this.setState({ forceRender: true }), renderDelay); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (Bundle.cache[fetchComponent.name]) { |
|
|
|
|
const mod = Bundle.cache[fetchComponent.name]; |
|
|
|
|
|
|
|
|
|
this.setState({ mod: mod.default }); |
|
|
|
|
onFetchSuccess(); |
|
|
|
|
return Promise.resolve(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return fetchComponent() |
|
|
|
|
.then((mod) => { |
|
|
|
|
Bundle.cache[fetchComponent.name] = mod; |
|
|
|
|
this.setState({ mod: mod.default }); |
|
|
|
|
onFetchSuccess(); |
|
|
|
|
}) |
|
|
|
|