2018-09-10 09:55:26 -07:00
|
|
|
import types from './types';
|
2019-02-17 18:13:24 -08:00
|
|
|
import { cloneDeep } from 'lodash';
|
|
|
|
import { pendingMoreablePage, fulfilledMoreablePage } from 'utils/helpers';
|
2019-02-05 12:34:19 -08:00
|
|
|
import {
|
|
|
|
Proposal,
|
|
|
|
ProposalUpdates,
|
ZF Grants 2.1 (#496)
* fix ccr pagination defaults
* add ccr admin tests
* add ccr user tests
* checkpoint
* fix tslint
* request changes discussion flow mvp
* admin - add discussion status
* backend - add live drafts
* admin - add live drafts
* frontend - add live drafts
* frontend - add edit discussion proposal
* fix tsc
* include DISCUSSION status in propsal listview
* do not make live draft on admin request changes
* hide live drafts from user proposal draft list
* fix backend tests
* add admin tests
* add user tests
* fix: liking, viewing discussion proposals, admin menu
* admin - update hints for live drafts
* fe - add better messaging when updating a proposal
* be - fix like test
* remove TODO comments
* add new email types
* fix storybook
* add revision tab story
* backend - implement proposal revisions
* frontend - implement proposal revisions
* update revision tab story
* fix lint
* remove set detection
* email proposal followers on revision
* restrict banner to team members only
* misc bug fixes
* update, add backend tests
* add milestone title change to revision history story
* fix milestones display in preview
* allow archived proposals to be queried
* implement archived proposal page
* fix tsc
* implement archived proposal get route
* move styling into less
* remove proposal archive parent id
* handle archived proposal status
* cleanup
* remove contributions, switch to USD, implement quarters
* use Qs to preserve formatting
* handle edit only kyc
* prevent ARCHIVED proposals from being sent to admin
* display latest revision first
* admin - proposal & ccr reject permanently
* backend - proposal & ccr reject permanently
* frontend - proposal & ccr reject permanently
* fix tsc
* use $ in milestone payout email
* introduce custom filters to proposal listview
* hide archive link on first revision
* upgrade packages
* add bech32 implementation
* add z address validation with tests
* fix tslint
* use local address validation
* fix tests, remove blockchain mock gets
* add additional bad addresses
* update briefs to include page break message
* remove contributions routes, menu entry
* disable countribution count admin stats
* remove matching and pretty print in finance
* fix tslint
* separate out rejected permanently proposals
* make removing proposals generic
* allow linked tabs to be ignored
* remove rejected permanently, bugfix
* update preview link to point to rejected tab
* implement rejected permanently tab, add tab message
* refactor variable
* fix tslint
* fix tslint
* send ccr reject permanently email on rejection
* fix preview message
* wire up proposal arbiter and rejected emails
* disable tip jar in proposal and profile
* sync ccr/proposal drafts on create form init
* check invites on submit modal open
* update team invite language
* update team text when edit
* fix ccr rejected permanently tag
* text changes, email preview fix
* display changes requested tag when in discussion with changes requested
* enable social share on open for discussion proposals, update language
* place sort below filter
* derive filter from query string
* use better filter names in query params
* fix tslint
* create snapshot of original proposal on first revision
* clear invites between edits, account for additional changes not tracked in revisions
* update tests
* fix test
* remove print
* SameSite Fixes (#150)
* QA Fixes 2 (#151)
* set filters as query strings on change
* remove rejected permanently tags
* add dollar sign in financials legend
* fix tsc
* Copy Touchups (#152)
* Email Fixes (#155)
* fix ZEC in milestone payout emails
* fix links in rejected permanently CCR/proposal emails
* Poll for Team and Invite Changes in Create Flow (#153)
* poll for team and invite changes in create flow
* fix tslint
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* pretty print payouts by quarter (#156)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove Blockchain Module (#154)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Add Tags to Proposal Cards (#157)
* add tag to proposals and dynamically set v1 card height
* listen on window resize
* make card height props optional
* set tag in bottom right, remove dynamic card resize, add dynamic tag resize
* cleanup
* cleanup
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Improve Frontend Address Validation (#158)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove blockchain module (#162)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Remove Blockchain App (#160)
* remove blockchain app
* remove blockchain app from travis
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
* Proposal Edit Fixes (#161)
* fe - display error if edit creation fails
* be - restrict live draft publish
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Restrict Arbiter Assignment (#159)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Email Copy updates
* Remove Admin Financials Card
* Hookup 'proposal_approved_without_funding' to admin email example
* bump various package versions
* Update yarn.lock files
* Attach 'proposal_approved_without_funding' to backend example email
* bump package versions
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
2020-04-07 19:56:32 -07:00
|
|
|
ProposalRevisions,
|
2019-02-05 12:34:19 -08:00
|
|
|
Comment,
|
|
|
|
ProposalContributions,
|
|
|
|
LoadableProposalPage,
|
2019-02-17 18:13:24 -08:00
|
|
|
Moreable,
|
2019-02-05 12:34:19 -08:00
|
|
|
} from 'types';
|
2019-06-11 16:55:36 -07:00
|
|
|
import { PROPOSAL_SORT } from 'api/constants';
|
2018-09-10 09:55:26 -07:00
|
|
|
|
2019-02-11 21:10:09 -08:00
|
|
|
export interface ProposalDetail extends Proposal {
|
|
|
|
isRequestingPayout: boolean;
|
|
|
|
requestPayoutError: string;
|
|
|
|
isRejectingPayout: boolean;
|
|
|
|
rejectPayoutError: string;
|
|
|
|
isAcceptingPayout: boolean;
|
|
|
|
acceptPayoutError: string;
|
|
|
|
}
|
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
export interface ProposalState {
|
2019-02-05 12:34:19 -08:00
|
|
|
page: LoadableProposalPage;
|
|
|
|
|
2019-02-11 21:42:21 -08:00
|
|
|
detail: null | ProposalDetail;
|
2019-02-05 12:34:19 -08:00
|
|
|
isFetchingDetail: boolean;
|
|
|
|
detailError: null | string;
|
2018-09-10 09:55:26 -07:00
|
|
|
|
2019-02-17 18:13:24 -08:00
|
|
|
detailComments: Moreable<Comment>;
|
2018-09-10 09:55:26 -07:00
|
|
|
|
|
|
|
proposalUpdates: { [id: string]: ProposalUpdates };
|
|
|
|
updatesError: null | string;
|
|
|
|
isFetchingUpdates: boolean;
|
2018-09-18 15:15:01 -07:00
|
|
|
|
ZF Grants 2.1 (#496)
* fix ccr pagination defaults
* add ccr admin tests
* add ccr user tests
* checkpoint
* fix tslint
* request changes discussion flow mvp
* admin - add discussion status
* backend - add live drafts
* admin - add live drafts
* frontend - add live drafts
* frontend - add edit discussion proposal
* fix tsc
* include DISCUSSION status in propsal listview
* do not make live draft on admin request changes
* hide live drafts from user proposal draft list
* fix backend tests
* add admin tests
* add user tests
* fix: liking, viewing discussion proposals, admin menu
* admin - update hints for live drafts
* fe - add better messaging when updating a proposal
* be - fix like test
* remove TODO comments
* add new email types
* fix storybook
* add revision tab story
* backend - implement proposal revisions
* frontend - implement proposal revisions
* update revision tab story
* fix lint
* remove set detection
* email proposal followers on revision
* restrict banner to team members only
* misc bug fixes
* update, add backend tests
* add milestone title change to revision history story
* fix milestones display in preview
* allow archived proposals to be queried
* implement archived proposal page
* fix tsc
* implement archived proposal get route
* move styling into less
* remove proposal archive parent id
* handle archived proposal status
* cleanup
* remove contributions, switch to USD, implement quarters
* use Qs to preserve formatting
* handle edit only kyc
* prevent ARCHIVED proposals from being sent to admin
* display latest revision first
* admin - proposal & ccr reject permanently
* backend - proposal & ccr reject permanently
* frontend - proposal & ccr reject permanently
* fix tsc
* use $ in milestone payout email
* introduce custom filters to proposal listview
* hide archive link on first revision
* upgrade packages
* add bech32 implementation
* add z address validation with tests
* fix tslint
* use local address validation
* fix tests, remove blockchain mock gets
* add additional bad addresses
* update briefs to include page break message
* remove contributions routes, menu entry
* disable countribution count admin stats
* remove matching and pretty print in finance
* fix tslint
* separate out rejected permanently proposals
* make removing proposals generic
* allow linked tabs to be ignored
* remove rejected permanently, bugfix
* update preview link to point to rejected tab
* implement rejected permanently tab, add tab message
* refactor variable
* fix tslint
* fix tslint
* send ccr reject permanently email on rejection
* fix preview message
* wire up proposal arbiter and rejected emails
* disable tip jar in proposal and profile
* sync ccr/proposal drafts on create form init
* check invites on submit modal open
* update team invite language
* update team text when edit
* fix ccr rejected permanently tag
* text changes, email preview fix
* display changes requested tag when in discussion with changes requested
* enable social share on open for discussion proposals, update language
* place sort below filter
* derive filter from query string
* use better filter names in query params
* fix tslint
* create snapshot of original proposal on first revision
* clear invites between edits, account for additional changes not tracked in revisions
* update tests
* fix test
* remove print
* SameSite Fixes (#150)
* QA Fixes 2 (#151)
* set filters as query strings on change
* remove rejected permanently tags
* add dollar sign in financials legend
* fix tsc
* Copy Touchups (#152)
* Email Fixes (#155)
* fix ZEC in milestone payout emails
* fix links in rejected permanently CCR/proposal emails
* Poll for Team and Invite Changes in Create Flow (#153)
* poll for team and invite changes in create flow
* fix tslint
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* pretty print payouts by quarter (#156)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove Blockchain Module (#154)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Add Tags to Proposal Cards (#157)
* add tag to proposals and dynamically set v1 card height
* listen on window resize
* make card height props optional
* set tag in bottom right, remove dynamic card resize, add dynamic tag resize
* cleanup
* cleanup
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Improve Frontend Address Validation (#158)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove blockchain module (#162)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Remove Blockchain App (#160)
* remove blockchain app
* remove blockchain app from travis
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
* Proposal Edit Fixes (#161)
* fe - display error if edit creation fails
* be - restrict live draft publish
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Restrict Arbiter Assignment (#159)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Email Copy updates
* Remove Admin Financials Card
* Hookup 'proposal_approved_without_funding' to admin email example
* bump various package versions
* Update yarn.lock files
* Attach 'proposal_approved_without_funding' to backend example email
* bump package versions
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
2020-04-07 19:56:32 -07:00
|
|
|
proposalRevisions: { [id: string]: ProposalRevisions };
|
|
|
|
revisionsError: null | string;
|
|
|
|
isFetchingRevisions: boolean;
|
|
|
|
|
2019-01-09 12:48:41 -08:00
|
|
|
proposalContributions: { [id: string]: ProposalContributions };
|
|
|
|
fetchContributionsError: null | string;
|
|
|
|
isFetchingContributions: boolean;
|
|
|
|
|
2018-09-18 15:15:01 -07:00
|
|
|
isPostCommentPending: boolean;
|
|
|
|
postCommentError: null | string;
|
2019-01-09 13:32:51 -08:00
|
|
|
|
|
|
|
isDeletingContribution: boolean;
|
|
|
|
deleteContributionError: null | string;
|
2018-09-10 09:55:26 -07:00
|
|
|
}
|
|
|
|
|
2019-02-11 21:42:21 -08:00
|
|
|
export const PROPOSAL_DETAIL_INITIAL_STATE = {
|
2019-02-11 21:10:09 -08:00
|
|
|
isRequestingPayout: false,
|
|
|
|
requestPayoutError: '',
|
|
|
|
isRejectingPayout: false,
|
|
|
|
rejectPayoutError: '',
|
|
|
|
isAcceptingPayout: false,
|
|
|
|
acceptPayoutError: '',
|
|
|
|
};
|
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
export const INITIAL_STATE: ProposalState = {
|
2019-02-05 12:34:19 -08:00
|
|
|
page: {
|
|
|
|
page: 1,
|
|
|
|
pageSize: 0,
|
|
|
|
total: 0,
|
|
|
|
search: '',
|
|
|
|
sort: PROPOSAL_SORT.NEWEST,
|
|
|
|
filters: {
|
|
|
|
category: [],
|
2019-06-11 16:55:36 -07:00
|
|
|
stage: [],
|
ZF Grants 2.1 (#496)
* fix ccr pagination defaults
* add ccr admin tests
* add ccr user tests
* checkpoint
* fix tslint
* request changes discussion flow mvp
* admin - add discussion status
* backend - add live drafts
* admin - add live drafts
* frontend - add live drafts
* frontend - add edit discussion proposal
* fix tsc
* include DISCUSSION status in propsal listview
* do not make live draft on admin request changes
* hide live drafts from user proposal draft list
* fix backend tests
* add admin tests
* add user tests
* fix: liking, viewing discussion proposals, admin menu
* admin - update hints for live drafts
* fe - add better messaging when updating a proposal
* be - fix like test
* remove TODO comments
* add new email types
* fix storybook
* add revision tab story
* backend - implement proposal revisions
* frontend - implement proposal revisions
* update revision tab story
* fix lint
* remove set detection
* email proposal followers on revision
* restrict banner to team members only
* misc bug fixes
* update, add backend tests
* add milestone title change to revision history story
* fix milestones display in preview
* allow archived proposals to be queried
* implement archived proposal page
* fix tsc
* implement archived proposal get route
* move styling into less
* remove proposal archive parent id
* handle archived proposal status
* cleanup
* remove contributions, switch to USD, implement quarters
* use Qs to preserve formatting
* handle edit only kyc
* prevent ARCHIVED proposals from being sent to admin
* display latest revision first
* admin - proposal & ccr reject permanently
* backend - proposal & ccr reject permanently
* frontend - proposal & ccr reject permanently
* fix tsc
* use $ in milestone payout email
* introduce custom filters to proposal listview
* hide archive link on first revision
* upgrade packages
* add bech32 implementation
* add z address validation with tests
* fix tslint
* use local address validation
* fix tests, remove blockchain mock gets
* add additional bad addresses
* update briefs to include page break message
* remove contributions routes, menu entry
* disable countribution count admin stats
* remove matching and pretty print in finance
* fix tslint
* separate out rejected permanently proposals
* make removing proposals generic
* allow linked tabs to be ignored
* remove rejected permanently, bugfix
* update preview link to point to rejected tab
* implement rejected permanently tab, add tab message
* refactor variable
* fix tslint
* fix tslint
* send ccr reject permanently email on rejection
* fix preview message
* wire up proposal arbiter and rejected emails
* disable tip jar in proposal and profile
* sync ccr/proposal drafts on create form init
* check invites on submit modal open
* update team invite language
* update team text when edit
* fix ccr rejected permanently tag
* text changes, email preview fix
* display changes requested tag when in discussion with changes requested
* enable social share on open for discussion proposals, update language
* place sort below filter
* derive filter from query string
* use better filter names in query params
* fix tslint
* create snapshot of original proposal on first revision
* clear invites between edits, account for additional changes not tracked in revisions
* update tests
* fix test
* remove print
* SameSite Fixes (#150)
* QA Fixes 2 (#151)
* set filters as query strings on change
* remove rejected permanently tags
* add dollar sign in financials legend
* fix tsc
* Copy Touchups (#152)
* Email Fixes (#155)
* fix ZEC in milestone payout emails
* fix links in rejected permanently CCR/proposal emails
* Poll for Team and Invite Changes in Create Flow (#153)
* poll for team and invite changes in create flow
* fix tslint
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* pretty print payouts by quarter (#156)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove Blockchain Module (#154)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Add Tags to Proposal Cards (#157)
* add tag to proposals and dynamically set v1 card height
* listen on window resize
* make card height props optional
* set tag in bottom right, remove dynamic card resize, add dynamic tag resize
* cleanup
* cleanup
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Improve Frontend Address Validation (#158)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove blockchain module (#162)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Remove Blockchain App (#160)
* remove blockchain app
* remove blockchain app from travis
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
* Proposal Edit Fixes (#161)
* fe - display error if edit creation fails
* be - restrict live draft publish
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Restrict Arbiter Assignment (#159)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Email Copy updates
* Remove Admin Financials Card
* Hookup 'proposal_approved_without_funding' to admin email example
* bump various package versions
* Update yarn.lock files
* Attach 'proposal_approved_without_funding' to backend example email
* bump package versions
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
2020-04-07 19:56:32 -07:00
|
|
|
custom: [],
|
2019-02-05 12:34:19 -08:00
|
|
|
},
|
|
|
|
items: [],
|
|
|
|
hasFetched: false,
|
|
|
|
isFetching: false,
|
|
|
|
fetchError: null,
|
|
|
|
fetchTime: 0,
|
|
|
|
},
|
|
|
|
|
|
|
|
detail: null,
|
|
|
|
isFetchingDetail: false,
|
|
|
|
detailError: null,
|
2018-09-10 09:55:26 -07:00
|
|
|
|
2019-02-17 18:13:24 -08:00
|
|
|
detailComments: {
|
|
|
|
pages: [],
|
|
|
|
hasMore: false,
|
|
|
|
page: 1,
|
|
|
|
pageSize: 0,
|
|
|
|
total: 0,
|
|
|
|
search: '',
|
|
|
|
sort: '',
|
|
|
|
filters: [],
|
|
|
|
isFetching: false,
|
|
|
|
hasFetched: false,
|
|
|
|
fetchError: '',
|
|
|
|
fetchTime: 0,
|
|
|
|
parentId: null,
|
|
|
|
},
|
2018-09-10 09:55:26 -07:00
|
|
|
|
|
|
|
proposalUpdates: {},
|
|
|
|
updatesError: null,
|
|
|
|
isFetchingUpdates: false,
|
2018-09-18 15:15:01 -07:00
|
|
|
|
ZF Grants 2.1 (#496)
* fix ccr pagination defaults
* add ccr admin tests
* add ccr user tests
* checkpoint
* fix tslint
* request changes discussion flow mvp
* admin - add discussion status
* backend - add live drafts
* admin - add live drafts
* frontend - add live drafts
* frontend - add edit discussion proposal
* fix tsc
* include DISCUSSION status in propsal listview
* do not make live draft on admin request changes
* hide live drafts from user proposal draft list
* fix backend tests
* add admin tests
* add user tests
* fix: liking, viewing discussion proposals, admin menu
* admin - update hints for live drafts
* fe - add better messaging when updating a proposal
* be - fix like test
* remove TODO comments
* add new email types
* fix storybook
* add revision tab story
* backend - implement proposal revisions
* frontend - implement proposal revisions
* update revision tab story
* fix lint
* remove set detection
* email proposal followers on revision
* restrict banner to team members only
* misc bug fixes
* update, add backend tests
* add milestone title change to revision history story
* fix milestones display in preview
* allow archived proposals to be queried
* implement archived proposal page
* fix tsc
* implement archived proposal get route
* move styling into less
* remove proposal archive parent id
* handle archived proposal status
* cleanup
* remove contributions, switch to USD, implement quarters
* use Qs to preserve formatting
* handle edit only kyc
* prevent ARCHIVED proposals from being sent to admin
* display latest revision first
* admin - proposal & ccr reject permanently
* backend - proposal & ccr reject permanently
* frontend - proposal & ccr reject permanently
* fix tsc
* use $ in milestone payout email
* introduce custom filters to proposal listview
* hide archive link on first revision
* upgrade packages
* add bech32 implementation
* add z address validation with tests
* fix tslint
* use local address validation
* fix tests, remove blockchain mock gets
* add additional bad addresses
* update briefs to include page break message
* remove contributions routes, menu entry
* disable countribution count admin stats
* remove matching and pretty print in finance
* fix tslint
* separate out rejected permanently proposals
* make removing proposals generic
* allow linked tabs to be ignored
* remove rejected permanently, bugfix
* update preview link to point to rejected tab
* implement rejected permanently tab, add tab message
* refactor variable
* fix tslint
* fix tslint
* send ccr reject permanently email on rejection
* fix preview message
* wire up proposal arbiter and rejected emails
* disable tip jar in proposal and profile
* sync ccr/proposal drafts on create form init
* check invites on submit modal open
* update team invite language
* update team text when edit
* fix ccr rejected permanently tag
* text changes, email preview fix
* display changes requested tag when in discussion with changes requested
* enable social share on open for discussion proposals, update language
* place sort below filter
* derive filter from query string
* use better filter names in query params
* fix tslint
* create snapshot of original proposal on first revision
* clear invites between edits, account for additional changes not tracked in revisions
* update tests
* fix test
* remove print
* SameSite Fixes (#150)
* QA Fixes 2 (#151)
* set filters as query strings on change
* remove rejected permanently tags
* add dollar sign in financials legend
* fix tsc
* Copy Touchups (#152)
* Email Fixes (#155)
* fix ZEC in milestone payout emails
* fix links in rejected permanently CCR/proposal emails
* Poll for Team and Invite Changes in Create Flow (#153)
* poll for team and invite changes in create flow
* fix tslint
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* pretty print payouts by quarter (#156)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove Blockchain Module (#154)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Add Tags to Proposal Cards (#157)
* add tag to proposals and dynamically set v1 card height
* listen on window resize
* make card height props optional
* set tag in bottom right, remove dynamic card resize, add dynamic tag resize
* cleanup
* cleanup
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Improve Frontend Address Validation (#158)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove blockchain module (#162)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Remove Blockchain App (#160)
* remove blockchain app
* remove blockchain app from travis
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
* Proposal Edit Fixes (#161)
* fe - display error if edit creation fails
* be - restrict live draft publish
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Restrict Arbiter Assignment (#159)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Email Copy updates
* Remove Admin Financials Card
* Hookup 'proposal_approved_without_funding' to admin email example
* bump various package versions
* Update yarn.lock files
* Attach 'proposal_approved_without_funding' to backend example email
* bump package versions
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
2020-04-07 19:56:32 -07:00
|
|
|
proposalRevisions: {},
|
|
|
|
revisionsError: null,
|
|
|
|
isFetchingRevisions: false,
|
|
|
|
|
2019-01-09 12:48:41 -08:00
|
|
|
proposalContributions: {},
|
|
|
|
fetchContributionsError: null,
|
|
|
|
isFetchingContributions: false,
|
|
|
|
|
2018-09-18 15:15:01 -07:00
|
|
|
isPostCommentPending: false,
|
|
|
|
postCommentError: null,
|
2019-01-09 13:32:51 -08:00
|
|
|
|
|
|
|
isDeletingContribution: false,
|
|
|
|
deleteContributionError: null,
|
2018-09-10 09:55:26 -07:00
|
|
|
};
|
|
|
|
|
2018-11-02 09:24:28 -07:00
|
|
|
function addUpdates(state: ProposalState, payload: ProposalUpdates) {
|
2018-09-10 09:55:26 -07:00
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
proposalUpdates: {
|
|
|
|
...state.proposalUpdates,
|
2018-11-02 09:24:28 -07:00
|
|
|
[payload.proposalId]: payload,
|
2018-09-10 09:55:26 -07:00
|
|
|
},
|
|
|
|
isFetchingUpdates: false,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
ZF Grants 2.1 (#496)
* fix ccr pagination defaults
* add ccr admin tests
* add ccr user tests
* checkpoint
* fix tslint
* request changes discussion flow mvp
* admin - add discussion status
* backend - add live drafts
* admin - add live drafts
* frontend - add live drafts
* frontend - add edit discussion proposal
* fix tsc
* include DISCUSSION status in propsal listview
* do not make live draft on admin request changes
* hide live drafts from user proposal draft list
* fix backend tests
* add admin tests
* add user tests
* fix: liking, viewing discussion proposals, admin menu
* admin - update hints for live drafts
* fe - add better messaging when updating a proposal
* be - fix like test
* remove TODO comments
* add new email types
* fix storybook
* add revision tab story
* backend - implement proposal revisions
* frontend - implement proposal revisions
* update revision tab story
* fix lint
* remove set detection
* email proposal followers on revision
* restrict banner to team members only
* misc bug fixes
* update, add backend tests
* add milestone title change to revision history story
* fix milestones display in preview
* allow archived proposals to be queried
* implement archived proposal page
* fix tsc
* implement archived proposal get route
* move styling into less
* remove proposal archive parent id
* handle archived proposal status
* cleanup
* remove contributions, switch to USD, implement quarters
* use Qs to preserve formatting
* handle edit only kyc
* prevent ARCHIVED proposals from being sent to admin
* display latest revision first
* admin - proposal & ccr reject permanently
* backend - proposal & ccr reject permanently
* frontend - proposal & ccr reject permanently
* fix tsc
* use $ in milestone payout email
* introduce custom filters to proposal listview
* hide archive link on first revision
* upgrade packages
* add bech32 implementation
* add z address validation with tests
* fix tslint
* use local address validation
* fix tests, remove blockchain mock gets
* add additional bad addresses
* update briefs to include page break message
* remove contributions routes, menu entry
* disable countribution count admin stats
* remove matching and pretty print in finance
* fix tslint
* separate out rejected permanently proposals
* make removing proposals generic
* allow linked tabs to be ignored
* remove rejected permanently, bugfix
* update preview link to point to rejected tab
* implement rejected permanently tab, add tab message
* refactor variable
* fix tslint
* fix tslint
* send ccr reject permanently email on rejection
* fix preview message
* wire up proposal arbiter and rejected emails
* disable tip jar in proposal and profile
* sync ccr/proposal drafts on create form init
* check invites on submit modal open
* update team invite language
* update team text when edit
* fix ccr rejected permanently tag
* text changes, email preview fix
* display changes requested tag when in discussion with changes requested
* enable social share on open for discussion proposals, update language
* place sort below filter
* derive filter from query string
* use better filter names in query params
* fix tslint
* create snapshot of original proposal on first revision
* clear invites between edits, account for additional changes not tracked in revisions
* update tests
* fix test
* remove print
* SameSite Fixes (#150)
* QA Fixes 2 (#151)
* set filters as query strings on change
* remove rejected permanently tags
* add dollar sign in financials legend
* fix tsc
* Copy Touchups (#152)
* Email Fixes (#155)
* fix ZEC in milestone payout emails
* fix links in rejected permanently CCR/proposal emails
* Poll for Team and Invite Changes in Create Flow (#153)
* poll for team and invite changes in create flow
* fix tslint
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* pretty print payouts by quarter (#156)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove Blockchain Module (#154)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Add Tags to Proposal Cards (#157)
* add tag to proposals and dynamically set v1 card height
* listen on window resize
* make card height props optional
* set tag in bottom right, remove dynamic card resize, add dynamic tag resize
* cleanup
* cleanup
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Improve Frontend Address Validation (#158)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove blockchain module (#162)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Remove Blockchain App (#160)
* remove blockchain app
* remove blockchain app from travis
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
* Proposal Edit Fixes (#161)
* fe - display error if edit creation fails
* be - restrict live draft publish
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Restrict Arbiter Assignment (#159)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Email Copy updates
* Remove Admin Financials Card
* Hookup 'proposal_approved_without_funding' to admin email example
* bump various package versions
* Update yarn.lock files
* Attach 'proposal_approved_without_funding' to backend example email
* bump package versions
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
2020-04-07 19:56:32 -07:00
|
|
|
function addRevisions(state: ProposalState, payload: ProposalRevisions) {
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
proposalRevisions: {
|
|
|
|
...state.proposalRevisions,
|
|
|
|
[payload.proposalId]: payload,
|
|
|
|
},
|
|
|
|
isFetchingRevisions: false,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2019-01-09 12:48:41 -08:00
|
|
|
function addContributions(state: ProposalState, payload: ProposalContributions) {
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
proposalContributions: {
|
|
|
|
...state.proposalContributions,
|
|
|
|
[payload.proposalId]: payload,
|
|
|
|
},
|
|
|
|
isFetchingContributions: false,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2018-09-18 15:15:01 -07:00
|
|
|
interface PostCommentPayload {
|
2018-12-21 10:47:50 -08:00
|
|
|
proposalId: Proposal['proposalId'];
|
2018-09-18 15:15:01 -07:00
|
|
|
comment: Comment;
|
2018-11-08 11:14:52 -08:00
|
|
|
parentCommentId?: Comment['id'];
|
2018-09-18 15:15:01 -07:00
|
|
|
}
|
|
|
|
function addPostedComment(state: ProposalState, payload: PostCommentPayload) {
|
2019-02-17 18:13:24 -08:00
|
|
|
const { comment, parentCommentId } = payload;
|
|
|
|
// clone so we can mutate with great abandon!
|
|
|
|
const pages = cloneDeep(state.detailComments.pages);
|
|
|
|
if (!parentCommentId) {
|
|
|
|
// its a new comment, pop it into the very first position
|
|
|
|
if (pages[0]) {
|
|
|
|
pages[0].unshift(comment);
|
|
|
|
} else {
|
|
|
|
pages[0] = [comment];
|
2018-09-18 15:15:01 -07:00
|
|
|
}
|
|
|
|
} else {
|
2019-02-17 18:13:24 -08:00
|
|
|
// recursive populate replies for nested comment
|
|
|
|
const f = (id: number, p: Comment) => {
|
|
|
|
if (p.id === id) {
|
|
|
|
p.replies.unshift(comment);
|
|
|
|
return;
|
|
|
|
} else {
|
|
|
|
p.replies.forEach(x => f(id, x));
|
|
|
|
}
|
|
|
|
};
|
|
|
|
// pages > page > comments
|
|
|
|
pages.forEach(p =>
|
|
|
|
p.forEach(c => {
|
|
|
|
f(parentCommentId, c);
|
|
|
|
}),
|
|
|
|
);
|
2018-09-18 15:15:01 -07:00
|
|
|
}
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
isPostCommentPending: false,
|
2019-02-17 18:13:24 -08:00
|
|
|
detailComments: {
|
|
|
|
...state.detailComments,
|
|
|
|
pages,
|
|
|
|
total: state.detailComments.total + 1,
|
2018-09-18 15:15:01 -07:00
|
|
|
},
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2019-02-18 14:35:21 -08:00
|
|
|
function updateCommentInStore(
|
|
|
|
state: ProposalState,
|
|
|
|
commentId: Comment['id'],
|
|
|
|
update: Partial<Comment>,
|
|
|
|
) {
|
|
|
|
// clone so we can mutate with great abandon!
|
|
|
|
const pages = cloneDeep(state.detailComments.pages);
|
|
|
|
// recursive populate replies for nested comment
|
|
|
|
const f = (id: number, p: Comment) => {
|
|
|
|
if (p.id === id) {
|
|
|
|
Object.entries(update).forEach(([k, v]) => {
|
|
|
|
(p as any)[k] = v;
|
|
|
|
});
|
|
|
|
return;
|
|
|
|
} else {
|
|
|
|
p.replies.forEach(x => f(id, x));
|
|
|
|
}
|
|
|
|
};
|
|
|
|
// pages > page > comments
|
|
|
|
pages.forEach(p =>
|
|
|
|
p.forEach(c => {
|
|
|
|
f(commentId, c);
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
isPostCommentPending: false,
|
|
|
|
detailComments: {
|
|
|
|
...state.detailComments,
|
|
|
|
pages,
|
|
|
|
total: state.detailComments.total + 1,
|
|
|
|
},
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
export default (state = INITIAL_STATE, action: any) => {
|
|
|
|
const { payload } = action;
|
|
|
|
switch (action.type) {
|
2019-02-05 12:34:19 -08:00
|
|
|
case types.SET_PROPOSAL_PAGE:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
page: {
|
|
|
|
...state.page,
|
|
|
|
...payload,
|
|
|
|
page: payload.page || 1, // reset page to 1 for non-page changes
|
|
|
|
},
|
|
|
|
};
|
2018-09-10 09:55:26 -07:00
|
|
|
case types.PROPOSALS_DATA_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
2019-02-05 12:34:19 -08:00
|
|
|
page: {
|
|
|
|
...state.page,
|
|
|
|
isFetching: true,
|
|
|
|
fetchError: null,
|
|
|
|
},
|
2018-09-10 09:55:26 -07:00
|
|
|
};
|
|
|
|
case types.PROPOSALS_DATA_FULFILLED:
|
2019-02-05 12:34:19 -08:00
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
page: {
|
|
|
|
...payload,
|
|
|
|
isFetching: false,
|
|
|
|
hasFetched: true,
|
|
|
|
fetchTime: Date.now(),
|
|
|
|
},
|
|
|
|
};
|
2018-09-10 09:55:26 -07:00
|
|
|
case types.PROPOSALS_DATA_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
2019-02-05 12:34:19 -08:00
|
|
|
page: {
|
|
|
|
...state.page,
|
|
|
|
isFetching: false,
|
|
|
|
hasFetched: false,
|
|
|
|
fetchError: (payload && payload.message) || payload.toString(),
|
|
|
|
},
|
2018-09-10 09:55:26 -07:00
|
|
|
};
|
|
|
|
|
2019-02-05 12:34:19 -08:00
|
|
|
case types.PROPOSAL_DATA_PENDING:
|
|
|
|
// check if this proposal is in the page list, and optimistically set it
|
|
|
|
const loadedInPage = state.page.items.find(
|
|
|
|
p => p.proposalId === payload.proposalId,
|
|
|
|
);
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail:
|
|
|
|
// if requesting same proposal, leave the detail object
|
|
|
|
state.detail && state.detail.proposalId === payload.proposalId
|
|
|
|
? state.detail
|
2019-02-11 21:10:09 -08:00
|
|
|
: { ...loadedInPage, ...PROPOSAL_DETAIL_INITIAL_STATE } || null,
|
2019-02-05 12:34:19 -08:00
|
|
|
isFetchingDetail: true,
|
|
|
|
detailError: null,
|
|
|
|
};
|
2018-09-10 09:55:26 -07:00
|
|
|
case types.PROPOSAL_DATA_FULFILLED:
|
2019-02-05 12:34:19 -08:00
|
|
|
return {
|
|
|
|
...state,
|
2019-02-11 21:10:09 -08:00
|
|
|
detail: { ...payload, ...PROPOSAL_DETAIL_INITIAL_STATE },
|
2019-02-05 12:34:19 -08:00
|
|
|
isFetchingDetail: false,
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_DATA_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: null,
|
|
|
|
isFetchingDetail: false,
|
|
|
|
detailError: (payload && payload.message) || payload.toString(),
|
|
|
|
};
|
2018-09-10 09:55:26 -07:00
|
|
|
|
2019-02-11 21:10:09 -08:00
|
|
|
case types.PROPOSAL_PAYOUT_REQUEST_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: {
|
|
|
|
...state.detail,
|
|
|
|
isRequestingPayout: true,
|
|
|
|
requestPayoutError: '',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_PAYOUT_REQUEST_FULFILLED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: { ...payload, ...PROPOSAL_DETAIL_INITIAL_STATE },
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_PAYOUT_REQUEST_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: {
|
|
|
|
...state.detail,
|
|
|
|
isRequestingPayout: false,
|
|
|
|
requestPayoutError: (payload && payload.message) || payload.toString(),
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
case types.PROPOSAL_PAYOUT_REJECT_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: {
|
|
|
|
...state.detail,
|
|
|
|
isRejectingPayout: true,
|
|
|
|
rejectPayoutError: '',
|
|
|
|
},
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_PAYOUT_REJECT_FULFILLED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: { ...payload, ...PROPOSAL_DETAIL_INITIAL_STATE },
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_PAYOUT_REJECT_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: {
|
|
|
|
...state.detail,
|
|
|
|
isRejectingPayout: false,
|
|
|
|
rejectPayoutError: (payload && payload.message) || payload.toString(),
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
case types.PROPOSAL_PAYOUT_ACCEPT_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: {
|
|
|
|
...state.detail,
|
|
|
|
isAcceptingPayout: true,
|
2019-02-13 12:30:58 -08:00
|
|
|
acceptPayoutError: '',
|
2019-02-11 21:10:09 -08:00
|
|
|
},
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_PAYOUT_ACCEPT_FULFILLED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: { ...payload, ...PROPOSAL_DETAIL_INITIAL_STATE },
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_PAYOUT_ACCEPT_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detail: {
|
|
|
|
...state.detail,
|
|
|
|
isAcceptingPayout: false,
|
2019-02-13 12:30:58 -08:00
|
|
|
acceptPayoutError: (payload && payload.message) || payload.toString(),
|
2019-02-11 21:10:09 -08:00
|
|
|
},
|
|
|
|
};
|
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
case types.PROPOSAL_COMMENTS_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
2019-02-17 18:13:24 -08:00
|
|
|
detailComments: pendingMoreablePage(state.detailComments, payload),
|
2018-09-10 09:55:26 -07:00
|
|
|
};
|
|
|
|
case types.PROPOSAL_COMMENTS_FULFILLED:
|
2019-02-17 18:13:24 -08:00
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
detailComments: fulfilledMoreablePage(state.detailComments, payload),
|
|
|
|
};
|
2018-09-10 09:55:26 -07:00
|
|
|
case types.PROPOSAL_COMMENTS_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
2019-02-17 18:13:24 -08:00
|
|
|
detailComments: {
|
|
|
|
...state.detailComments,
|
|
|
|
hasFetched: true,
|
|
|
|
isFetching: false,
|
|
|
|
fetchError: (payload && payload.message) || payload.toString(),
|
|
|
|
},
|
2018-09-10 09:55:26 -07:00
|
|
|
};
|
|
|
|
|
2019-02-18 14:35:21 -08:00
|
|
|
case types.REPORT_PROPOSAL_COMMENT_FULFILLED:
|
|
|
|
return updateCommentInStore(state, payload.commentId, { reported: true });
|
|
|
|
|
2019-10-24 10:32:00 -07:00
|
|
|
case types.UPDATE_PROPOSAL_COMMENT:
|
|
|
|
return updateCommentInStore(state, payload.commentId, payload.commentUpdate);
|
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
case types.PROPOSAL_UPDATES_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
updatesError: null,
|
|
|
|
isFetchingUpdates: true,
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_UPDATES_FULFILLED:
|
|
|
|
return addUpdates(state, payload);
|
|
|
|
case types.PROPOSAL_UPDATES_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
2019-03-13 14:39:50 -07:00
|
|
|
updatesError: (payload && payload.message) || payload.toString(),
|
2018-09-10 09:55:26 -07:00
|
|
|
isFetchingUpdates: false,
|
|
|
|
};
|
|
|
|
|
ZF Grants 2.1 (#496)
* fix ccr pagination defaults
* add ccr admin tests
* add ccr user tests
* checkpoint
* fix tslint
* request changes discussion flow mvp
* admin - add discussion status
* backend - add live drafts
* admin - add live drafts
* frontend - add live drafts
* frontend - add edit discussion proposal
* fix tsc
* include DISCUSSION status in propsal listview
* do not make live draft on admin request changes
* hide live drafts from user proposal draft list
* fix backend tests
* add admin tests
* add user tests
* fix: liking, viewing discussion proposals, admin menu
* admin - update hints for live drafts
* fe - add better messaging when updating a proposal
* be - fix like test
* remove TODO comments
* add new email types
* fix storybook
* add revision tab story
* backend - implement proposal revisions
* frontend - implement proposal revisions
* update revision tab story
* fix lint
* remove set detection
* email proposal followers on revision
* restrict banner to team members only
* misc bug fixes
* update, add backend tests
* add milestone title change to revision history story
* fix milestones display in preview
* allow archived proposals to be queried
* implement archived proposal page
* fix tsc
* implement archived proposal get route
* move styling into less
* remove proposal archive parent id
* handle archived proposal status
* cleanup
* remove contributions, switch to USD, implement quarters
* use Qs to preserve formatting
* handle edit only kyc
* prevent ARCHIVED proposals from being sent to admin
* display latest revision first
* admin - proposal & ccr reject permanently
* backend - proposal & ccr reject permanently
* frontend - proposal & ccr reject permanently
* fix tsc
* use $ in milestone payout email
* introduce custom filters to proposal listview
* hide archive link on first revision
* upgrade packages
* add bech32 implementation
* add z address validation with tests
* fix tslint
* use local address validation
* fix tests, remove blockchain mock gets
* add additional bad addresses
* update briefs to include page break message
* remove contributions routes, menu entry
* disable countribution count admin stats
* remove matching and pretty print in finance
* fix tslint
* separate out rejected permanently proposals
* make removing proposals generic
* allow linked tabs to be ignored
* remove rejected permanently, bugfix
* update preview link to point to rejected tab
* implement rejected permanently tab, add tab message
* refactor variable
* fix tslint
* fix tslint
* send ccr reject permanently email on rejection
* fix preview message
* wire up proposal arbiter and rejected emails
* disable tip jar in proposal and profile
* sync ccr/proposal drafts on create form init
* check invites on submit modal open
* update team invite language
* update team text when edit
* fix ccr rejected permanently tag
* text changes, email preview fix
* display changes requested tag when in discussion with changes requested
* enable social share on open for discussion proposals, update language
* place sort below filter
* derive filter from query string
* use better filter names in query params
* fix tslint
* create snapshot of original proposal on first revision
* clear invites between edits, account for additional changes not tracked in revisions
* update tests
* fix test
* remove print
* SameSite Fixes (#150)
* QA Fixes 2 (#151)
* set filters as query strings on change
* remove rejected permanently tags
* add dollar sign in financials legend
* fix tsc
* Copy Touchups (#152)
* Email Fixes (#155)
* fix ZEC in milestone payout emails
* fix links in rejected permanently CCR/proposal emails
* Poll for Team and Invite Changes in Create Flow (#153)
* poll for team and invite changes in create flow
* fix tslint
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* pretty print payouts by quarter (#156)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove Blockchain Module (#154)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Add Tags to Proposal Cards (#157)
* add tag to proposals and dynamically set v1 card height
* listen on window resize
* make card height props optional
* set tag in bottom right, remove dynamic card resize, add dynamic tag resize
* cleanup
* cleanup
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Improve Frontend Address Validation (#158)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Remove blockchain module (#162)
* remove blockchain route from backend, remove calls to node
* revert blockchain_get removal
* Remove Blockchain App (#160)
* remove blockchain app
* remove blockchain app from travis
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
* Proposal Edit Fixes (#161)
* fe - display error if edit creation fails
* be - restrict live draft publish
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Restrict Arbiter Assignment (#159)
Co-authored-by: Daniel Ternyak <dternyak@gmail.com>
* Email Copy updates
* Remove Admin Financials Card
* Hookup 'proposal_approved_without_funding' to admin email example
* bump various package versions
* Update yarn.lock files
* Attach 'proposal_approved_without_funding' to backend example email
* bump package versions
Co-authored-by: Danny Skubak <skubakdj@gmail.com>
2020-04-07 19:56:32 -07:00
|
|
|
case types.PROPOSAL_REVISIONS_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
revisionsError: null,
|
|
|
|
isFetchingRevisions: true,
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_REVISIONS_FULFILLED:
|
|
|
|
return addRevisions(state, payload);
|
|
|
|
case types.PROPOSAL_REVISIONS_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
revisionsError: (payload && payload.message) || payload.toString(),
|
|
|
|
isFetchingRevisions: false,
|
|
|
|
};
|
|
|
|
|
2019-01-09 12:48:41 -08:00
|
|
|
case types.PROPOSAL_CONTRIBUTIONS_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
fetchContributionsError: null,
|
|
|
|
isFetchingContributions: true,
|
|
|
|
};
|
|
|
|
case types.PROPOSAL_CONTRIBUTIONS_FULFILLED:
|
|
|
|
return addContributions(state, payload);
|
|
|
|
case types.PROPOSAL_CONTRIBUTIONS_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
2019-03-13 14:39:50 -07:00
|
|
|
fetchContributionsError: (payload && payload.message) || payload.toString(),
|
2019-01-09 12:48:41 -08:00
|
|
|
isFetchingContributions: false,
|
|
|
|
};
|
|
|
|
|
2018-09-18 15:15:01 -07:00
|
|
|
case types.POST_PROPOSAL_COMMENT_PENDING:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
isPostCommentPending: true,
|
|
|
|
postCommentError: null,
|
|
|
|
};
|
|
|
|
case types.POST_PROPOSAL_COMMENT_FULFILLED:
|
|
|
|
return addPostedComment(state, payload);
|
|
|
|
case types.POST_PROPOSAL_COMMENT_REJECTED:
|
|
|
|
return {
|
|
|
|
...state,
|
|
|
|
isPostCommentPending: false,
|
|
|
|
postCommentError: payload,
|
|
|
|
};
|
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
default:
|
|
|
|
return state;
|
|
|
|
}
|
|
|
|
};
|