Skip to content
Snippets Groups Projects
Commit adafe99e authored by xaralis's avatar xaralis
Browse files

feat: support accept and archive action

parent feefa1e2
No related branches found
No related tags found
No related merge requests found
Pipeline #1955 passed
......@@ -253,16 +253,16 @@ export const acceptProposal = createAsyncAction(
/**
* @param {CF2021.ProposalPost} proposal
*/
(proposal) => {
return updateProposalState(proposal, "accepted");
({ proposal, archive }) => {
return updateProposalState(proposal, "accepted", { is_archived: archive });
},
{
shortCircuitHook: ({ args }) => {
if (args.type !== "procedure-proposal") {
if (args.proposal.type !== "procedure-proposal") {
return errorResult();
}
if (args.state !== "announced") {
if (args.proposal.state !== "announced") {
return errorResult();
}
......
......@@ -65,8 +65,10 @@ const PostsContainer = ({ className, showAddPostCta }) => {
setPostToAccept,
onAcceptConfirm,
onAcceptCancel,
acceptState,
] = useItemActionConfirm(acceptProposal);
] = useItemActionConfirm(acceptProposal, (item, archive) => ({
proposal: item,
archive,
}));
const [
postToEdit,
setPostToEdit,
......@@ -104,6 +106,20 @@ const PostsContainer = ({ className, showAddPostCta }) => {
(state) => state.filters.flags === "archived"
);
const [acceptingProposal, acceptingProposalError] = useActionState(
acceptProposal,
{
proposal: postToAccept,
archive: false,
}
);
const [
acceptingAndArchivingProposal,
acceptingAndArchivingProposalError,
] = useActionState(acceptProposal, {
proposal: postToAccept,
archive: true,
});
const [rejectingProposal, rejectingProposalError] = useActionState(
rejectProposal,
{
......@@ -237,17 +253,45 @@ const PostsContainer = ({ className, showAddPostCta }) => {
>
Procedurální návrh bude <strong>vyhlášen</strong>. Opravdu to chcete?
</ModalConfirm>
<ModalConfirm
<ModalWithActions
isOpen={!!postToAccept}
onConfirm={onAcceptConfirm}
onCancel={onAcceptCancel}
confirming={acceptState.loading}
error={acceptState.error}
error={acceptingProposalError || acceptingAndArchivingProposalError}
title="Schválit procedurální návrh?"
yesActionLabel="Schválit návrh"
containerClassName="max-w-lg"
actions={
<>
<Button
hoverActive
color="blue-300"
className="text-sm"
onClick={() => onAcceptConfirm(false)}
loading={acceptingProposal}
>
Schválit
</Button>
<Button
hoverActive
color="blue-300"
className="text-sm"
onClick={() => onAcceptConfirm(true)}
loading={acceptingAndArchivingProposal}
>
Schválit a archivovat
</Button>
<Button
hoverActive
color="grey-125"
className="text-sm"
onClick={onAcceptCancel}
>
Zrušit
</Button>
</>
}
>
Procedurální návrh bude <strong>schválen</strong>. Opravdu to chcete?
</ModalConfirm>
</ModalWithActions>
<ModalWithActions
isOpen={!!postToReject}
onCancel={onRejectCancel}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment