-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Lisää nähtävilläolosivulle osioitu sivupohja ja tallennusnapit (#…
…258)
- Loading branch information
Showing
16 changed files
with
348 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
49 changes: 49 additions & 0 deletions
49
src/components/projekti/nahtavillaolo/NahtavillaoloPainikkeet.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
import Button from "@components/button/Button"; | ||
import HassuSpinner from "@components/HassuSpinner"; | ||
import Section from "@components/layout/Section"; | ||
import { Stack } from "@mui/material"; | ||
import { api } from "@services/api"; | ||
import log from "loglevel"; | ||
import React, { useState } from "react"; | ||
import { useFormContext } from "react-hook-form"; | ||
import { useProjektiRoute } from "src/hooks/useProjektiRoute"; | ||
import useSnackbars from "src/hooks/useSnackbars"; | ||
|
||
export default function NahtavillaoloPainikkeet() { | ||
const { mutate: reloadProjekti } = useProjektiRoute(); | ||
const [isFormSubmitting, setIsFormSubmitting] = useState(false); | ||
const { showSuccessMessage, showErrorMessage } = useSnackbars(); | ||
|
||
const { handleSubmit } = useFormContext<any>(); | ||
|
||
const saveSuunnitteluvaihe = async (formData: any) => { | ||
await api.tallennaProjekti(formData); | ||
if (reloadProjekti) await reloadProjekti(); | ||
}; | ||
|
||
const saveDraft = async (formData: any) => { | ||
setIsFormSubmitting(true); | ||
try { | ||
await saveSuunnitteluvaihe(formData); | ||
showSuccessMessage("Tallennus onnistui!"); | ||
} catch (e) { | ||
log.error("OnSubmit Error", e); | ||
showErrorMessage("Tallennuksessa tapahtui virhe"); | ||
} | ||
setIsFormSubmitting(false); | ||
}; | ||
|
||
return ( | ||
<> | ||
<Section noDivider> | ||
<Stack justifyContent={{ md: "flex-end" }} direction={{ xs: "column", md: "row" }}> | ||
<Button onClick={handleSubmit(saveDraft)}>Tallenna Luonnos</Button> | ||
<Button primary disabled onClick={undefined}> | ||
Lähetä Hyväksyttäväksi | ||
</Button> | ||
</Stack> | ||
</Section> | ||
<HassuSpinner open={isFormSubmitting} /> | ||
</> | ||
); | ||
} |
16 changes: 16 additions & 0 deletions
16
src/components/projekti/nahtavillaolo/kuulutuksentiedot/HankkeenSisallonKuvaus.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import Section from "@components/layout/Section"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function HankkeenSisallonKuvaus({}: Props) { | ||
return ( | ||
<Section> | ||
<h4 className="vayla-small-title">Kuulutus ja julkaisupäivä</h4> | ||
<p> | ||
Kansalaisten tulee muistututtaa suunnitelmista järjestelmän kautta viimeistään alla olevana päivämääränä. | ||
Muistutusten päivämäärä määräytyy kuulutuksen nähtävilläoloajan mukaan ja sitä ei voi muokata. | ||
</p> | ||
</Section> | ||
); | ||
} |
18 changes: 18 additions & 0 deletions
18
src/components/projekti/nahtavillaolo/kuulutuksentiedot/IlmoituksenVastaanottajat.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import Section from "@components/layout/Section"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function IlmoituksenVastaanottajat({}: Props) { | ||
return ( | ||
<Section> | ||
<h4 className="vayla-small-title">Ilmoituksen vastaanottajat</h4> | ||
<p> | ||
Kuulutuksesta lähetetään sähköpostitse tiedote viranomaiselle sekä projektia koskeville kunnille. Kunnat on | ||
haettu Projektivelhosta. Jos tiedote pitää lähettää useammalle kuin yhdelle viranomaisorganisaatiolle, lisää | ||
uusi rivi Lisää uusi -painikkeella. | ||
</p> | ||
<p>Jos kuntatiedoissa on virhe, tee korjaus Projektivelhoon.</p> | ||
</Section> | ||
); | ||
} |
22 changes: 22 additions & 0 deletions
22
...omponents/projekti/nahtavillaolo/kuulutuksentiedot/KuulutuksenJaIlmoituksenEsikatselu.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
import Section from "@components/layout/Section"; | ||
import Notification, { NotificationType } from "@components/notification/Notification"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function KuulutuksenJaIlmoituksenEsikatselu({}: Props) { | ||
return ( | ||
<Section> | ||
<h4 className="vayla-small-title">Kuulutuksen ja ilmoituksen esikatselu</h4> | ||
<Notification type={NotificationType.INFO_GRAY}> | ||
Esikatsele kuulutus ja ilmoitus ennen hyväksyntään lähettämistä.{" "} | ||
</Notification> | ||
<p> | ||
Kuulutuksesta lähetetään sähköpostitse tiedote viranomaiselle sekä projektia koskeville kunnille. Kunnat on | ||
haettu Projektivelhosta. Jos tiedote pitää lähettää useammalle kuin yhdelle viranomaisorganisaatiolle, lisää | ||
uusi rivi Lisää uusi -painikkeella. | ||
</p> | ||
<p>Jos kuntatiedoissa on virhe, tee korjaus Projektivelhoon.</p> | ||
</Section> | ||
); | ||
} |
50 changes: 50 additions & 0 deletions
50
src/components/projekti/nahtavillaolo/kuulutuksentiedot/KuulutuksenTiedot.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
import { yupResolver } from "@hookform/resolvers/yup"; | ||
import { TallennaProjektiInput } from "@services/api"; | ||
import React, { useEffect } from "react"; | ||
import { UseFormProps, useForm, FormProvider } from "react-hook-form"; | ||
import { useProjektiRoute } from "src/hooks/useProjektiRoute"; | ||
import { nahtavillaoloAineistotSchema } from "src/schemas/nahtavillaoloAineistot"; | ||
import NahtavillaoloPainikkeet from "../NahtavillaoloPainikkeet"; | ||
import HankkeenSisallonKuvaus from "./HankkeenSisallonKuvaus"; | ||
import KuulutuksenJaIlmoituksenEsikatselu from "./KuulutuksenJaIlmoituksenEsikatselu"; | ||
import KuulutuksessaEsitettavatYhteystiedot from "./KuulutuksessaEsitettavatYhteystiedot"; | ||
import KuulutusJaJulkaisuPaiva from "./KuulutusJaJulkaisuPaiva"; | ||
import MuistutustenAntaminen from "./MuistutustenAntaminen"; | ||
|
||
type Props = {}; | ||
|
||
export type KuulutuksenTiedotFormValues = Pick<TallennaProjektiInput, "oid">; | ||
|
||
export default function NahtavilleAsetettavatAineistot({}: Props) { | ||
const { data: projekti } = useProjektiRoute(); | ||
const formOptions: UseFormProps<KuulutuksenTiedotFormValues> = { | ||
resolver: yupResolver(nahtavillaoloAineistotSchema, { abortEarly: false, recursive: true }), | ||
mode: "onChange", | ||
reValidateMode: "onChange", | ||
}; | ||
|
||
const useFormReturn = useForm<KuulutuksenTiedotFormValues>(formOptions); | ||
const { reset } = useFormReturn; | ||
|
||
useEffect(() => { | ||
if (projekti?.oid) { | ||
const tallentamisTiedot: KuulutuksenTiedotFormValues = { | ||
oid: projekti.oid, | ||
}; | ||
reset(tallentamisTiedot); | ||
} | ||
}, [projekti, reset]); | ||
|
||
return ( | ||
<FormProvider {...useFormReturn}> | ||
<form> | ||
<KuulutusJaJulkaisuPaiva /> | ||
<MuistutustenAntaminen /> | ||
<HankkeenSisallonKuvaus /> | ||
<KuulutuksessaEsitettavatYhteystiedot /> | ||
<KuulutuksenJaIlmoituksenEsikatselu /> | ||
<NahtavillaoloPainikkeet /> | ||
</form> | ||
</FormProvider> | ||
); | ||
} |
17 changes: 17 additions & 0 deletions
17
...ponents/projekti/nahtavillaolo/kuulutuksentiedot/KuulutuksessaEsitettavatYhteystiedot.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
import Section from "@components/layout/Section"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function KuulutuksessaEsitettavatYhteystiedot({}: Props) { | ||
return ( | ||
<Section> | ||
<h4 className="vayla-small-title">Kuulutuksessa esitettävät yhteystiedot</h4> | ||
<p> | ||
Voit valita kuulutuksessa esitettäviin yhteystietoihin projektiin tallennetun henkilön tai lisätä uuden | ||
yhteystiedon. Projektipäällikön tiedot esitetään aina. Projektiin tallennettujen henkilöiden yhteystiedot | ||
haetaan Projektin henkilöt -sivulle tallennetuista tiedoista. | ||
</p> | ||
</Section> | ||
); | ||
} |
16 changes: 16 additions & 0 deletions
16
src/components/projekti/nahtavillaolo/kuulutuksentiedot/KuulutusJaJulkaisuPaiva.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
import Section from "@components/layout/Section"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function KuulutusJaJulkaisuPaiva({}: Props) { | ||
return ( | ||
<Section noDivider> | ||
<h4 className="vayla-small-title">Kuulutus ja julkaisupäivä</h4> | ||
<p> | ||
Anna päivämäärä, jolle kuulutus päivätään ja nähtävilläolevan suunnitelman materiaalit julkaistaan palvelun | ||
julkisella puolella. | ||
</p> | ||
</Section> | ||
); | ||
} |
18 changes: 18 additions & 0 deletions
18
src/components/projekti/nahtavillaolo/kuulutuksentiedot/MuistutustenAntaminen.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import Section from "@components/layout/Section"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function MuistutustenAntaminen({}: Props) { | ||
return ( | ||
<Section> | ||
<h4 className="vayla-small-title">Kuulutus ja julkaisupäivä</h4> | ||
<p> | ||
Kirjoita nähtäville asettamisen kuulutusta varten tiivistetty sisällönkuvaus hankkeesta. Kuvauksen on hyvä | ||
sisältää esimerkiksi tieto suunnittelukohteen alueellista rajauksesta (maantiealue ja vaikutusalue), | ||
suunnittelun tavoitteet, vaikutukset ja toimenpiteet pääpiirteittäin karkealla tasolla. Älä lisää tekstiin | ||
linkkejä. | ||
</p> | ||
</Section> | ||
); | ||
} |
17 changes: 17 additions & 0 deletions
17
...i/nahtavillaolo/nahtavilleAsetettavatAineistot/LausuntopyyntoonLiitettavaLisaaineisto.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
import Section from "@components/layout/Section"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function LausuntopyyntoonLiitettavaLisaaineisto({}: Props) { | ||
return ( | ||
<Section> | ||
<h4 className="vayla-small-title">Lausuntopyyntöön liitettävä lisäaineisto</h4> | ||
<p> | ||
Lausuntopyyntöön liitettävää lisäaineistoa ei julkaista palvelun julkisella puolelle. Linkki lausuntopyyntöön | ||
liitettävään aineistoon muodostuu, kun aineisto on tuotu Velhosta. Linkin takana oleva sisältö muodostuu | ||
nähtäville asetetuista aineistoista sekä lausuntopyynnön lisäaineistosta. | ||
</p> | ||
</Section> | ||
); | ||
} |
44 changes: 44 additions & 0 deletions
44
.../projekti/nahtavillaolo/nahtavilleAsetettavatAineistot/NahtavilleAsetettavatAineistot.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
import { yupResolver } from "@hookform/resolvers/yup"; | ||
import { TallennaProjektiInput } from "@services/api"; | ||
import React, { useEffect } from "react"; | ||
import { UseFormProps, useForm, FormProvider } from "react-hook-form"; | ||
import { useProjektiRoute } from "src/hooks/useProjektiRoute"; | ||
import { nahtavillaoloAineistotSchema } from "src/schemas/nahtavillaoloAineistot"; | ||
import NahtavillaoloPainikkeet from "../NahtavillaoloPainikkeet"; | ||
import LausuntopyyntoonLiitettavaLisaaineisto from "./LausuntopyyntoonLiitettavaLisaaineisto"; | ||
import SuunnitelmatJaAineistot from "./SuunnitelmatJaAineistot"; | ||
|
||
type Props = {}; | ||
|
||
export type NahtavilleAsetettavatAineistotFormValues = Pick<TallennaProjektiInput, "oid">; | ||
|
||
export default function NahtavilleAsetettavatAineistot({}: Props) { | ||
const { data: projekti } = useProjektiRoute(); | ||
const formOptions: UseFormProps<NahtavilleAsetettavatAineistotFormValues> = { | ||
resolver: yupResolver(nahtavillaoloAineistotSchema, { abortEarly: false, recursive: true }), | ||
mode: "onChange", | ||
reValidateMode: "onChange", | ||
}; | ||
|
||
const useFormReturn = useForm<NahtavilleAsetettavatAineistotFormValues>(formOptions); | ||
const { reset } = useFormReturn; | ||
|
||
useEffect(() => { | ||
if (projekti?.oid) { | ||
const tallentamisTiedot: NahtavilleAsetettavatAineistotFormValues = { | ||
oid: projekti.oid, | ||
}; | ||
reset(tallentamisTiedot); | ||
} | ||
}, [projekti, reset]); | ||
|
||
return ( | ||
<FormProvider {...useFormReturn}> | ||
<form> | ||
<SuunnitelmatJaAineistot /> | ||
<LausuntopyyntoonLiitettavaLisaaineisto /> | ||
<NahtavillaoloPainikkeet /> | ||
</form> | ||
</FormProvider> | ||
); | ||
} |
20 changes: 20 additions & 0 deletions
20
...ponents/projekti/nahtavillaolo/nahtavilleAsetettavatAineistot/SuunnitelmatJaAineistot.tsx
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import Section from "@components/layout/Section"; | ||
import Notification, { NotificationType } from "@components/notification/Notification"; | ||
import React from "react"; | ||
|
||
type Props = {}; | ||
|
||
export default function SuunnitelmatJaAineistot({}: Props) { | ||
return ( | ||
<Section> | ||
<h4 className="vayla-small-title">Suunnitelmat ja aineistot</h4> | ||
<p> | ||
Nähtäville asetettava aineisto sekä lausuntapyyntöön liitettävä aineisto tuodaan Projektivelhosta. Nähtäville | ||
asetettu aineisto julkaistaan palvelun julkisella puolella kuulutuksen julkaisupäivänä. | ||
</p> | ||
<Notification type={NotificationType.INFO_GRAY}> | ||
Huomioithan, että suunnitelma-aineistojen tulee täyttää saavutettavuusvaatimukset. | ||
</Notification> | ||
</Section> | ||
); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,4 +10,4 @@ export default function Nahtavillaolo(): ReactElement { | |
</> | ||
</ProjektiJulkinenPageLayout> | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import * as Yup from "yup"; | ||
|
||
export const nahtavillaoloAineistotSchema = Yup.object().shape({ | ||
oid: Yup.string().required(), | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
import * as Yup from "yup"; | ||
|
||
export const nahtavillaoloKuulutusSchema = Yup.object().shape({ | ||
oid: Yup.string().required(), | ||
}); |