File size: 1,064 Bytes
1d89fc8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import React, { useEffect, useState } from 'react'

export default function ModeloObservacaoCard({
  text,
  title = 'OBSERVAÇÃO',
  defaultOpen = true,
  className = '',
}) {
  const content = String(text || '').trim()
  const [open, setOpen] = useState(defaultOpen)

  useEffect(() => {
    setOpen(defaultOpen)
  }, [content, defaultOpen])

  if (!content) return null

  const classes = [
    'elaborador-badge',
    'modelo-observacao-card',
    open ? 'is-open' : '',
    className,
  ].filter(Boolean).join(' ')

  return (
    <div className={classes}>
      <button
        type="button"
        className="modelo-observacao-toggle"
        onClick={() => setOpen((prev) => !prev)}
        aria-expanded={open}
        title={open ? 'Recolher observação' : 'Expandir observação'}
      >
        <span className="elaborador-badge-title">{title}</span>
        <span className="modelo-observacao-toggle-icon" aria-hidden="true"></span>
      </button>
      {open ? <div className="modelo-observacao-text">{content}</div> : null}
    </div>
  )
}