From 58196e8b48aadff848c9c35d1118500e634ba1d8 Mon Sep 17 00:00:00 2001 From: Tomi Korkalainen <77731851+tkork@users.noreply.github.com> Date: Thu, 14 Jul 2022 15:29:58 +0300 Subject: [PATCH] =?UTF-8?q?feat:=20FE=20Est=C3=A4=20suunnitteluvaiheen=20p?= =?UTF-8?q?erustietojen=20julkaisu,=20jos=20aloituskuulutusta=20ei=20ole?= =?UTF-8?q?=20julkaistu=20(#306)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SuunnitteluvaiheenPerustiedot.tsx | 23 ++++++++++++++++--- src/pages/yllapito/projekti/[oid]/index.tsx | 5 ++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/components/projekti/suunnitteluvaihe/SuunnitteluvaiheenPerustiedot.tsx b/src/components/projekti/suunnitteluvaihe/SuunnitteluvaiheenPerustiedot.tsx index ba71107f6..9fb8a9e87 100644 --- a/src/components/projekti/suunnitteluvaihe/SuunnitteluvaiheenPerustiedot.tsx +++ b/src/components/projekti/suunnitteluvaihe/SuunnitteluvaiheenPerustiedot.tsx @@ -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"; @@ -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; type RequiredProjektiFields = Required<{ @@ -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 && ( @@ -225,7 +227,12 @@ export default function SuunnitteluvaiheenPerustiedot({ isDirtyHandler }: Props) Tallenna luonnos )} - @@ -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) + ); diff --git a/src/pages/yllapito/projekti/[oid]/index.tsx b/src/pages/yllapito/projekti/[oid]/index.tsx index 5db40c363..bec73a9f4 100644 --- a/src/pages/yllapito/projekti/[oid]/index.tsx +++ b/src/pages/yllapito/projekti/[oid]/index.tsx @@ -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; @@ -196,10 +197,10 @@ export default function ProjektiSivu({ setRouteLabels }: PageProps) { validationSchema={loadedProjektiValidationSchema} /> -
+ {projekti?.velho?.linkki && Hankesivu} Projektin sivu Projektivelhossa -
+