File size: 1,500 Bytes
197ac2a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
42
43
44
45
46
47
48
49
50
51
52
import { VIEW_TITULOS } from "./Sidebar.jsx";

export default function Topbar({
  view,
  online,
  dias,
  diaAtual,
  onSelecionarDia,
  onRecarregar,
  onAlternarTema,
  tema,
  onAbrirRun,
  onAlternarSidebar,
  carregando,
}) {
  return (
    <header className="topbar">
      <button className="hamb" type="button" onClick={onAlternarSidebar}>

      </button>
      <h2 className="vtitle">{VIEW_TITULOS[view] || view}</h2>
      <div className="spacer"></div>
      <div className="pill">
        <span className={"dot " + (online ? "on" : "off")}></span>
        <span>{online == null ? "…" : online ? "Online" : "Offline"}</span>
      </div>
      <select
        className="sel"
        title="Dia"
        value={diaAtual || ""}
        onChange={(e) => onSelecionarDia(e.target.value)}
      >
        {dias.length === 0 && <option></option>}
        {dias.map((d) => (
          <option key={d} value={d}>
            {d}
          </option>
        ))}
      </select>
      <button className="iconbtn" title="Atualizar" onClick={onRecarregar} disabled={carregando}>
        <span style={carregando ? { display: "inline-block", animation: "spin .8s linear infinite" } : undefined}></span>
      </button>
      <button className="iconbtn" title="Tema" onClick={onAlternarTema}>
        {tema === "dark" ? "☀️" : "🌙"}
      </button>
      <button className="btn btn-primary btn-sm" onClick={onAbrirRun}>
        ▶ Rodar
      </button>
    </header>
  );
}