UNPKG

@instructure/quiz-interactions

Version:

A React UI component Library for quiz interaction types.

27 lines (21 loc) 716 B
import React from 'react' import {Spinner} from '@instructure/ui-spinner' import t from '@instructure/quiz-i18n/format-message' export default (depsAreLoaded, loadDeps) => WrappedComponent => { return class Wrapper extends WrappedComponent { static displayName = `${this.name}(${WrappedComponent.displayName})` constructor(props) { super(props) const depsLoaded = depsAreLoaded() this.state = Object.assign({}, this.state, {depsLoaded}) if (!depsLoaded) { loadDeps().then(() => { this.setState({depsLoaded: true}) }) } } render() { return this.state.depsLoaded ? super.render() : <Spinner renderTitle={t('loading')} /> } } }