Sha256: 547b2de7006f6ceccf3d3134c9b74f4b43312cea0810dcd92694707424d4f86d

Contents?: true

Size: 1.51 KB

Versions: 1

Compression:

Stored size: 1.51 KB

Contents

import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import {
    Toast,
    Page,
    Footer,
    FooterText
} from 'react-weui';
import { Redirect } from 'react-router-dom'
import { closeToast } from '../../actions'

const BasePage = ({ title, desc, toast, page, redirect, ...props }) => {

    if (redirect) {
        return <Redirect to={redirect} />
    }

    if (toast.showToast) {
        setTimeout(() => props.dispatch(closeToast()), 1000)
    }

    return (
        <Page>
            <div className="page__hd">
                <div className="page__title">{title}</div>
                <div className="page__desc">{desc}</div>
            </div>
            {page}
            <Toast icon={toast.toastIcon} show={toast.showToast}>{toast.toastMessage}</Toast>
            <Footer className="weui-footer_fixed-bottom">
                <FooterText>Copyright © 2019 wesales</FooterText>
            </Footer>
        </Page>
    )
}

BasePage.propTypes = {
    title: PropTypes.string.isRequired,
    desc: PropTypes.string.isRequired,
    toast: PropTypes.object.isRequired,
    page: PropTypes.node.isRequired,
}

const mapStateToProps = state => ({
    toast: {
        showToast: state.base.showToast,
        toastIcon: state.base.toastIcon,
        toastMessage: state.base.toastMessage,
        toastRedirect: state.base.toastRedirect
    },
    redirect: state.base.redirect
})

export default connect(mapStateToProps)(BasePage)

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
weget-0.1.6 lib/weget/react/imports/ui/pages/BasePage.js