Skip to content

Commit

Permalink
fix: HASSUYP-441: Palautteet eivät näy lukutilaisessa suunnitteluvaih…
Browse files Browse the repository at this point in the history
…eessa (#1256)
  • Loading branch information
hakalap authored Aug 9, 2024
1 parent cf08cd5 commit eaead76
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 94 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { getKaannettavatKielet } from "hassu-common/kaannettavatKielet";
import { PreWrapParagraph } from "@components/PreWrapParagraph";
import { Link } from "@mui/material";
import { label } from "src/util/textUtil";
import SaapuneetKysymyksetJaPalautteet from "../suunnitteluvaihe/SaapuneetKysymyksetJaPalautteet";

export default function SuunnitteluvaiheenPerustiedotLukutila(): ReactElement {
const { data: projekti } = useProjekti({ revalidateOnMount: true });
Expand All @@ -17,7 +18,7 @@ type Props = {
projekti: ProjektiLisatiedolla;
};

function SuunnitteluvaiheenPerustiedotLukutila2({ projekti }: Props): ReactElement {
function SuunnitteluvaiheenPerustiedotLukutila2({ projekti }: Readonly<Props>): ReactElement {
const kielitiedot = projekti.kielitiedot;
if (!kielitiedot) {
return <></>;
Expand Down Expand Up @@ -118,97 +119,100 @@ function SuunnitteluvaiheenPerustiedotLukutila2({ projekti }: Props): ReactEleme
)}
</Section>
{projekti.vuorovaikutusKierros && (
<Section>
<SectionContent>
<p className="vayla-label">Videoesittely</p>
{!!projekti.vuorovaikutusKierros?.videot?.length && projekti.vuorovaikutusKierros.videot[0].SUOMI.url ? (
projekti.vuorovaikutusKierros.videot.map((video) => (
<>
{ensisijainenKaannettavaKieli && (
<div key={video?.[ensisijainenKaannettavaKieli]?.url} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={video?.[ensisijainenKaannettavaKieli]?.url}>
{video?.[ensisijainenKaannettavaKieli]?.url}
</Link>
</div>
)}

{toissijainenKaannettavaKieli && (
<div key={video?.[toissijainenKaannettavaKieli]?.url} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={video?.[toissijainenKaannettavaKieli]?.url}>
{video?.[toissijainenKaannettavaKieli]?.url}
</Link>
</div>
)}
</>
))
) : (
<p>-</p>
)}
</SectionContent>

<SectionContent>
<p className="vayla-label">Esittelyaineistot</p>
{!!projekti.vuorovaikutusKierros?.esittelyaineistot?.length ? (
projekti.vuorovaikutusKierros.esittelyaineistot.map((aineisto) => (
<div key={aineisto.dokumenttiOid} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={aineisto.tiedosto || "#"}>
{aineisto.nimi}
</Link>
</div>
))
) : (
<p>-</p>
)}
</SectionContent>
<SectionContent>
<p className="vayla-label">Suunnitelmaluonnokset</p>
{!!projekti.vuorovaikutusKierros?.suunnitelmaluonnokset?.length ? (
projekti.vuorovaikutusKierros.suunnitelmaluonnokset.map((aineisto) => (
<div key={aineisto.dokumenttiOid} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={aineisto.tiedosto || "#"}>
{aineisto.nimi}
</Link>
</div>
))
) : (
<p>-</p>
)}
</SectionContent>
<>
<Section>
<SectionContent>
<p className="vayla-label">Videoesittely</p>
{!!projekti.vuorovaikutusKierros?.videot?.length && projekti.vuorovaikutusKierros.videot[0].SUOMI.url ? (
projekti.vuorovaikutusKierros.videot.map((video) => (
<>
{ensisijainenKaannettavaKieli && (
<div key={video?.[ensisijainenKaannettavaKieli]?.url} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={video?.[ensisijainenKaannettavaKieli]?.url}>
{video?.[ensisijainenKaannettavaKieli]?.url}
</Link>
</div>
)}

<SectionContent>
<p className="vayla-label">Muu esittelymateriaali</p>
{ensisijainenKaannettavaKieli &&
projekti.vuorovaikutusKierros?.suunnittelumateriaali?.map((link) => (
<React.Fragment key={link[ensisijainenKaannettavaKieli]?.nimi}>
{ensisijainenKaannettavaKieli && link[ensisijainenKaannettavaKieli]?.nimi ? (
<>
<div style={{ marginTop: "0.4rem" }}>{link[ensisijainenKaannettavaKieli]?.nimi}</div>
<div style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={link[ensisijainenKaannettavaKieli]?.url}>
{link[ensisijainenKaannettavaKieli]?.url}
{toissijainenKaannettavaKieli && (
<div key={video?.[toissijainenKaannettavaKieli]?.url} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={video?.[toissijainenKaannettavaKieli]?.url}>
{video?.[toissijainenKaannettavaKieli]?.url}
</Link>
</div>
</>
) : (
<p>-</p>
)}
{toissijainenKaannettavaKieli &&
(link[toissijainenKaannettavaKieli]?.nimi ? (
)}
</>
))
) : (
<p>-</p>
)}
</SectionContent>

<SectionContent>
<p className="vayla-label">Esittelyaineistot</p>
{!!projekti.vuorovaikutusKierros?.esittelyaineistot?.length ? (
projekti.vuorovaikutusKierros.esittelyaineistot.map((aineisto) => (
<div key={aineisto.dokumenttiOid} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={aineisto.tiedosto || "#"}>
{aineisto.nimi}
</Link>
</div>
))
) : (
<p>-</p>
)}
</SectionContent>
<SectionContent>
<p className="vayla-label">Suunnitelmaluonnokset</p>
{!!projekti.vuorovaikutusKierros?.suunnitelmaluonnokset?.length ? (
projekti.vuorovaikutusKierros.suunnitelmaluonnokset.map((aineisto) => (
<div key={aineisto.dokumenttiOid} style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={aineisto.tiedosto || "#"}>
{aineisto.nimi}
</Link>
</div>
))
) : (
<p>-</p>
)}
</SectionContent>

<SectionContent>
<p className="vayla-label">Muu esittelymateriaali</p>
{ensisijainenKaannettavaKieli &&
projekti.vuorovaikutusKierros?.suunnittelumateriaali?.map((link) => (
<React.Fragment key={link[ensisijainenKaannettavaKieli]?.nimi}>
{ensisijainenKaannettavaKieli && link[ensisijainenKaannettavaKieli]?.nimi ? (
<>
<div style={{ marginTop: "0.4rem" }}>{link[toissijainenKaannettavaKieli]?.nimi}</div>
<div style={{ marginTop: "0.4rem" }}>{link[ensisijainenKaannettavaKieli]?.nimi}</div>
<div style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={link[toissijainenKaannettavaKieli]?.url}>
{link[toissijainenKaannettavaKieli]?.url}
<Link underline="none" href={link[ensisijainenKaannettavaKieli]?.url}>
{link[ensisijainenKaannettavaKieli]?.url}
</Link>
</div>
</>
) : (
<p>-</p>
))}
</React.Fragment>
))}
</SectionContent>
</Section>
)}
{toissijainenKaannettavaKieli &&
(link[toissijainenKaannettavaKieli]?.nimi ? (
<>
<div style={{ marginTop: "0.4rem" }}>{link[toissijainenKaannettavaKieli]?.nimi}</div>
<div style={{ marginTop: "0.4rem" }}>
<Link underline="none" href={link[toissijainenKaannettavaKieli]?.url}>
{link[toissijainenKaannettavaKieli]?.url}
</Link>
</div>
</>
) : (
<p>-</p>
))}
</React.Fragment>
))}
</SectionContent>
</Section>
<SaapuneetKysymyksetJaPalautteet projekti={projekti} lukutila={true} />
</>
)}
</>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -544,7 +544,7 @@ function SuunnitteluvaiheenPerustiedotForm({ projekti, reloadProjekti }: Suunnit
</form>
</FormProvider>

<SaapuneetKysymyksetJaPalautteet projekti={projekti} />
<SaapuneetKysymyksetJaPalautteet projekti={projekti} lukutila={false} />
<HassuDialog open={isOpenHyvaksy} title="Suunnitteluvaiheen perustietojen päivitys" onClose={closeHyvaksy}>
<form style={{ display: "contents" }}>
<DialogContent>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ import { H3 } from "../../Headings";

interface Props {
projekti: Projekti;
lukutila: boolean;
}

export default function SaapuneetKysymyksetJaPalautteet({ projekti }: Props): ReactElement {
export default function SaapuneetKysymyksetJaPalautteet({ projekti, lukutila }: Readonly<Props>): ReactElement {
const [palautteet, setPalautteet] = useState<Palaute[]>();

const api = useApi();
Expand Down Expand Up @@ -51,7 +52,7 @@ export default function SaapuneetKysymyksetJaPalautteet({ projekti }: Props): Re
{
header: "Vastattu",
accessorFn: (palaute: Palaute) => (
<KasittelePalauteCheckbox paivitaPalautteet={paivitaPalautteet} oid={projekti.oid} palaute={palaute} />
<KasittelePalauteCheckbox paivitaPalautteet={paivitaPalautteet} oid={projekti.oid} palaute={palaute} lukutila={lukutila} />
),
id: "vastattu",
},
Expand Down Expand Up @@ -113,23 +114,22 @@ function VastaanottoaikaJaLiite({ palaute, oid }: PalauteProps & { oid: string }
);
}

function KysymysTaiPalaute({ palaute }: PalauteProps): ReactElement {
function KysymysTaiPalaute({ palaute }: Readonly<PalauteProps>): ReactElement {
return (
<>
<div>
<p style={{ whiteSpace: "pre-line" }}>{palaute.kysymysTaiPalaute}</p>
</div>
</>
<div>
<p style={{ whiteSpace: "pre-line" }}>{palaute.kysymysTaiPalaute}</p>
</div>
);
}

interface KasittelePalauteCheckboxProps {
palaute: Palaute;
oid: string;
paivitaPalautteet: () => Promise<void>;
lukutila: boolean;
}

function KasittelePalauteCheckbox({ palaute, oid, paivitaPalautteet }: KasittelePalauteCheckboxProps): ReactElement {
function KasittelePalauteCheckbox({ palaute, oid, paivitaPalautteet, lukutila }: Readonly<KasittelePalauteCheckboxProps>): ReactElement {
const { showSuccessMessage } = useSnackbars();

const { withLoadingSpinner } = useLoadingSpinner();
Expand Down Expand Up @@ -181,10 +181,10 @@ function KasittelePalauteCheckbox({ palaute, oid, paivitaPalautteet }: Kasittele
[merkitseEiVastatuksi, merkitseVastatuksi, palaute]
);

return <CheckBox onChange={(event) => merkitsePalaute(event.target.checked)} checked={!!palaute.vastattu} />;
return <CheckBox onChange={(event) => merkitsePalaute(event.target.checked)} checked={!!palaute.vastattu} disabled={lukutila} />;
}

function YhteydenottopyyntoSolu({ palaute }: PalauteProps): ReactElement {
function YhteydenottopyyntoSolu({ palaute }: Readonly<PalauteProps>): ReactElement {
return (
<div>
{!palaute.yhteydenottotapaPuhelin && !palaute.yhteydenottotapaEmail && <div>Ei</div>}
Expand Down

0 comments on commit eaead76

Please sign in to comment.