1
- import { BodyLong , Link , Tag } from "@navikt/ds-react" ;
1
+ import { ChatFillIcon , ChatIcon , CheckmarkCircleIcon , ChevronRightIcon } from "@navikt/aksel-icons" ;
2
+ import { BodyLong , BodyShort } from "@navikt/ds-react" ;
2
3
import { useContext } from "react" ;
3
- import BeskjedIkon from "../../assets/BeskjedIkon" ;
4
- import OppgaveIkon from "../../assets/OppgaveIkon" ;
5
4
import text from "../../language/text" ;
6
5
import { Language , LanguageContext } from "../../provider/LanguageProvider" ;
6
+ import { logNavigereBeskjed } from "../../utils/amplitude" ;
7
7
import { formatToReadableDate } from "../../utils/date" ;
8
8
import { Varsel } from "./Varsel" ;
9
9
import styles from "./Varsel.module.css" ;
10
- import { logNavigereBeskjed } from "../../utils/amplitude" ;
11
10
12
11
const getVarsletPaa = ( kanaler : string [ ] , language : Language ) => {
13
12
if ( kanaler . includes ( "SMS" ) && kanaler . includes ( "EPOST" ) ) {
@@ -27,39 +26,73 @@ function TidligereVarsel({ varselData }: { varselData: Varsel }) {
27
26
28
27
const eksternVarslingStatus = getVarsletPaa ( varselData . eksternVarslingKanaler , language ) ;
29
28
30
- return (
31
- < div className = { styles . varselWrapper } >
32
- { varselData . isMasked || isOppgave || ! varselData . link ? (
33
- < BodyLong aria-label = { varselData . isMasked ? maskedAriaLabel : undefined } className = { styles . varselHeading } >
34
- < span aria-hidden = { varselData . isMasked ? true : undefined } >
35
- { varselData . isMasked ? maskedText : varselData . tekst }
36
- </ span >
37
- </ BodyLong >
29
+ const VarselHeader = (
30
+ < div className = { styles . header } >
31
+ { isOppgave ? (
32
+ < >
33
+ < div className = { styles . iconWrapper } >
34
+ < CheckmarkCircleIcon className = { styles . icon } aria-hidden />
35
+ </ div >
36
+ < BodyShort > { text . filterToggleItemOppgave [ language ] } </ BodyShort >
37
+ </ >
38
38
) : (
39
- < Link
40
- onClick = { logNavigereBeskjed }
41
- href = { varselData . link }
42
- aria-label = { varselData . isMasked ? maskedAriaLabel : undefined }
43
- className = { styles . varselHeading }
44
- >
45
- < span aria-hidden = { varselData . isMasked ? true : undefined } >
46
- { varselData . isMasked ? maskedText : varselData . tekst }
47
- </ span >
48
- </ Link >
39
+ < >
40
+ { varselData . link ? (
41
+ < div className = { `${ styles . iconWrapper } ${ styles . iconClickable } ` } >
42
+ < ChatFillIcon className = { styles . icon } color = "white" aria-hidden />
43
+ </ div >
44
+ ) : (
45
+ < div className = { styles . iconWrapper } >
46
+ < ChatIcon className = { styles . icon } aria-hidden />
47
+ </ div >
48
+ ) }
49
+ < BodyShort className = { ! varselData . link ? styles . secondaryText : "" } >
50
+ { text . filterToggleItemBeskjed [ language ] }
51
+ </ BodyShort >
52
+ </ >
49
53
) }
50
- < div className = { styles . varselMetaData } >
51
- { isOppgave ? < OppgaveIkon /> : < BeskjedIkon /> }
52
- < Tag className = { styles . tag } variant = "neutral" size = "small" > { `${
53
- text . varselMottatt [ language ]
54
- } ${ formatToReadableDate ( varselData . forstBehandlet ) } `} </ Tag >
55
- { eksternVarslingStatus && (
56
- < Tag variant = "neutral" size = "small" className = { `${ styles . tag } ${ styles . eksternVarslingStatus } ` } >
57
- { eksternVarslingStatus }
58
- </ Tag >
59
- ) }
60
- </ div >
61
54
</ div >
62
55
) ;
56
+
57
+ const VarselFooter = (
58
+ < BodyShort size = "small" className = { `${ styles . footer } ${ styles . secondaryText } ` } >
59
+ { formatToReadableDate ( varselData . forstBehandlet ) }
60
+ { eksternVarslingStatus && ` - ${ eksternVarslingStatus } ` }
61
+ </ BodyShort >
62
+ ) ;
63
+
64
+ if ( varselData . isMasked ) {
65
+ return (
66
+ < div className = { styles . varselContainer } >
67
+ { VarselHeader }
68
+ < BodyLong aria-label = { maskedAriaLabel } className = { styles . title } >
69
+ < span aria-hidden = { true } > { maskedText } </ span >
70
+ </ BodyLong >
71
+ { VarselFooter }
72
+ </ div >
73
+ ) ;
74
+ } else if ( varselData . link && ! isOppgave ) {
75
+ return (
76
+ < a onClick = { logNavigereBeskjed } href = { varselData . link } className = { styles . link } >
77
+ < div className = { styles . varselContainer } >
78
+ { VarselHeader }
79
+ < div className = { styles . clickableTitleContainer } >
80
+ < BodyLong className = { styles . linkText } > { varselData . tekst } </ BodyLong >
81
+ < ChevronRightIcon fontSize = "24px" className = { styles . chevron } />
82
+ </ div >
83
+ { VarselFooter }
84
+ </ div >
85
+ </ a >
86
+ ) ;
87
+ } else {
88
+ return (
89
+ < div className = { styles . varselContainer } >
90
+ { VarselHeader }
91
+ < BodyLong > { varselData . tekst } </ BodyLong >
92
+ { VarselFooter }
93
+ </ div >
94
+ ) ;
95
+ }
63
96
}
64
97
65
98
export default TidligereVarsel ;
0 commit comments