2019-01-09 10:23:08 -08:00
|
|
|
import React, { ReactNode } from 'react';
|
|
|
|
import { Link } from 'react-router-dom';
|
|
|
|
import { Button, Popconfirm, message, Tag } from 'antd';
|
CCRs (#86)
* CCRs API / Models boilerplate
* start on frontend
* backendy things
* Create CCR redux module, integrate API endpoints, create types
* Fix/Cleanup API
* Wire up CreateRequestDraftList
* bounty->target
* Add 'Create Request Flow' MVP
* cleanup
* Tweak filenames
* Simplify migrations
* fix migrations
* CCR Staking MVP
* tslint
* Get Pending Requests into Profile
* Remove staking requirement
* more staking related removals
* MVP Admin integration
* Make RFP when CCR is accepted
* Add pagination to CCRs in Admin
Improve styles for Proposals
* Hookup notifications
Adjust copy
* Simplify ccr->rfp relationship
Add admin approval email
Fixup copy
* Show Message on RFP Detail
Make Header CTAs change based on draft status
Adjust proposal card style
* Bugfix: Show header for non signed in users
* Add 'create a request' to intro
* Profile Created CCRs
RFP CCR attribution
* ignore
* CCR Price in USD (#85)
* init profile tipjar backend
* init profile tipjar frontend
* fix lint
* implement tip jar block
* fix wrapping, hide tip block on self
* init backend proposal tipjar
* init frontend proposal tipjar
* add hide title, fix bug
* uncomment rate limit
* rename vars, use null check
* allow address and view key to be unset
* add api tests
* fix tsc errors
* fix lint
* fix CopyInput styling
* fix migrations
* hide tipping in proposal if address not set
* add tip address to create flow
* redesign campaign block
* fix typo
* init backend changes
* init admin changes
* init frontend changes
* fix backend tests
* update campaign block
* be - init rfp usd changes
* admin - init rfp usd changes
* fe - fully adapt api util functions to usd
* fe - init rfp usd changes
* adapt profile created to usd
* misc usd changes
* add tip jar to dedicated card
* fix tipjar bug
* use zf light logo
* switch to zf grants logo
* hide profile tip jar if address not set
* add comment, run prettier
* conditionally add info icon and tooltip to funding line
* admin - disallow decimals in RFPs
* fe - cover usd string edge case
* add Usd as rfp bounty type
* fix migration order
* fix email bug
* adapt CCRs to USD
* implement CCR preview
* fix tsc
* Copy Updates and UX Tweaks (#87)
* Add default structure to proposal content
* Landing page copy
* Hide contributors tab for v2 proposals
* Minor UX tweaks for Liking/Following/Tipping
* Copy for Tipping Tooltip, proposal explainer for review, and milestone day estimate notice.
* Fix header styles bug and remove commented out styles.
* Revert "like" / "unfollow" hyphenication
* Comment out unused tests related to staking
Increase PROPOSAL_TARGET_MAX in .env.example
* Comment out ccr approval email send until ready
* Adjust styles, copy.
* fix proposal prune test (#88)
* fix USD display in preview, fix non-unique key (#90)
* Pre-stepper explainer for CCRs.
* Tweak styles
* Default content for CCRs
* fix tsc
* CCR approval and rejection emails
* add back admin_approval_ccr email templates
* Link ccr author name to profile in RFPs
* copy tweaks
* copy tweak
* hookup mangle user command
* Fix/add endif in jinja
* fix tests
* review
* fix review
2019-12-05 17:01:02 -08:00
|
|
|
import { UserProposal, STATUS } from 'types';
|
|
|
|
import { deletePendingProposal } from 'modules/users/actions';
|
2019-01-09 10:23:08 -08:00
|
|
|
import { connect } from 'react-redux';
|
|
|
|
import { AppState } from 'store/reducers';
|
2019-02-05 17:45:57 -08:00
|
|
|
import './ProfilePending.less';
|
2019-01-09 10:23:08 -08:00
|
|
|
|
|
|
|
interface OwnProps {
|
|
|
|
proposal: UserProposal;
|
|
|
|
}
|
|
|
|
|
|
|
|
interface StateProps {
|
|
|
|
user: AppState['auth']['user'];
|
|
|
|
}
|
|
|
|
|
|
|
|
interface DispatchProps {
|
|
|
|
deletePendingProposal: typeof deletePendingProposal;
|
|
|
|
}
|
|
|
|
|
|
|
|
type Props = OwnProps & StateProps & DispatchProps;
|
|
|
|
|
2019-02-05 17:45:57 -08:00
|
|
|
interface State {
|
|
|
|
isDeleting: boolean;
|
|
|
|
isPublishing: boolean;
|
|
|
|
}
|
2019-01-09 10:23:08 -08:00
|
|
|
|
|
|
|
class ProfilePending extends React.Component<Props, State> {
|
2019-02-05 17:45:57 -08:00
|
|
|
state: State = {
|
|
|
|
isDeleting: false,
|
|
|
|
isPublishing: false,
|
|
|
|
};
|
|
|
|
|
2019-01-09 10:23:08 -08:00
|
|
|
render() {
|
|
|
|
const { status, title, proposalId, rejectReason } = this.props.proposal;
|
CCRs (#86)
* CCRs API / Models boilerplate
* start on frontend
* backendy things
* Create CCR redux module, integrate API endpoints, create types
* Fix/Cleanup API
* Wire up CreateRequestDraftList
* bounty->target
* Add 'Create Request Flow' MVP
* cleanup
* Tweak filenames
* Simplify migrations
* fix migrations
* CCR Staking MVP
* tslint
* Get Pending Requests into Profile
* Remove staking requirement
* more staking related removals
* MVP Admin integration
* Make RFP when CCR is accepted
* Add pagination to CCRs in Admin
Improve styles for Proposals
* Hookup notifications
Adjust copy
* Simplify ccr->rfp relationship
Add admin approval email
Fixup copy
* Show Message on RFP Detail
Make Header CTAs change based on draft status
Adjust proposal card style
* Bugfix: Show header for non signed in users
* Add 'create a request' to intro
* Profile Created CCRs
RFP CCR attribution
* ignore
* CCR Price in USD (#85)
* init profile tipjar backend
* init profile tipjar frontend
* fix lint
* implement tip jar block
* fix wrapping, hide tip block on self
* init backend proposal tipjar
* init frontend proposal tipjar
* add hide title, fix bug
* uncomment rate limit
* rename vars, use null check
* allow address and view key to be unset
* add api tests
* fix tsc errors
* fix lint
* fix CopyInput styling
* fix migrations
* hide tipping in proposal if address not set
* add tip address to create flow
* redesign campaign block
* fix typo
* init backend changes
* init admin changes
* init frontend changes
* fix backend tests
* update campaign block
* be - init rfp usd changes
* admin - init rfp usd changes
* fe - fully adapt api util functions to usd
* fe - init rfp usd changes
* adapt profile created to usd
* misc usd changes
* add tip jar to dedicated card
* fix tipjar bug
* use zf light logo
* switch to zf grants logo
* hide profile tip jar if address not set
* add comment, run prettier
* conditionally add info icon and tooltip to funding line
* admin - disallow decimals in RFPs
* fe - cover usd string edge case
* add Usd as rfp bounty type
* fix migration order
* fix email bug
* adapt CCRs to USD
* implement CCR preview
* fix tsc
* Copy Updates and UX Tweaks (#87)
* Add default structure to proposal content
* Landing page copy
* Hide contributors tab for v2 proposals
* Minor UX tweaks for Liking/Following/Tipping
* Copy for Tipping Tooltip, proposal explainer for review, and milestone day estimate notice.
* Fix header styles bug and remove commented out styles.
* Revert "like" / "unfollow" hyphenication
* Comment out unused tests related to staking
Increase PROPOSAL_TARGET_MAX in .env.example
* Comment out ccr approval email send until ready
* Adjust styles, copy.
* fix proposal prune test (#88)
* fix USD display in preview, fix non-unique key (#90)
* Pre-stepper explainer for CCRs.
* Tweak styles
* Default content for CCRs
* fix tsc
* CCR approval and rejection emails
* add back admin_approval_ccr email templates
* Link ccr author name to profile in RFPs
* copy tweaks
* copy tweak
* hookup mangle user command
* Fix/add endif in jinja
* fix tests
* review
* fix review
2019-12-05 17:01:02 -08:00
|
|
|
const { isDeleting, isPublishing } = this.state;
|
2019-01-09 10:23:08 -08:00
|
|
|
|
|
|
|
const isDisableActions = isDeleting || isPublishing;
|
|
|
|
|
|
|
|
const st = {
|
|
|
|
[STATUS.APPROVED]: {
|
|
|
|
color: 'green',
|
|
|
|
tag: 'Approved',
|
|
|
|
blurb: <div>You may publish this proposal when you are ready.</div>,
|
|
|
|
},
|
|
|
|
[STATUS.REJECTED]: {
|
|
|
|
color: 'red',
|
2019-11-20 13:37:58 -08:00
|
|
|
tag: 'Changes requested',
|
2019-01-09 10:23:08 -08:00
|
|
|
blurb: (
|
|
|
|
<>
|
2019-11-20 13:37:58 -08:00
|
|
|
<div>This proposal has changes requested:</div>
|
2019-01-09 10:23:08 -08:00
|
|
|
<q>{rejectReason}</q>
|
|
|
|
<div>You may edit this proposal and re-submit it for approval.</div>
|
|
|
|
</>
|
|
|
|
),
|
|
|
|
},
|
2019-01-31 14:56:16 -08:00
|
|
|
[STATUS.STAKING]: {
|
|
|
|
color: 'purple',
|
|
|
|
tag: 'Staking',
|
|
|
|
blurb: (
|
|
|
|
<div>
|
CCRs (#86)
* CCRs API / Models boilerplate
* start on frontend
* backendy things
* Create CCR redux module, integrate API endpoints, create types
* Fix/Cleanup API
* Wire up CreateRequestDraftList
* bounty->target
* Add 'Create Request Flow' MVP
* cleanup
* Tweak filenames
* Simplify migrations
* fix migrations
* CCR Staking MVP
* tslint
* Get Pending Requests into Profile
* Remove staking requirement
* more staking related removals
* MVP Admin integration
* Make RFP when CCR is accepted
* Add pagination to CCRs in Admin
Improve styles for Proposals
* Hookup notifications
Adjust copy
* Simplify ccr->rfp relationship
Add admin approval email
Fixup copy
* Show Message on RFP Detail
Make Header CTAs change based on draft status
Adjust proposal card style
* Bugfix: Show header for non signed in users
* Add 'create a request' to intro
* Profile Created CCRs
RFP CCR attribution
* ignore
* CCR Price in USD (#85)
* init profile tipjar backend
* init profile tipjar frontend
* fix lint
* implement tip jar block
* fix wrapping, hide tip block on self
* init backend proposal tipjar
* init frontend proposal tipjar
* add hide title, fix bug
* uncomment rate limit
* rename vars, use null check
* allow address and view key to be unset
* add api tests
* fix tsc errors
* fix lint
* fix CopyInput styling
* fix migrations
* hide tipping in proposal if address not set
* add tip address to create flow
* redesign campaign block
* fix typo
* init backend changes
* init admin changes
* init frontend changes
* fix backend tests
* update campaign block
* be - init rfp usd changes
* admin - init rfp usd changes
* fe - fully adapt api util functions to usd
* fe - init rfp usd changes
* adapt profile created to usd
* misc usd changes
* add tip jar to dedicated card
* fix tipjar bug
* use zf light logo
* switch to zf grants logo
* hide profile tip jar if address not set
* add comment, run prettier
* conditionally add info icon and tooltip to funding line
* admin - disallow decimals in RFPs
* fe - cover usd string edge case
* add Usd as rfp bounty type
* fix migration order
* fix email bug
* adapt CCRs to USD
* implement CCR preview
* fix tsc
* Copy Updates and UX Tweaks (#87)
* Add default structure to proposal content
* Landing page copy
* Hide contributors tab for v2 proposals
* Minor UX tweaks for Liking/Following/Tipping
* Copy for Tipping Tooltip, proposal explainer for review, and milestone day estimate notice.
* Fix header styles bug and remove commented out styles.
* Revert "like" / "unfollow" hyphenication
* Comment out unused tests related to staking
Increase PROPOSAL_TARGET_MAX in .env.example
* Comment out ccr approval email send until ready
* Adjust styles, copy.
* fix proposal prune test (#88)
* fix USD display in preview, fix non-unique key (#90)
* Pre-stepper explainer for CCRs.
* Tweak styles
* Default content for CCRs
* fix tsc
* CCR approval and rejection emails
* add back admin_approval_ccr email templates
* Link ccr author name to profile in RFPs
* copy tweaks
* copy tweak
* hookup mangle user command
* Fix/add endif in jinja
* fix tests
* review
* fix review
2019-12-05 17:01:02 -08:00
|
|
|
Awaiting staking contribution, you will receive an email when staking has been
|
2019-01-31 14:56:16 -08:00
|
|
|
confirmed. If you staked this proposal you may check its status under the
|
|
|
|
"funded" tab.
|
|
|
|
</div>
|
|
|
|
),
|
|
|
|
},
|
2019-01-09 10:23:08 -08:00
|
|
|
[STATUS.PENDING]: {
|
|
|
|
color: 'orange',
|
|
|
|
tag: 'Pending',
|
|
|
|
blurb: (
|
|
|
|
<div>
|
|
|
|
You will receive an email when this proposal has completed the review process.
|
|
|
|
</div>
|
|
|
|
),
|
|
|
|
},
|
|
|
|
} as { [key in STATUS]: { color: string; tag: string; blurb: ReactNode } };
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div className="ProfilePending">
|
|
|
|
<div className="ProfilePending-block">
|
|
|
|
<Link to={`/proposals/${proposalId}`} className="ProfilePending-title">
|
CCRs (#86)
* CCRs API / Models boilerplate
* start on frontend
* backendy things
* Create CCR redux module, integrate API endpoints, create types
* Fix/Cleanup API
* Wire up CreateRequestDraftList
* bounty->target
* Add 'Create Request Flow' MVP
* cleanup
* Tweak filenames
* Simplify migrations
* fix migrations
* CCR Staking MVP
* tslint
* Get Pending Requests into Profile
* Remove staking requirement
* more staking related removals
* MVP Admin integration
* Make RFP when CCR is accepted
* Add pagination to CCRs in Admin
Improve styles for Proposals
* Hookup notifications
Adjust copy
* Simplify ccr->rfp relationship
Add admin approval email
Fixup copy
* Show Message on RFP Detail
Make Header CTAs change based on draft status
Adjust proposal card style
* Bugfix: Show header for non signed in users
* Add 'create a request' to intro
* Profile Created CCRs
RFP CCR attribution
* ignore
* CCR Price in USD (#85)
* init profile tipjar backend
* init profile tipjar frontend
* fix lint
* implement tip jar block
* fix wrapping, hide tip block on self
* init backend proposal tipjar
* init frontend proposal tipjar
* add hide title, fix bug
* uncomment rate limit
* rename vars, use null check
* allow address and view key to be unset
* add api tests
* fix tsc errors
* fix lint
* fix CopyInput styling
* fix migrations
* hide tipping in proposal if address not set
* add tip address to create flow
* redesign campaign block
* fix typo
* init backend changes
* init admin changes
* init frontend changes
* fix backend tests
* update campaign block
* be - init rfp usd changes
* admin - init rfp usd changes
* fe - fully adapt api util functions to usd
* fe - init rfp usd changes
* adapt profile created to usd
* misc usd changes
* add tip jar to dedicated card
* fix tipjar bug
* use zf light logo
* switch to zf grants logo
* hide profile tip jar if address not set
* add comment, run prettier
* conditionally add info icon and tooltip to funding line
* admin - disallow decimals in RFPs
* fe - cover usd string edge case
* add Usd as rfp bounty type
* fix migration order
* fix email bug
* adapt CCRs to USD
* implement CCR preview
* fix tsc
* Copy Updates and UX Tweaks (#87)
* Add default structure to proposal content
* Landing page copy
* Hide contributors tab for v2 proposals
* Minor UX tweaks for Liking/Following/Tipping
* Copy for Tipping Tooltip, proposal explainer for review, and milestone day estimate notice.
* Fix header styles bug and remove commented out styles.
* Revert "like" / "unfollow" hyphenication
* Comment out unused tests related to staking
Increase PROPOSAL_TARGET_MAX in .env.example
* Comment out ccr approval email send until ready
* Adjust styles, copy.
* fix proposal prune test (#88)
* fix USD display in preview, fix non-unique key (#90)
* Pre-stepper explainer for CCRs.
* Tweak styles
* Default content for CCRs
* fix tsc
* CCR approval and rejection emails
* add back admin_approval_ccr email templates
* Link ccr author name to profile in RFPs
* copy tweaks
* copy tweak
* hookup mangle user command
* Fix/add endif in jinja
* fix tests
* review
* fix review
2019-12-05 17:01:02 -08:00
|
|
|
{title} <Tag color={st[status].color}>{st[status].tag} Proposal</Tag>
|
2019-01-09 10:23:08 -08:00
|
|
|
</Link>
|
|
|
|
<div className={`ProfilePending-status is-${status.toLowerCase()}`}>
|
|
|
|
{st[status].blurb}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className="ProfilePending-block is-actions">
|
|
|
|
{STATUS.REJECTED === status && (
|
|
|
|
<Link to={`/proposals/${proposalId}/edit`}>
|
|
|
|
<Button disabled={isDisableActions} type="primary">
|
|
|
|
Edit
|
|
|
|
</Button>
|
|
|
|
</Link>
|
|
|
|
)}
|
|
|
|
|
|
|
|
<Popconfirm
|
|
|
|
key="delete"
|
|
|
|
title="Are you sure?"
|
|
|
|
onConfirm={() => this.handleDelete()}
|
|
|
|
>
|
|
|
|
<Button type="default" disabled={isDisableActions} loading={isDeleting}>
|
|
|
|
Delete
|
|
|
|
</Button>
|
|
|
|
</Popconfirm>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
private handleDelete = async () => {
|
|
|
|
const {
|
|
|
|
user,
|
|
|
|
proposal: { proposalId },
|
|
|
|
} = this.props;
|
|
|
|
if (!user) return;
|
|
|
|
this.setState({ isDeleting: true });
|
|
|
|
try {
|
|
|
|
await this.props.deletePendingProposal(user.userid, proposalId);
|
|
|
|
message.success('Proposal deleted.');
|
|
|
|
} catch (e) {
|
|
|
|
message.error(e.message || e.toString());
|
|
|
|
this.setState({ isDeleting: false });
|
|
|
|
}
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
export default connect<StateProps, DispatchProps, OwnProps, AppState>(
|
|
|
|
state => ({
|
|
|
|
user: state.auth.user,
|
|
|
|
}),
|
|
|
|
{
|
|
|
|
deletePendingProposal,
|
|
|
|
},
|
|
|
|
)(ProfilePending);
|