2018-09-10 09:55:26 -07:00
|
|
|
import { AppState } from 'store/reducers';
|
2019-02-05 12:34:19 -08:00
|
|
|
import {
|
|
|
|
Proposal,
|
|
|
|
ProposalUpdates,
|
|
|
|
ProposalContributions,
|
|
|
|
ProposalPageParams,
|
2019-02-17 18:13:24 -08:00
|
|
|
PageParams,
|
2019-02-05 12:34:19 -08:00
|
|
|
} from 'types';
|
2018-11-07 09:33:19 -08:00
|
|
|
|
2018-09-10 09:55:26 -07:00
|
|
|
export function getProposalUpdates(
|
|
|
|
state: AppState,
|
2018-12-21 10:47:50 -08:00
|
|
|
proposalId: Proposal['proposalId'],
|
2018-09-10 09:55:26 -07:00
|
|
|
): ProposalUpdates['updates'] | null {
|
|
|
|
const pu = state.proposal.proposalUpdates[proposalId];
|
|
|
|
return pu ? pu.updates : null;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getProposalUpdateCount(
|
|
|
|
state: AppState,
|
2018-12-21 10:47:50 -08:00
|
|
|
proposalId: Proposal['proposalId'],
|
2018-11-02 09:24:28 -07:00
|
|
|
): number | null {
|
2018-09-10 09:55:26 -07:00
|
|
|
const pu = state.proposal.proposalUpdates[proposalId];
|
2018-11-02 09:24:28 -07:00
|
|
|
return pu ? pu.updates.length : null;
|
2018-09-10 09:55:26 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
export function getIsFetchingUpdates(state: AppState) {
|
|
|
|
return state.proposal.isFetchingUpdates;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getUpdatesError(state: AppState) {
|
|
|
|
return state.proposal.updatesError;
|
|
|
|
}
|
2019-01-09 12:48:41 -08:00
|
|
|
|
|
|
|
export function getProposalContributions(
|
|
|
|
state: AppState,
|
|
|
|
proposalId: Proposal['proposalId'],
|
|
|
|
): Omit<ProposalContributions, 'proposalId'> | null {
|
|
|
|
const pc = state.proposal.proposalContributions[proposalId];
|
|
|
|
return pc ? { top: pc.top, latest: pc.latest } : null;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getIsFetchingContributions(state: AppState) {
|
|
|
|
return state.proposal.isFetchingContributions;
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getFetchContributionsError(state: AppState) {
|
|
|
|
return state.proposal.fetchContributionsError;
|
|
|
|
}
|
2019-02-05 12:34:19 -08:00
|
|
|
|
|
|
|
export function getProposalPageSettings(state: AppState): ProposalPageParams {
|
|
|
|
const { page, search, sort, filters } = state.proposal.page;
|
|
|
|
return {
|
|
|
|
page,
|
|
|
|
search,
|
|
|
|
sort,
|
|
|
|
filters,
|
|
|
|
};
|
|
|
|
}
|
2019-02-17 18:13:24 -08:00
|
|
|
|
|
|
|
export function getProposalCommentPageParams(state: AppState): PageParams {
|
|
|
|
const { page, search, sort, filters } = state.proposal.detailComments;
|
|
|
|
return {
|
|
|
|
page,
|
|
|
|
search,
|
|
|
|
sort,
|
|
|
|
filters,
|
|
|
|
};
|
|
|
|
}
|