Browse Source

Less intrusive apps list loading

master
meriadec 7 years ago
parent
commit
729d9cdaa6
No known key found for this signature in database GPG Key ID: 1D2FC2305E2CB399
  1. 39
      src/components/ManagerPage/AppsList.js
  2. 6
      src/components/ManagerPage/ManagerApp.js

39
src/components/ManagerPage/AppsList.js

@ -18,6 +18,7 @@ import installApp from 'commands/installApp'
import uninstallApp from 'commands/uninstallApp' import uninstallApp from 'commands/uninstallApp'
import Box from 'components/base/Box' import Box from 'components/base/Box'
import Space from 'components/base/Space'
import Modal, { ModalBody, ModalFooter, ModalTitle, ModalContent } from 'components/base/Modal' import Modal, { ModalBody, ModalFooter, ModalTitle, ModalContent } from 'components/base/Modal'
import Tooltip from 'components/base/Tooltip' import Tooltip from 'components/base/Tooltip'
import Text from 'components/base/Text' import Text from 'components/base/Text'
@ -32,7 +33,7 @@ import Update from 'icons/Update'
import Trash from 'icons/Trash' import Trash from 'icons/Trash'
import CheckCircle from 'icons/CheckCircle' import CheckCircle from 'icons/CheckCircle'
import ManagerApp from './ManagerApp' import ManagerApp, { Container as FakeManagerAppContainer } from './ManagerApp'
import AppSearchBar from './AppSearchBar' import AppSearchBar from './AppSearchBar'
const mapStateToProps = state => ({ const mapStateToProps = state => ({
@ -69,6 +70,20 @@ type State = {
mode: Mode, mode: Mode,
} }
const LoadingApp = () => (
<FakeManagerAppContainer
bg="rgba(0, 0, 0, 0.06)"
noShadow
align="center"
justify="center"
style={{ height: 90 }}
>
<Spinner size={16} color="rgba(0, 0, 0, 0.3)" />
</FakeManagerAppContainer>
)
const loadingApp = <LoadingApp />
class AppsList extends PureComponent<Props, State> { class AppsList extends PureComponent<Props, State> {
state = { state = {
status: 'loading', status: 'loading',
@ -242,7 +257,7 @@ class AppsList extends PureComponent<Props, State> {
renderList() { renderList() {
const { filteredAppVersionsList, appsLoaded } = this.state const { filteredAppVersionsList, appsLoaded } = this.state
return appsLoaded ? ( return (
<Box> <Box>
<AppSearchBar list={filteredAppVersionsList}> <AppSearchBar list={filteredAppVersionsList}>
{items => ( {items => (
@ -261,10 +276,22 @@ class AppsList extends PureComponent<Props, State> {
)} )}
</AppSearchBar> </AppSearchBar>
{this.renderModal()} {this.renderModal()}
</Box> {!appsLoaded && (
) : ( <Fragment>
<Box align="center" justify="center"> <Space of={30} />
<Spinner size={50} /> <List>
{loadingApp}
{loadingApp}
{loadingApp}
{loadingApp}
{loadingApp}
{loadingApp}
{loadingApp}
{loadingApp}
{loadingApp}
</List>
</Fragment>
)}
</Box> </Box>
) )
} }

6
src/components/ManagerPage/ManagerApp.js

@ -12,17 +12,17 @@ import Box from 'components/base/Box'
import Text from 'components/base/Text' import Text from 'components/base/Text'
import Button from 'components/base/Button' import Button from 'components/base/Button'
const Container = styled(Box).attrs({ export const Container = styled(Box).attrs({
horizontal: true, horizontal: true,
my: 2, my: 2,
mx: 3, mx: 3,
p: 4, p: 4,
boxShadow: 0, bg: 'white',
boxShadow: p => (p.noShadow ? -1 : 0),
borderRadius: 4, borderRadius: 4,
flow: 2, flow: 2,
})` })`
width: calc(50% - 30px); width: calc(50% - 30px);
background: white;
line-height: normal; line-height: normal;
` `

Loading…
Cancel
Save