react-admin-ui
Version:
React Admin Panel based on material-ui interface Edit
62 lines (55 loc) • 1.42 kB
JSX
import React from 'react'
import Snackbar from 'material-ui/Snackbar'
import {connect} from 'react-redux'
import {close} from '../../../actions/snackbar'
const snackbarSelector = (snackbar) => {
for (let i in snackbar) {
if (snackbar.hasOwnProperty(i)) {
if (snackbar[i] && snackbar[i].open == true) {
return snackbar[i]
}
}
}
return {open: false}
}
(state=>({
snackbar: snackbarSelector(state.snackbar)
}), {
close
})
export default class index extends React.Component {
constructor(props) {
super(props);
this.state = {
open: false,
message: ''
}
}
componentWillReceiveProps = ({snackbar}) => {
if (snackbar.open == true) {
this.setState(snackbar)
setTimeout(()=> {
this.setState({
open: false
})
setTimeout(()=> {
this.props.close(this.state.key)
}, 150)
}, snackbar.time)
}
}
handleRequestClose = () => {
this.props.close(this.state.key)
}
render() {
const {message, open} = this.state
return (
<div>
<Snackbar
open={open}
message={message}
/>
</div>
);
}
}