Added error, loading modal and popover components

• Added:
- error, loading modal components
- error, loading popover components

• Removed:
- ModalLoading from async_components

• Updated:
- ModalRoot to use new components
This commit is contained in:
mgabdev
2020-07-21 16:48:55 -05:00
parent 7ea07d4a2b
commit 87f85131b7
9 changed files with 121 additions and 82 deletions

View File

@@ -0,0 +1,22 @@
import Block from '../block'
import ColumnIndicator from '../column_indicator'
export default class ErrorPopover extends PureComponent {
render() {
return (
<div className={_s.width250PX}>
<Block>
<div className={[_s.default, _s.px15, _s.py15, _s.mt15, _s.mb15].join(' ')}>
<div className={[_s.default, _s.px15, _s.py15, _s.mt15, _s.mb15, _s.alignItemsCenter, _s.justifyContentCenter].join(' ')}>
<ColumnIndicator type='error' message='Error loading popover' />
</div>
</div>
</Block>
</div>
)
}
}

View File

@@ -0,0 +1,22 @@
import Block from '../block'
import ColumnIndicator from '../column_indicator'
export default class LoadingPopover extends PureComponent {
render() {
return (
<div className={_s.width250PX}>
<Block>
<div className={[_s.default, _s.px15, _s.py15, _s.mt15, _s.mb15].join(' ')}>
<div className={[_s.default, _s.px15, _s.py15, _s.mt15, _s.mb15, _s.alignItemsCenter, _s.justifyContentCenter].join(' ')}>
<ColumnIndicator type='loading' />
</div>
</div>
</Block>
</div>
)
}
}

View File

@@ -35,6 +35,8 @@ import { getWindowDimension } from '../../utils/is_mobile'
import Bundle from '../../features/ui/util/bundle'
import ModalBase from '../modal/modal_base'
import PopoverBase from './popover_base'
import ErrorPopover from './error_popover'
import LoadingPopover from './loading_popover'
const initialState = getWindowDimension()
@@ -102,8 +104,12 @@ class PopoverRoot extends PureComponent {
this.setState({ width })
}
renderEmpty = () => {
return <div />
renderLoading = () => {
return <LoadingPopover />
}
renderError = () => {
return <ErrorPopover />
}
render() {
@@ -130,9 +136,9 @@ class PopoverRoot extends PureComponent {
visible &&
<Bundle
fetchComponent={POPOVER_COMPONENTS[type]}
loading={this.renderEmpty}
error={this.renderEmpty}
renderDelay={200}
loading={this.renderLoading}
error={this.renderError}
renderDelay={150}
>
{
(Component) => <Component isXS={isXS} {...props} />