@instructure/quiz-interactions
Version:
A React UI component Library for quiz interaction types.
27 lines (21 loc) • 716 B
JavaScript
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')} />
}
}
}