Skip to content

Commit

Permalink
Merge pull request #44 from dwm-2023-2/feature/listando_reg_diarios
Browse files Browse the repository at this point in the history
Feature/listando reg diarios
  • Loading branch information
erarich authored Dec 8, 2023
2 parents 1064335 + 5131d48 commit 6b115a7
Show file tree
Hide file tree
Showing 7 changed files with 191 additions and 76 deletions.
6 changes: 6 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"@mui/material": "^5.14.15",
"axios": "^1.5.1",
"date-fns": "^2.30.0",
"dompurify": "^3.0.6",
"dotenv": "^16.3.1",
"localforage": "^1.10.0",
"match-sorter": "^6.3.1",
Expand Down
2 changes: 2 additions & 0 deletions src/main.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { CreateDiary } from "./pages/CreateDiary";
import { CreateANote } from "./pages/CreateANote";
import { Profile } from "./pages/Profile";
import { DiaryPage } from "./pages/DiaryPage";
import { RegDiaryPage } from "./pages/RegDiaryPage";
import "./index.css";

const container = document.getElementById("root");
Expand All @@ -22,6 +23,7 @@ root.render(
<Route exact path="/create-diary" element={<CreateDiary />} />
<Route exact path="/diary/:param1" element={<DiaryPage />} />
<Route exact path="/create-note" element={<CreateANote />} />
<Route exact path="/reg_diary/:param1" element={<RegDiaryPage />} />
</Routes>
</Router>
);
13 changes: 4 additions & 9 deletions src/pages/CreateANote.jsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
import React, { Component } from "react";
import { Header } from "../layout/Header";
import { Section } from "../layout/Section";
import { Footer } from "../layout/Footer";
import { Link, useNavigate } from "react-router-dom";
import { userInfoStore } from "../stores/userInfo";
import { useNavigate } from "react-router-dom";
import ReactQuill from "react-quill";
import "react-quill/dist/quill.snow.css";
import api from "../services/api";
Expand All @@ -23,11 +21,9 @@ import { diarioStore } from "../stores/diarioStore";

