forked from faceyspacey/redux-first-router-demo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Switcher.js
executable file
·30 lines (26 loc) · 860 Bytes
/
Switcher.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import React from 'react'
import { connect } from 'react-redux'
import {
AnimatedTransitionGroup,
AnimatedChild
} from 'animated-transition-group'
import UniversalComponent from './UniversalComponent'
import styles from '../css/Switcher'
const Switcher = ({ page, direction, isLoading }) =>
<AnimatedTransitionGroup
component='div'
className={`${styles.switcher} ${direction}`}
duration={500}
debounce={500}
prefix='fade'
>
<AnimatedChild key={page}>
<UniversalComponent page={page} isLoading={isLoading} />
</AnimatedChild>
</AnimatedTransitionGroup>
const mapState = ({ page, direction, videosByCategory }) => {
const { category, categories } = videosByCategory
const isLoading = page === 'List' && !categories[category]
return { page, direction, isLoading }
}
export default connect(mapState)(Switcher)