Skip to content

Commit

Permalink
feat: FE Estä suunnitteluvaiheen perustietojen julkaisu, jos aloitusk…
Browse files Browse the repository at this point in the history
…uulutusta ei ole julkaistu (#306)
  • Loading branch information
tkork committed Jul 14, 2022
1 parent 0d60ede commit 58196e8
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { yupResolver } from "@hookform/resolvers/yup";
import { suunnittelunPerustiedotSchema, maxHankkeenkuvausLength } from "src/schemas/suunnittelunPerustiedot";
import SectionContent from "@components/layout/SectionContent";
import Textarea from "@components/form/Textarea";
import { Kieli, SuunnitteluVaiheInput, TallennaProjektiInput, api } from "@services/api";
import { Kieli, SuunnitteluVaiheInput, TallennaProjektiInput, api, AloitusKuulutusTila } from "@services/api";
import Section from "@components/layout/Section";
import lowerCase from "lodash/lowerCase";
import { ReactElement, useEffect, useState } from "react";
Expand All @@ -17,7 +17,7 @@ import HassuSpinner from "@components/HassuSpinner";
import { removeTypeName } from "src/util/removeTypeName";
import HassuDialog from "@components/HassuDialog";
import SaapuneetKysymyksetJaPalautteet from "./SaapuneetKysymyksetJaPalautteet";
import { useProjekti } from "src/hooks/useProjekti";
import { ProjektiLisatiedolla, useProjekti } from "src/hooks/useProjekti";

type ProjektiFields = Pick<TallennaProjektiInput, "oid">;
type RequiredProjektiFields = Required<{
Expand Down Expand Up @@ -127,6 +127,8 @@ export default function SuunnitteluvaiheenPerustiedot({ isDirtyHandler }: Props)
const toissijainenKieli = kielitiedot?.toissijainenKieli;
const julkinen = projekti.suunnitteluVaihe?.julkinen;

const suunnitteluVaiheCanBePublished = canProjektiBePublished(projekti);

return (
<>
{julkinen && (
Expand Down Expand Up @@ -225,7 +227,12 @@ export default function SuunnitteluvaiheenPerustiedot({ isDirtyHandler }: Props)
Tallenna luonnos
</Button>
)}
<Button primary id="save_and_publish" onClick={handleSubmit(confirmPublish)} disabled={isFormSubmitting}>
<Button
primary
id="save_and_publish"
onClick={handleSubmit(confirmPublish)}
disabled={isFormSubmitting || !suunnitteluVaiheCanBePublished}
>
{julkinen ? "Tallenna ja päivitä julkaisua" : "Tallenna ja julkaise perustiedot"}
</Button>
<Button disabled>Nähtävilläolon kuuluttaminen</Button>
Expand Down Expand Up @@ -270,3 +277,13 @@ export default function SuunnitteluvaiheenPerustiedot({ isDirtyHandler }: Props)
</>
);
}

function canProjektiBePublished(projekti: ProjektiLisatiedolla): boolean {
return projektiHasPublishedAloituskuulutusJulkaisu(projekti);
}

const projektiHasPublishedAloituskuulutusJulkaisu: (projekti: ProjektiLisatiedolla) => boolean = (projekti) =>
!!projekti.aloitusKuulutusJulkaisut?.some(
(julkaisu) =>
julkaisu.tila && [AloitusKuulutusTila.HYVAKSYTTY, AloitusKuulutusTila.MIGROITU].includes(julkaisu.tila)
);
5 changes: 3 additions & 2 deletions src/pages/yllapito/projekti/[oid]/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ import Section from "@components/layout/Section";
import HassuStack from "@components/layout/HassuStack";
import HassuSpinner from "@components/HassuSpinner";
import useProjektiBreadcrumbs from "src/hooks/useProjektiBreadcrumbs";
import { Stack } from "@mui/material";

type TransientFormValues = {
suunnittelusopimusprojekti: "true" | "false" | null;
Expand Down Expand Up @@ -196,10 +197,10 @@ export default function ProjektiSivu({ setRouteLabels }: PageProps) {
validationSchema={loadedProjektiValidationSchema}
/>
<ProjektiPerustiedot projekti={projekti} />
<div>
<Stack direction="column">
{projekti?.velho?.linkki && <ExtLink href={projekti?.velho?.linkki}>Hankesivu</ExtLink>}
<ExtLink href={velhobaseurl + projekti?.oid}>Projektin sivu Projektivelhossa</ExtLink>
</div>
</Stack>
</Section>
<ProjektiKuntatiedot projekti={projekti} />
<ProjektiKuulutuskielet />
Expand Down

0 comments on commit 58196e8

Please sign in to comment.