export const CreateANote = () => {
const title = useRef({});
const content = useRef({});
const [status, setStatus] = useState("Privado");
const [value, setValue] = useState("");
const [isValidFields, setIsValidFields] = useState(false);
const userInfoState = userInfoStore((state) => state.userInfo);
const diarioId = diarioStore((state) => state.diarioId);

const theme = useTheme();
Expand Down Expand Up @@ -66,10 +62,9 @@ export const CreateANote = () => {
api
.post("/registrosdiario/registroDiario", {
tituloRegistro: title.current.value,
conteudoRegistro: content.current.value,
conteudoRegistro: value,
privacidade: status,
userId: userInfoState.id,
diarioAssociadoID: diarioId,
diarioId: diarioId,
})
.then((response) => {
console.log(response);
Expand All @@ -78,7 +73,7 @@ export const CreateANote = () => {
.catch((err) => {
console.error("ops! ocorreu um erro" + err);
});
// console.log(payload);
console.log(payload);
};

console.log("diarioId: ", diarioId);
Expand Down
84 changes: 17 additions & 67 deletions src/pages/DiaryPage.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,67 +9,26 @@ import Box from "@mui/material/Box";
import Fab from "@mui/material/Fab";
import { Link } from "react-router-dom";
import AddIcon from "@mui/icons-material/Add";
import { diarioStore } from "../stores/diarioStore";
import EditIcon from "@mui/icons-material/Edit";
import DeleteIcon from "@mui/icons-material/Delete";
import { ContactSupportOutlined } from "@mui/icons-material";
import { useNavigate } from "react-router-dom";
import {
ADDbuttonStyle,
EDITbuttonStyle,
DELETEbuttonStyle,
diarios,
regDiarios,
diarioTitulo,
diarioStyle,
} from "./DiaryPageStyles";

export const DiaryPage = () => {
const { param1 } = useParams();
const [diario, setDiario] = useState(null);
const [notes, setNotes] = useState([]);

let storageUserId = localStorage.getItem("userId");

const navigate = useNavigate();

const ADDbuttonStyle = {
position: "fixed",
bottom: "250px",
right: "20px",
};

const EDITbuttonStyle = {
position: "fixed",
bottom: "150px",
right: "20px",
};

const DELETEbuttonStyle = {
position: "fixed",
bottom: "50px",
right: "20px",
color: "white",
};

const diarios = {
// backgroundColor: "yellow",
display: "flex",
flexWrap: "wrap",
gap: "20px",
padding: "40px",
justifyContent: "center",
};

const regDiarios = {
// backgroundColor: "yellow",
display: "flex",
flexWrap: "wrap",
gap: "20px",
padding: "40px",
justifyContent: "center",
};

const diarioTitulo = {
fontSize: "14px",
fontFamily: "Arial",
color: "white",
fontWeight: "bold",
textAlign: "center",
padding: "5px",
};

const submitDeleteDiary = () => {
const shouldDelete = window.confirm(
"Are you sure you want to delete this diary?"
Expand Down Expand Up @@ -101,24 +60,26 @@ export const DiaryPage = () => {
}, [param1]);

useEffect(() => {
let storageUserId = localStorage.getItem("userId");

api
.get(`registrosdiario/registrosDiario?diarioId=${param1}`)
.then((response) => {
console.log(response);
setNotes(response.data);
})
.catch((err) => {
console.error("ops! ocorreu um erro" + err);
});
}, [storageUserId]);
}, [param1]);

const formatDate = (dateString) => {
const date = new Date(dateString);
return format(date, "yyyy-MM-dd");
};
// console.log("Diario ID:");
// console.log(diarioId);

const navigateWithParams = (regDiarioId) => {
navigate(`/reg_diary/${regDiarioId}`);
};

return (
<div>
<Header></Header>
Expand All @@ -140,26 +101,15 @@ export const DiaryPage = () => {
)}
</div>
<div style={regDiarios}>
{" "}
{/* erro a partir daq */}
{notes.map((elements, index) => (
<div
key={index}
style={diario}
style={diarioStyle}
onClick={() => {
navigateWithParams(elements?.id);
}}
>
<p style={diarioTitulo}>{elements?.tituloRegistro}</p>
<p
style={{
textAlign: "center",
fontFamily: "Arial",
color: "white",
}}
>
{elements?.conteudoRegistro}
</p>
<p
style={{
textAlign: "center",
Expand Down
53 changes: 53 additions & 0 deletions src/pages/DiaryPageStyles.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// DiaryPageStyles.js

export const ADDbuttonStyle = {
position: "fixed",
bottom: "250px",
right: "20px",
};

export const EDITbuttonStyle = {
position: "fixed",
bottom: "150px",
right: "20px",
};

export const DELETEbuttonStyle = {
position: "fixed",
bottom: "50px",
right: "20px",
color: "white",
};

export const diarios = {
display: "flex",
flexWrap: "wrap",
gap: "20px",
padding: "40px",
justifyContent: "center",
};

export const regDiarios = {
display: "flex",
flexWrap: "wrap",
gap: "20px",
padding: "40px",
justifyContent: "center",
};

export const diarioTitulo = {
fontSize: "14px",
fontFamily: "Arial",
color: "white",
fontWeight: "bold",
textAlign: "center",
padding: "5px",
};

export const diarioStyle = {
backgroundColor: "#1976D2",
padding: "10px",
borderRadius: "10px",
cursor: "pointer",
width: "500px",
};
108 changes: 108 additions & 0 deletions src/pages/RegDiaryPage.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
import { Header } from "../layout/Header";
import { Section } from "../layout/Section";
import { Footer } from "../layout/Footer";
import { useParams } from "react-router-dom";
import api from "../services/api";
import { useEffect, useState } from "react";
import { format } from "date-fns";
import Box from "@mui/material/Box";
import Fab from "@mui/material/Fab";
import EditIcon from "@mui/icons-material/Edit";
import DeleteIcon from "@mui/icons-material/Delete";
import { useNavigate } from "react-router-dom";
import {
EDITbuttonStyle,
DELETEbuttonStyle,
diarios,
diarioTitulo,
} from "./DiaryPageStyles";

export const RegDiaryPage = () => {
const { param1 } = useParams();
const [note, setNote] = useState(null);

const navigate = useNavigate();

const submitDeleteNote = () => {
const shouldDelete = window.confirm(
"Are you sure you want to delete this note?"
);

if (shouldDelete) {
api
.delete(`registrosdiario/registroDiario/${param1}`)
.then((response) => {
console.log(response);
navigate(`/diary`);
})
.catch((err) => {
console.error("ops! ocorreu um erro " + err);
});
}
};

useEffect(() => {
const fetchData = async () => {
try {
const response = await api.get(
`/registrosdiario/registroDiario/${param1}`
);
setNote(response.data);
} catch (error) {
console.error("Erro ao buscar dados:", error);
}
};
fetchData();
}, [param1]);

const formatDate = (dateString) => {
const date = new Date(dateString);
return format(date, "yyyy-MM-dd");
};

return (
<div>
<Header></Header>
<Section>
<div style={diarios}>
{note && (
<div key={note.tituloRegistro} style={diarioTitulo}>
<p style={diarioTitulo}>
<h1>Nota: {note?.tituloRegistro}</h1>
</p>
<br />
<p style={{ textAlign: "center" }}>
<h4>Data de criação: {formatDate(note?.createdAt)}</h4>
</p>
<p style={{ textAlign: "center" }}>
<h4>Última atualização: {formatDate(note?.updatedAt)}</h4>
</p>
<div
dangerouslySetInnerHTML={{
__html: note?.conteudoRegistro || "",
}}
/>
</div>
)}
</div>
<Box sx={{ "& > :not(style)": { m: 1 } }}>
<Fab color="secondary" aria-label="edit" style={EDITbuttonStyle}>
<EditIcon />
</Fab>
</Box>
<Box
onClick={() => submitDeleteNote()}
sx={{ "& > :not(style)": { m: 1 } }}
>
<Fab
aria-label="delete"
style={{ ...DELETEbuttonStyle, backgroundColor: "#FF0000" }}
>
<DeleteIcon />
</Fab>
</Box>
</Section>
<Footer></Footer>
</div>
);
};

0 comments on commit 6b115a7

Please sign in to comment.