From 270e9440314aaf85370c32cd0e3b5c0ecc7735e3 Mon Sep 17 00:00:00 2001 From: Skile Date: Thu, 20 Jun 2019 01:33:32 +0900 Subject: [PATCH] Payment Viewer Frontend page --- frontend/src/components/App.js | 3 ++- frontend/src/components/atoms/Button/index.js | 6 +++++ frontend/src/components/atoms/Graph/index.js | 1 - .../components/organisms/PaymentForm/index.js | 5 ++-- .../components/organisms/PaymentList/index.js | 8 +++++-- frontend/src/containers/PaymentForm.js | 23 +++++++++++++------ frontend/src/containers/PaymentPage.js | 8 ++++--- frontend/src/store/sagas.js | 2 +- 8 files changed, 39 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/App.js b/frontend/src/components/App.js index 918d3da..c2491de 100644 --- a/frontend/src/components/App.js +++ b/frontend/src/components/App.js @@ -29,7 +29,8 @@ const App = () => { - + + diff --git a/frontend/src/components/atoms/Button/index.js b/frontend/src/components/atoms/Button/index.js index 456933c..2b52c9f 100644 --- a/frontend/src/components/atoms/Button/index.js +++ b/frontend/src/components/atoms/Button/index.js @@ -16,6 +16,12 @@ const Button = styled.button` width: 100%; max-width: 224px; z-index: 1; + + :disabled { + background-color: lightgrey; + color: grey; + cursor: none; + } ` const LightButton = styled(Button)` diff --git a/frontend/src/components/atoms/Graph/index.js b/frontend/src/components/atoms/Graph/index.js index 8171624..8295dfb 100644 --- a/frontend/src/components/atoms/Graph/index.js +++ b/frontend/src/components/atoms/Graph/index.js @@ -11,7 +11,6 @@ const Wrapper = styled.div` padding-top: 100%; width: 100%; position: relative; - z-index: -1; ` const Content = styled.div` diff --git a/frontend/src/components/organisms/PaymentForm/index.js b/frontend/src/components/organisms/PaymentForm/index.js index 8d43ce8..3947532 100644 --- a/frontend/src/components/organisms/PaymentForm/index.js +++ b/frontend/src/components/organisms/PaymentForm/index.js @@ -32,7 +32,8 @@ const Credit = ({ member: {membername}, index, ...props }) => ( /> ) -const PaymentForm = ({ handleSubmit, room, members, payment, amountLeft, total, nBbang, ...props }) => { +const PaymentForm = ({ handleSubmit, room, members, payment, amountLeft, total, nBbang, ...rest }) => { + const { disabled } = rest return (
@@ -78,7 +79,7 @@ const PaymentForm = ({ handleSubmit, room, members, payment, amountLeft, total, > 취소 - +
) diff --git a/frontend/src/components/organisms/PaymentList/index.js b/frontend/src/components/organisms/PaymentList/index.js index 27f2b92..050ec68 100644 --- a/frontend/src/components/organisms/PaymentList/index.js +++ b/frontend/src/components/organisms/PaymentList/index.js @@ -14,8 +14,12 @@ const PaymentList = ({ paymentlist, roomurl }) => ( { paymentlist && paymentlist.map( - ({ forWhat, fromWho, total }, idx) => ( - + ({ id, forWhat, fromWho, total }, idx) => ( + ) ) } diff --git a/frontend/src/containers/PaymentForm.js b/frontend/src/containers/PaymentForm.js index 9c7dde4..265e698 100644 --- a/frontend/src/containers/PaymentForm.js +++ b/frontend/src/containers/PaymentForm.js @@ -54,16 +54,25 @@ const mapDispatchToProps = dispatch => ({ } }) -const PaymentFormContainer = ({...props}) => { - const initialValues = { - credits: props.members.map( - ({ membername }) => ({ toWho: membername, amount: 0.0 }) - ), - room: props.room, - } +const PaymentFormContainer = ({payment, ...props}) => { + const initialValues = (payment ? + { // if payment exists + ...payment, + room: props.room, + } : + { // if payment doesn't exist + credits: props.members.map( + ({ membername }) => ({ toWho: membername, amount: 0.0 }) + ), + room: props.room, + } + ) + + console.log(initialValues) return ( diff --git a/frontend/src/containers/PaymentPage.js b/frontend/src/containers/PaymentPage.js index 383dcb7..944ccb3 100644 --- a/frontend/src/containers/PaymentPage.js +++ b/frontend/src/containers/PaymentPage.js @@ -3,14 +3,16 @@ import { connect } from 'react-redux' import { PaymentPage } from 'components' -const PaymentPageContainer = props => { - return +const PaymentPageContainer = ({ match, payments, ...props }) => { + const paymentId = parseInt(match.params.payment_id) + const payment = payments.find(p => p.id === paymentId) + return } const mapStateToProps = state => ({ room: state.room.room, members: state.member.members, - payment: state.payment.payment, + payments: state.payment.payments, }) export default connect(mapStateToProps)(PaymentPageContainer) diff --git a/frontend/src/store/sagas.js b/frontend/src/store/sagas.js index 4018bd9..42928d8 100644 --- a/frontend/src/store/sagas.js +++ b/frontend/src/store/sagas.js @@ -11,7 +11,7 @@ const req = require.context('.', true, /\.\/.+\/sagas\.js$/) const sagas = req.keys().map(key => req(key).default) sagas.push(function* () { - yield takeEvery(a => a.error, function* ({ type, error }) { + yield takeEvery(a => a.error && a.type[0] !== '@', function* ({ type, error }) { toastError(type, JSON.stringify(error)) }) })