Carregando imagens e arquivos estáticos
Além de JavaScript e CSS, a nossa interface também precisa de algumas imagens. Elas podem ser adicionadas à pasta public. Faça o download da imagem do logo do Get-it e salve-o na pasta public. Agora a imagem estará disponível na rota /logo-geti.png.
Vamos criar um novo componente para o AppBar. Crie o arquivo src/components/AppBar/index.jsx adicione o seguinte conteúdo:
import "./index.css";
export default function AppBar() {
return (
<div className="appbar">
<img src="/logo-getit.png" className="logo" />
<span className="subtitle">Como o Post-it, mas com outro verbo</span>
</div>
);
}
Crie também o arquivo src/components/AppBar/index.css e adicione as classes CSS appbar, logo e subtitle implementadas no Desafio CSS.
Em seguida, modifique o arquivo src/App.jsx e adicione o componente AppBar no App:
import axios from "axios";
import { useEffect, useState } from "react";
import Note from "./components/Note";
import AppBar from "./components/AppBar";
import "./App.css";
function App() {
const [notes, setNotes] = useState([]);
useEffect(() => {
axios
.get("http://localhost:8000/api/notes/")
.then((res) => setNotes(res.data));
}, []);
return (
<>
<AppBar />
{notes.map((note) => (
<Note key={`note__${note.id}`} title={note.title}>
{note.content}
</Note>
))}
</>
);
}
export default App;
Adicionando mais classes CSS
Vamos adicionar a classe card-container para que as notas fiquem organizadas. Além disso, vamos adicionar também a classe container.
Altere o arquivo src/App.css adicionando as classes CSS container e card-container implemetadas no Desafio CSS.
Além disso, atualize o arquivo src/App.jsx:
import axios from "axios";
import { useEffect, useState } from "react";
import Note from "./components/Note";
import AppBar from "./components/AppBar";
import "./App.css";
function App() {
const [notes, setNotes] = useState([]);
useEffect(() => {
axios
.get("http://localhost:8000/api/notes/")
.then((res) => setNotes(res.data));
}, []);
return (
<>
<AppBar />
<main className="container">
<div className="card-container">
{notes.map((note) => (
<Note key={`note__${note.id}`} title={note.title}>
{note.content}
</Note>
))}
</div>
</main>
</>
);
}
export default App;
Implementando a Criação de Anotações
Para continuar, avance para a próxima etapa.