Redigering av kommentarer (#36)

Co-authored-by: Sindre Kjelsrud <sindre.kjelsrud@nav.no>
This commit is contained in:
Markus A. R. Johansen 2023-08-11 09:55:18 +02:00 committed by GitHub
parent 900422a4e0
commit 5c1a7d173b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 46 additions and 27 deletions

View file

@ -40,6 +40,11 @@ const FeilmeldingsInnhold = (props: FeilmeldingsInnholdInterface) => {
props.reset() props.reset()
} }
const fullUpdate = async() => {
setKommentar(kommentarfelt)
oppdaterkommentar()
}
return( return(
<> <>
<div className="flex justify-between "> <div className="flex justify-between ">
@ -73,20 +78,14 @@ const FeilmeldingsInnhold = (props: FeilmeldingsInnholdInterface) => {
</div> </div>
<Skillelinje/> <Skillelinje/>
{props.children} {props.children}
{kommentar.length === 0 ?
<KommentarTekstfelt <Kommentar
kommentarfelt={kommentarfelt} tekst={kommentar}
setKommentarfelt={setKommentarfelt} kommentarfelt={kommentarfelt}
oppdaterKommentar={() => { setKommentarfelt={setKommentarfelt}
setKommentar(kommentarfelt) oppdaterKommentar={fullUpdate}
oppdaterkommentar()} />
}
/>
:
<Kommentar
tekst={kommentar}
/>
}
</> </>
) )
} }

View file

@ -1,21 +1,20 @@
import { ChatElipsisIcon } from "@navikt/aksel-icons" import { ChatElipsisIcon, PencilIcon } from "@navikt/aksel-icons"
import { TextField, Button, Heading } from "@navikt/ds-react" import { TextField, Button, Heading } from "@navikt/ds-react"
import Skillelinje from "./Skillelinje" import Skillelinje from "./Skillelinje"
import { useState } from "react"
interface kommentarTekstfeltInterface { interface kommentarInterface {
kommentarfelt: string, kommentarfelt: string,
setKommentarfelt: (val: string) => void setKommentarfelt: (val: string) => void
oppdaterKommentar: () => void oppdaterKommentar: () => void
}
interface kommentarInterface {
tekst: string tekst: string
} }
/** /**
* Kommentartekstfeltet er et tekstfelt med en knapp som poster en kommentar til en feil. * Kommentartekstfeltet er et tekstfelt med en knapp som poster en kommentar til en feil.
*/ */
export const KommentarTekstfelt = (props: kommentarTekstfeltInterface) => { export const KommentarTekstfelt = (props: kommentarInterface) => {
return( return (
<div className="flex items-end gap-12 w-full mt-4 h-fit"> <div className="flex items-end gap-12 w-full mt-4 h-fit">
<TextField <TextField
className="grow" className="grow"
@ -26,7 +25,7 @@ export const KommentarTekstfelt = (props: kommentarTekstfeltInterface) => {
</TextField> </TextField>
<Button <Button
variant="secondary" variant="secondary"
icon={<ChatElipsisIcon/>} icon={<ChatElipsisIcon />}
onClick={() => props.oppdaterKommentar()} onClick={() => props.oppdaterKommentar()}
> >
Legg til kommentar Legg til kommentar
@ -41,13 +40,34 @@ export const KommentarTekstfelt = (props: kommentarTekstfeltInterface) => {
* @param tekst * @param tekst
*/ */
export const Kommentar = (props: kommentarInterface) => { export const Kommentar = (props: kommentarInterface) => {
return( const [redigerKommentar, setRedigerKommentar] = useState(false)
return (
<> <>
<Skillelinje/> <Skillelinje />
<div className="p-5 bg-bg-subtle rounded-lg w-2/3 my-4"> {props.tekst.length === 0 || redigerKommentar ?
<Heading size="medium">Kommentar</Heading> <KommentarTekstfelt
<p className="break-words">{props.tekst}</p> kommentarfelt={props.kommentarfelt}
</div> setKommentarfelt={props.setKommentarfelt}
oppdaterKommentar={props.oppdaterKommentar}
tekst={props.tekst}
/>
:
<div className="flex flex-col gap-3 p-5 bg-bg-subtle rounded-lg w-2/3 my-4">
<div className="flex justify-between items-center">
<Heading size="medium">Kommentar</Heading>
<Button
variant="tertiary"
icon={<PencilIcon />}
onClick={() => {
setRedigerKommentar(true);
console.log(redigerKommentar);
}}
></Button>
</div>
<p className="break-words">{props.tekst}</p>
</div>
}
</> </>
) )
} }