From 39372b0b0f5d29052c3b83d838a6677cf1747232 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Sun, 3 Mar 2024 10:42:34 -0600 Subject: [PATCH 01/21] Session 02 --- apps/react-app/src/App.tsx | 26 +--- .../src/components/Banner/Banner.tsx | 9 +- .../CategoryButtonGroup.tsx | 24 ++-- .../components/CommentCard/CommentCard.tsx | 9 +- .../src/components/Comments/Comments.tsx | 6 +- .../CreatePostButton/CreatePostButton.tsx | 5 +- .../src/components/Header/Header.tsx | 22 +++ apps/react-app/src/components/Header/index.ts | 2 +- .../src/components/HomePage/HomePage.tsx | 68 ++++++++- .../src/components/PostList/PostList.tsx | 133 ++++++------------ .../src/components/PostPage/PostPage.tsx | 63 +++++---- apps/react-app/src/types/index.ts | 27 ++++ apps/react-app/src/utils/index.tsx | 33 +++++ 13 files changed, 264 insertions(+), 163 deletions(-) create mode 100644 apps/react-app/src/types/index.ts diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 3fe215a7..1136789f 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,16 @@ -import { Grid, Typography } from '@mui/material'; +import { Grid } from '@mui/material'; -import { Container } from './components/Header/Header.styles'; +import Header from './components/Header'; +import HomePage from './components/HomePage'; +import PostPage from './components/PostPage'; function App() { return ( - {/* Activity 2 - Move all Container content to Header component */} - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - +
- {/* Activity 1 - Render HomePage and PostPage */} + + ); diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 4033c6d9..bada1252 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -2,13 +2,12 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; import { BannerContent, BannerTitle, Container } from "./Banner.styles"; -// const postTitle = "A good place to camp"; -const postImage = - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0"; - function Banner() { return ( - + + + + + ); +}; + +export default Form; diff --git a/apps/react-app/src/components/Form/index.ts b/apps/react-app/src/components/Form/index.ts new file mode 100644 index 00000000..8bc7b770 --- /dev/null +++ b/apps/react-app/src/components/Form/index.ts @@ -0,0 +1 @@ +export { default } from './Form'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx index d881115b..67f292c6 100644 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/HomePage/HomePage.tsx @@ -1,19 +1,23 @@ -import { useContext } from "react"; +import { useContext, useState } from "react"; import CategoryButtonGroup from "../CategoryButtonGroup"; import CreatePostButton from "../CreatePostButton"; import PostList from "../PostList"; import { Post } from "../../types"; import { PostContext } from "../../context"; import Loading from "../Loading"; +import Form from "../Form"; function HomePage() { const { posts, // getPosts } = useContext(PostContext); + const [selectedPost, setSelectedPost] = useState(null); + const [open, setOpen] = useState(false); const handleOpenForm = (defaultValues?: Post) => { - console.log(defaultValues); + setOpen(true); + if (defaultValues) setSelectedPost(defaultValues); }; // const handleSelectCategory = (category: string) => { @@ -27,11 +31,16 @@ function HomePage() { return ( <> - {/* Activity 3 - Send handleOpenForm prop */} - + {/* Activity 3 - Send categorySelected and handleSelectCategory props */} +
); } diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index a3d43187..8e3ce6e1 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -29,7 +29,7 @@ function PostList({ posts, handleOpenForm }: PostListProps) { > -

{/* Activity 1 - Render post title */}

+

{/* Activity 1 - Render post title */}

{/* Activity 1 - Render comments length */} {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 4170ea96..0abbf253 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,4 +1,4 @@ -import React, { createContext, useState, useCallback } from "react"; +import React, { createContext, useState, useCallback, useEffect } from "react"; import { Post } from "../types"; @@ -6,6 +6,13 @@ interface PostContextProps { posts: Post[] | null; getPosts: (category: string) => void; deletePost: (postId: string) => void; + createOrUpdatePost: ({ + method, + newPost, + }: { + method: "post" | "patch"; + newPost: Post; + }) => void; } interface PostProviderProps { @@ -16,6 +23,7 @@ export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, deletePost: () => {}, + createOrUpdatePost: () => {}, }); const postList = [ @@ -64,8 +72,22 @@ const postList = [ export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { - const [serverData, setServerData] = useState(postList); + const [serverData, setServerData] = useState(postList); const [posts, setPosts] = useState(postList); + const [updateData, setUpdateData] = useState(false); + + const createOrUpdatePost = useCallback( + ({ method, newPost }: { method: "post" | "patch"; newPost: Post }) => { + if (method === "post") setServerData((prev) => [...prev, newPost]); + if (method === "patch") { + setServerData((prev) => + prev.map((post) => (post.id === newPost.id ? newPost : post)) + ); + } + setUpdateData(true); + }, + [setUpdateData] + ); const getPosts = useCallback( (category: string) => { @@ -85,17 +107,24 @@ export function PostProvider({ const filteredList = prev.filter((post: Post) => post.id !== postId); return filteredList; }); - getPosts("All"); + setUpdateData(true); }, - [getPosts] + [setUpdateData] ); + useEffect(() => { + if (!updateData) return; + setUpdateData(false); + getPosts("All"); + }, [updateData, getPosts]); + return ( {children} From 436cc18dd8ab2533b5bd83fefa3e7ff511f5a3a4 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Sun, 3 Mar 2024 10:52:51 -0600 Subject: [PATCH 04/21] Session 05 --- apps/react-app/src/App.tsx | 30 +++-- apps/react-app/src/api/axios.ts | 10 ++ .../AddCommentForm/AddCommentForm.tsx | 1 + .../components/CommentCard/CommentCard.tsx | 2 +- apps/react-app/src/components/Form/Form.tsx | 31 +++-- .../src/components/HomePage/HomePage.tsx | 2 + .../src/components/PostList/PostList.tsx | 11 +- .../src/components/PostPage/PostPage.tsx | 7 + apps/react-app/src/context/PostProvider.tsx | 127 +++++------------- 9 files changed, 107 insertions(+), 114 deletions(-) create mode 100644 apps/react-app/src/api/axios.ts diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7a66ca05..7042ef43 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,22 +1,28 @@ -import { Grid } from '@mui/material'; +import { Grid } from "@mui/material"; -import { PostProvider } from './context'; -import Header from './components/Header'; -import HomePage from './components/HomePage'; -import PostPage from './components/PostPage'; +import { PostProvider } from "./context" +import Header from "./components/Header"; +import HomePage from "./components/HomePage"; +import PostPage from "./components/PostPage"; function App() { return ( // Activity 7 - Render SnackbarProvider - -
- - - + +
+ + + + - - + ); } diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts new file mode 100644 index 00000000..2946fd6a --- /dev/null +++ b/apps/react-app/src/api/axios.ts @@ -0,0 +1,10 @@ +import axios from "axios"; + +const axiosInstance = axios.create(); + +axiosInstance.interceptors.request.use((config) => { + config.baseURL = "http://localhost:3000/posts"; + return config; +}); + +export default axiosInstance; diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx index 156d3193..b130c473 100644 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx @@ -1,5 +1,6 @@ function AddCommentForm() { // Activity 8 - Place the code to create new comments here + // Activity 9 - Call the API to create a new comment when submitting the form return
AddCommentForm
; } diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..083ae108 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -8,7 +8,7 @@ function CommentCard() { - {/* Activity 1 - Render comment author */} + {/* Activity 1 - Render comment author */} {/* Activity 1 - Render comment content */} diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9ee6e67a..9cc590d3 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -13,7 +13,9 @@ import { SelectChangeEvent, FormHelperText, } from "@mui/material"; +import { AxiosError, AxiosResponse } from "axios"; +import axios from "../../api/axios"; import { Post } from "../../types"; import { validator } from "../../utils"; import { PostContext } from "../../context"; @@ -29,7 +31,7 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; post?: Post | null; - // categorySelected: string; + categorySelected: string; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -37,15 +39,12 @@ interface FormProps { const Form = ({ open, post, - // categorySelected, + categorySelected, setOpen, setSelectedPost, }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { - // getPosts, - createOrUpdatePost, - } = React.useContext(PostContext); + const { getPosts } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; @@ -80,9 +79,23 @@ const Form = ({ comments: post?.comments ?? [], }; - createOrUpdatePost({ method: post ? "patch" : "post", newPost }); - // getPosts(categorySelected); - handleClose(); + axios({ + method: post ? "patch" : "post", + url: post ? `/${post.id}` : undefined, + signal: AbortSignal.timeout(5000), + data: newPost, + }) + .then((response: AxiosResponse) => { + if (response.status === 200 || response.status === 201) { + getPosts(categorySelected); + handleClose(); + // Activity 9 - Use createAlert function to show a notification with success message + } + }) + .catch((error: AxiosError) => { + // Activity 9 - Use createAlert function to show a notification with error message + console.error(`${error}`); + }); }; const handleChange = ( diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx index 67f292c6..0410073f 100644 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/HomePage/HomePage.tsx @@ -14,6 +14,7 @@ function HomePage() { } = useContext(PostContext); const [selectedPost, setSelectedPost] = useState(null); const [open, setOpen] = useState(false); + const categorySelected = "All"; const handleOpenForm = (defaultValues?: Post) => { setOpen(true); @@ -38,6 +39,7 @@ function HomePage() { diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 8e3ce6e1..b13fe13c 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -1,9 +1,11 @@ +import { useContext } from "react"; import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; import { shorten } from "../../utils/index"; import { Post } from "../../types"; +import { PostContext } from "../../context"; import { CardActions, CardContainer, @@ -17,6 +19,7 @@ interface PostListProps { } function PostList({ posts, handleOpenForm }: PostListProps) { + const { deletePost } = useContext(PostContext); return ( {posts?.map((post) => ( @@ -50,7 +53,13 @@ function PostList({ posts, handleOpenForm }: PostListProps) { > - + { + e.stopPropagation(); + deletePost(post.id); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx index 777b35d3..405ef03d 100644 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/PostPage/PostPage.tsx @@ -1,6 +1,7 @@ import Banner from "../Banner"; import Comments from "../Comments"; import { Post } from "../../types"; +import Loading from "../Loading"; import { Container, BannerContainer, @@ -8,7 +9,11 @@ import { DescriptionContainer, } from "./PostPage.styles"; +const postId = "1.23" + function PostPage() { + // Activity 9 - Call the API "/:postId" to get the post. To save the result use useState + const post: Post = { id: "1.23", title: "A good place to camp", @@ -33,6 +38,8 @@ function PostPage() { ], }; + if (!post || !postId) return ; + return ( diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 0abbf253..03e1e61f 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,18 +1,13 @@ -import React, { createContext, useState, useCallback, useEffect } from "react"; +import React, { createContext, useState, useCallback } from "react"; +import { AxiosError, AxiosResponse } from "axios"; +import axios from "../api/axios"; import { Post } from "../types"; interface PostContextProps { posts: Post[] | null; getPosts: (category: string) => void; deletePost: (postId: string) => void; - createOrUpdatePost: ({ - method, - newPost, - }: { - method: "post" | "patch"; - newPost: Post; - }) => void; } interface PostProviderProps { @@ -23,108 +18,58 @@ export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, deletePost: () => {}, - createOrUpdatePost: () => {}, }); -const postList = [ - { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }, - { - id: "1.24", - title: "The average path a grandparent took to get to school", - image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }, -]; - export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { - const [serverData, setServerData] = useState(postList); - const [posts, setPosts] = useState(postList); - const [updateData, setUpdateData] = useState(false); + const [posts, setPosts] = useState(null); - const createOrUpdatePost = useCallback( - ({ method, newPost }: { method: "post" | "patch"; newPost: Post }) => { - if (method === "post") setServerData((prev) => [...prev, newPost]); - if (method === "patch") { - setServerData((prev) => - prev.map((post) => (post.id === newPost.id ? newPost : post)) + const getPosts = useCallback((category: string) => { + axios({ + method: "get", + signal: AbortSignal.timeout(5000), + }) + .then((response: AxiosResponse) => { + const selectedCategory = response.data.filter( + (post: Post) => post.category === category ); - } - setUpdateData(true); - }, - [setUpdateData] - ); - - const getPosts = useCallback( - (category: string) => { - const selectedCategory = serverData.filter( - (post: Post) => post.category === category - ); - const newPosts = category === "All" ? serverData : selectedCategory; - setPosts(newPosts); - // Activity 7 - Call to the createAlert function here. Include message and severity. - }, - [serverData] - ); + const newPosts = category === "All" ? response.data : selectedCategory; + setPosts(newPosts); + }) + .catch((error: AxiosError) => { + // Activity 9 - Use createAlert function to show a notification with error message + console.error(`${error}`); + }); + }, []); const deletePost = useCallback( (postId: string) => { - setServerData((prev) => { - const filteredList = prev.filter((post: Post) => post.id !== postId); - return filteredList; - }); - setUpdateData(true); + axios({ + method: "delete", + url: `/${postId}`, + signal: AbortSignal.timeout(5000), + }) + .then((response: AxiosResponse) => { + if (response.status === 200 || response.status === 201) { + getPosts("All"); + // Activity 9 - Use createAlert function to show a notification with success message + } + }) + .catch((error: AxiosError) => { + // Activity 9 - Use createAlert function to show a notification with success message + console.error(`${error}`); + }); }, - [setUpdateData] + [getPosts] ); - useEffect(() => { - if (!updateData) return; - setUpdateData(false); - getPosts("All"); - }, [updateData, getPosts]); - return ( {children} From 0bdbf84e4f8db0d23f9b6494bc51fb2daf27d6ef Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Sun, 3 Mar 2024 10:55:31 -0600 Subject: [PATCH 05/21] Session 06 --- apps/react-app/src/App.tsx | 24 ++++----------- .../CategoryButtonGroup.tsx | 2 +- .../components/NotFoundPage/NotFoundPage.tsx | 23 ++++++++++++++ .../src/components/NotFoundPage/index.ts | 1 + .../{ => Page}/HomePage/HomePage.tsx | 14 ++++----- .../components/{ => Page}/HomePage/index.ts | 0 apps/react-app/src/components/Page/Page.tsx | 30 +++++++++++++++++++ apps/react-app/src/components/Page/index.ts | 2 ++ .../src/components/PostList/PostList.tsx | 1 + .../src/components/Router/Router.tsx | 12 ++++++++ apps/react-app/src/components/Router/index.ts | 1 + 11 files changed, 83 insertions(+), 27 deletions(-) create mode 100644 apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx create mode 100644 apps/react-app/src/components/NotFoundPage/index.ts rename apps/react-app/src/components/{ => Page}/HomePage/HomePage.tsx (79%) rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/Page.tsx create mode 100644 apps/react-app/src/components/Page/index.ts create mode 100644 apps/react-app/src/components/Router/Router.tsx create mode 100644 apps/react-app/src/components/Router/index.ts diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7042ef43..3b3b6d8b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,14 @@ -import { Grid } from "@mui/material"; +import { RouterProvider } from "react-router-dom"; -import { PostProvider } from "./context" -import Header from "./components/Header"; -import HomePage from "./components/HomePage"; -import PostPage from "./components/PostPage"; +import Router from "./components/Router"; +import { PostProvider } from "./context"; function App() { return ( // Activity 7 - Render SnackbarProvider - -
- - - - - - + + ); } diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..cd6ac296 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -21,7 +21,7 @@ import { Container, StyledButton } from "./CategoryButtonGroup.styles"; // }, // ]; -const categorySelected = "All" +const categorySelected = "All"; function CategoryButtonGroup() { return ( diff --git a/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx b/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx new file mode 100644 index 00000000..81c92cc2 --- /dev/null +++ b/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx @@ -0,0 +1,23 @@ +import React from "react"; +import Typography from "@mui/material/Typography"; +import { Grid } from "@mui/material"; + +export default function NotFoundPage(): React.JSX.Element { + return ( + + Page Not Found. +
+ + You have ended up on a URL for a page that does not exist. You can use + the back button in your browser to return to where you were. + +
+ ); +} diff --git a/apps/react-app/src/components/NotFoundPage/index.ts b/apps/react-app/src/components/NotFoundPage/index.ts new file mode 100644 index 00000000..35f02dc1 --- /dev/null +++ b/apps/react-app/src/components/NotFoundPage/index.ts @@ -0,0 +1 @@ +export { default } from './NotFoundPage'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx similarity index 79% rename from apps/react-app/src/components/HomePage/HomePage.tsx rename to apps/react-app/src/components/Page/HomePage/HomePage.tsx index 0410073f..fd03a30e 100644 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -1,11 +1,11 @@ import { useContext, useState } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; -import Form from "../Form"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import PostList from "../../PostList"; +import { Post } from "../../../types"; +import { PostContext } from "../../../context"; +import Loading from "../../Loading"; +import Form from "../../Form"; function HomePage() { const { diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Page/Page.tsx b/apps/react-app/src/components/Page/Page.tsx new file mode 100644 index 00000000..787ebf10 --- /dev/null +++ b/apps/react-app/src/components/Page/Page.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import Header from "../Header"; + +interface PageProps { + /** + * The page component that will be rendered inside the global Page component template + */ + page: React.JSX.Element; +} + +/** + * The global page template which wraps the page component (provided as a prop) in the global site template/header/footer + */ +export default function Page({ page }: PageProps): React.JSX.Element { + return ( + +
+ + {page} + + + ); +} diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..456c3975 --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,2 @@ +export { default as HomePage } from "./HomePage"; +export { default } from "./Page"; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index b13fe13c..cc2abbed 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -29,6 +29,7 @@ function PostList({ posts, handleOpenForm }: PostListProps) { key={post.id} image={post.image} md={posts.length === 1 ? 12 : 6} + // Activity 10 - Navigate to PostPage onClick event > diff --git a/apps/react-app/src/components/Router/Router.tsx b/apps/react-app/src/components/Router/Router.tsx new file mode 100644 index 00000000..07d55ecf --- /dev/null +++ b/apps/react-app/src/components/Router/Router.tsx @@ -0,0 +1,12 @@ +import { createBrowserRouter } from "react-router-dom"; +import Page, { HomePage } from "../Page"; + +const Router = createBrowserRouter([ + { + path: "/", + element: } />, + }, + // Activity 10 - Render the PostPage component with the dynamic postId and the NotFoundPage component as the default page in case of route errors +]); + +export default Router; diff --git a/apps/react-app/src/components/Router/index.ts b/apps/react-app/src/components/Router/index.ts new file mode 100644 index 00000000..1c664800 --- /dev/null +++ b/apps/react-app/src/components/Router/index.ts @@ -0,0 +1 @@ +export { default } from './Router'; From 31e2d4f1183fea6b2f33e8a975267fae34bcde56 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 18:44:52 -0600 Subject: [PATCH 06/21] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 40 +- .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 15 +- .../CreatePostButton.styles.tsx | 3 +- .../CreatePostButton/CreatePostButton.tsx | 12 +- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 71 --- .../src/components/Loading/Loading.tsx | 19 - .../react-app/src/components/Loading/index.ts | 1 - .../src/components/NavBar/NavBar.tsx | 73 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 20 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 44 ++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 44 ++ .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 24 +- .../src/components/PostPage/PostPage.tsx | 53 -- apps/react-app/src/types/index.ts | 119 +++- apps/react-app/src/utils/getErrorMessage.tsx | 8 + apps/react-app/src/utils/index.ts | 4 + .../utils/{index.tsx => inputsValidator.tsx} | 7 +- apps/react-app/src/utils/shorten.tsx | 4 + apps/react-app/src/utils/sortTable.tsx | 52 ++ 39 files changed, 1116 insertions(+), 255 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx delete mode 100644 apps/react-app/src/components/Loading/Loading.tsx delete mode 100644 apps/react-app/src/components/Loading/index.ts create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx create mode 100644 apps/react-app/src/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/utils/index.ts rename apps/react-app/src/utils/{index.tsx => inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/utils/shorten.tsx create mode 100644 apps/react-app/src/utils/sortTable.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 zcmaI71z1$w*YJ&^pi%_#C@9!HfBiifa4a@ML3#Kk zCn>J(Wq7diQlDV+2K|^yh&n3#C$-EQTq5p9by@XkeFes|MND5|yruqI$Rqu&k4y>wd$3_gyZrloxXlwTBO@c;J~_$11@)e^i`}WPK#{)* zqs}889T^z-M`ln~76l$YetpT}@1dcR(F2SbRsjJ4b}p`|!tn6o%0JiH;l=)I*V!GQ zl5?-}*BTU;)iRIb)y2IMQvUhNzv6Hk>i?%a|4RmA_<5JOq@+957(!C=0`;$09iOA> zpK|BX(Q#GoI?qJ@730oGVjkfBJ2bP% zj-qn04yF3PrT?XDzw?mr)9SjqkkHUj!D%!d9i6@JX=x=%Zxk;T(Ol13?(`)*JQ{SV zewE{Zp}dd)?4EbzNc2@KS89%kU3WOiWDLdU|u|KeNBv zC)p?4vqcJ8*F)EcUuTdCnsP4rUBS=F5z(B+dVS)bW?9YOy0Z zZKgk5KzVFuiyu_`sF?7UGq|mP2;Sc#;bjlWeZ3L*GjE{{_Dgkmd5eK0k2WZ`NVAr` zPQ2Oy=FKXS8WSh39KqNrCYa`JF(g*+ZCB|lWl&aJ5Nyo{fVz&)+{0=sG-Wk{{;9b~ z1*++EcguK%-SzK@C6I%>qcz=}hp%WaFj5yyF!h8cJ~v!$Z({VYak z83N49t*LTzVscXQkX}$$NOsy6cm<g`4PF8A;6)7KvvP$VwqL)6Vg^aMLAnokz{ z2}dC(0sEdV&yCQN0+)%5r3narIm7z3+x?ma@Bc)xl|E=T{2A5RYa{hm*^j35#E~B8 zU!C%uOi7tDlpjLg6 z&I+FE*V)+NH_c?y;7S6`Y8UeZkxLSf-v`gbYQ=JwP+jZ0(_#14XA@<+&kq9JIs7Lf z^7)142XYAnle9s?&hLNIsMo2Aytmj5jvo_#)=}6n__^a{>QeXQDV=G+!>b(oNa?}` zZF_ZCPO;g)O?ys1=8pZoB>vbLh0~ESC#L>%!OW=VBuDEle|a5L1^ajx7KUco_~-b! zdCkLAD&NMe=z*d4CV_pq>9W#Fqa)Oi0s`v{MD0V=YW1E_65XH@KDe~V$9jf&JUOn7 z>YWX))|Klk{XKA3uqKgu2rpK&t~n2%7pB55s+3fOi&xL)xUPkA)Y5e`nFlT}a;0ttXxIbCzG%5oyar?>!9Fv->qpU@5rFl%w|KVqTNM{S1Jh0L?4vo+Y6h%V~cUB8CKsA`Q zW&phsKC&%LW;s~j`02+hb?mUIesHT=eGpWgAk)oc&X?SA{c5YN#E%yQj#vv$JN7=d zj+jK2Tfh_j&JpNdC3cP;^oKFn8ZU#qKiGk!nA3s8ZoopC23BqgXc3ed>wE zvt{X#-k_I@xALmTeh0nAd%WGqAal%9e(cw$l4mQLw@B#`wC zbYKG8b#9DD5*iKBS#T7;&4HCu?j7^VqZhRCzM5=N5||0oZLChzm=AwXNJt>VtkiGV zx$5+~(lEKSY1Us3k4uC%wBS$UKleA9U^%^+-=C(USsGOH_35Qr3<7UYt7;4c(oFPs zeaW7d?oV*q+Rh@@lkLwo(J`mJ#+-E&bNDb~(0GbmAMrU5E{tUq%zFUZuNB7)bSe6- z7lSnecHcG}2!U7<2J#WF-E1xLqgPsDq?_TOinG~zD>y@b;gYOmV|=yc_uFlBuZ@zV z@8}<14bR(h9C(kA^1U|D6`&TmeCGdfA~AAzPkVgq=Z7%%eQU}>c|9j@K4j?SKg9fu zTdsfIu^(_WCO-jmJ)Qv=7*o_giEFF-Y+xkE$O&+~vNc*C68hRx#@o4dPmlW(mG$6; z+|@`Vn$__R19nsQ?J%ilzRK^3=sYbC`%CzP~Rxf{TBJM5%^3@vwLgwY- z+4xeJMCwDg#Lni*)7hbT{_1V|HjW2$`*vrFrDF+QlpGBob=q*12J6YxL*!+N}Y%ndaSggFn+r1h}Wdh@= z_zV-a6Exg$e%^H!S*L=AOo> z5OK_co~%afBsbx9=wWvbQW{o)Ng`;-{Cj5yGxlyFUuKIoHcA@lJR82*Dzl|7ebB00 z_^9iL$7&}MnQ<~?<308DmQQ91U)6bYO@|vkM`@9Kt#>&(G-9!mq6#cQRvC!Bb9+#6 zHxzeKQ*dx1*!rYPNcj>Rdj{!vZ?ZC%4fDSdgMZb-??Keu@^_SsbyK0UnjopRXEHWv z(7f^#!sx1MIJLHoS}V1-DFpqcvZ%P5cm(ThF%>X+ZqHI2jDHu(E(?w0+Y4t+U!=>+ zD-G;nSvt|(%-Xwkc+wTRHHT=xpTV3A37E*)z4n-&S=jYuj(x&RBX2MyzU_2!J6HF& zqwQO}q62^-+jM->%O**$Bj$&Ts!m#02JdvT;Bwv-d-0VC^`TXP!cBx|%$u7)Vxq zG}g2{LONVX!Qr)r;&$%waZ6+KVn5(x_^FTgAqq6vsj=iu?rEFqyeo_z`>k-)`>1qXOSNAgJ!h%2( zu_r2-L?VopPEN#fNT9Gj40R;QRoO$6S1Cuax73LGH~;{29kVX{Q(5pQpDor(tx*24 zFTnt{QuQ7y32xdYMyCSEPGFAlgCYrfEx7~Wp7re&Rgp2OD{pk_taR#|d2#!|+tU5k z2D&Ub#u({YcX0}Rw~S~M)i3q*Ma=Hw)ryJ9OS(LoOH&vd`s<=hw~e+x@I!32ZOmTj z0ocuM%!}CL?s?qNEBgx-eI;RAZSyDP$h^H(^@$6I0)HdS{TEp@uLE58W+j^d>f0f0 zaJ>ZhP8=cg7b7(lh%Q3IC#J-inDcqu_lTwtAm7Los*kSI z?fA!*I2(-X+CJ~Ax4lyHeJ$qMrKCM%xvYf5xBrH@lGQxz2`ZZLKr97;E|dURK9a%5 z2EEG<0v-+d54u;Vbd9tvjn1FN%9wp4(xr3kMJjkQL3`=WK6710-U7cQnzlnT(2JoA z=yUyfcc@Q}oq00hvt`>7o4|gouZQcPs#V&kaqxpSrl)AcTFxZ9SDsjvqrfZ`m!Zr< zYyv9~cYKvHzD%^+=hv$!B*pHkmQKo)czJ| zZ3w=qk3aIhC^b9VWSQ7`n_qtvZ;lF^Xwmlpn zA;%o;i&yls?V@;;i=O~SiKpIP*T1o@{3D_}qN^8$)$X=!&!Cy*eg&rle*#}JeV)4$ zO}_Vfwv_yNd{%^zO`*BwHX4+KP=Cx9z4r+o;(Rq0e}#w(FkPCXvfZC(IGMR$d>R?Z z21AMzxy+s1%NUs~<=CFU0~h^52WY4OOY!yErIivS$>n|VEL4EG<0@5>^b!@gZN zwr5J2LGhsvL+Vle2729xl?}4s%%k2rz0(WOpTEqfG9ioloH&@$?Oh zlyS&Ccb@e^A5^E|N@6oJi+s+PUj3WJc*u4*-{nO&pCoSth1hDD)_ znh@pTe%aWo+Roq1@zE7IZF%=rT9yK6#($#l*SBBCzyc^bcSGook=vNjUVAnSw(WAU{u8!^qVs_7filJkM275L07EjE z?vD{Z>NqVAo-Z$4CDw}#Glw1b$>L_ry0$-goW~RDB*3+7G>acR=SRxA&2HGq10SI$ zW6n@E&%V>g>(6K(Kq(zb`$T!pDx%*rP8TvIma%#iN>@U^jCk4dSTHX}R+SUJ@XJFl z{Lt58eebn>@A2^*u3bEmQ+xB_hklFcq{1P)v>{&}O(FIL8n&aVk(j0XvvL2oTcg#T zTOdqxu6B`FTJwoi3P{uE4qx(&&H7)3`euxCnLglki{%1>vTCbxwsVOD=nMo*RKY85!NLST zM{s`-2tCjDv&Ur#AcL5@r&P!F4CU>V|NPNz3oYwy0g-GY^K=+zl5_c%&CXi_1Phr4 z+$}b64@BNz4PQb$j~=izZI+!3BihqnnbE=iG+Sjxsg0gvt>m8VMOsiw%{jUoY=@^C zBBZbPMex!pg4lsuA2#*6I&1ETN4~?OLZ>Iz8Ro%OJL& zQ9Yk|cns9P*lcn1<fI@wNR0!YSUH{WW0N;OMY86z zn`h>5is20+=JQ=CtMpMfc;qHz5P4q;EAB+IvzCC#0G$DWSv1vEQzHPGptMZ4>w7h_8%~ zVUTOzXtv2wh9#sYT^m~Tz}5ZYJrNRFQh+EE=m6QALgTM@-k)*g%HY4<#heW|e!8mN zOr*t0F>w;_?G@nTV5OLwxUw601=OqZpEAsxkdG0j1BN1~>`=+THQ5Ww>q&?5>s)Yv zG?fm*`B}%sQ$sH%Vsw1FH4Z20`@5g(?u;^G(Fd>NvY3K#+xDYRgC&#G0uebJBa|Yx zg#8{aA@|El%qp{I{g7bUnlBBO%fqQfXq(c2-3L&HHw!fODzr9&K zt?by3gzCZeg|J;BTYrVZalb-T)xG0pmT=hGrl;k`bKHnx%pXtF4PTwAI;>GOo+A~Z zQX}GZlI`|4&+%mfkz9;AnB$aB_#7wL9K)}N5c%~kA_41j);l5x4(DWdPcE6DU$8|6 z0JFevDP?wlst=72q_ZbCIH?}Wj&@(DV&l5e7LrNCilb)GG$^L=Z1(tG>w#+1U7y2?E`Dak0yo#WElsf^kE6Y~0gQ}TY98JvTHT|6PLI?E zWtD=ZBzV%x*(H3su`aCDNY3XR-ZF`(RaoB5kPWK%&u^QVlWkQWDO9vi14nk9D$X^* z2IY0t-QM#hy9@-e1HcQ2>fWKTm$1iSTwj`Ngq5-FODd4GO@fgeA7{10zRrP|n+|y0 z>*|VtXSjcEfCL+>!q~#$+wh6?-hRM}zvl1M>wVd_^!IPgOZc#OD&{OprUsOZLPfz< zV}1wqO)72$SO!hOtX)ZTjzs&hv&%w9k}R;If2#a zjeovm`n}yw9JA$9Qs^zC8=MBLY;l((Pw=vr$SV9^{C1iPCQMxzAmg3GHok{hR%@rR zrTOH~Nuk6D0itQy>zsp_CST(_D+2EzahHJ84lTg_4RdeEFS1#0jmj@cFi}O4lwAsl zaD4%-;8h%PSQ=A*ZYw~zn-8SsFErK%1XAEOxN%D>X9bdQ(Hjo}nQ)Id-l!EZu)R!; zaK7ig-X6o0$U8-x&qd^M$(KI%8uCG8E{5|pOr+H*j>TQklvxJr6U&q-pn`W-MN>9t zP|y8)>E4BXC--Uzgi@tbRio;toCBk`i*gNPftoFT&t20W_h6S()cW3F8)Prqe%kf3O>88x5&u)q97oj^V zO*eb(7MXC2nvmc!qLyVo@^}@_9X$BkJvf5+i1&ck$bH=1y)ayP@UXYJ zty`qa>ps|bRd}oNX4dZ5t-**p_I|rpav<^Y6mGm;^hG;vS5A4C^Drf`sH6k7ka6dV zfiZ!D%VF&~7rF9qtMd^LEsCKvdX+vhw$eevJEp{D9X+QX;@qYz5XD%&w#PBSU8OaZ|D={_mCaZ$Fx;8M9J;(ZhS zf)}U3dRLMy*~x{Yvl9+^0^<9xh@kE4W!ss~w>|YX;w)(SjasVhaCn?1`A6v@6wE=O z1N0S|l99XTg7Q@_x z3yWPur?|+P7cbm%s~=7XP;7Fc;I^x}T>IX=N9_?{({!19EtJPHF{!m`03Zl{ZJu>{ zqw%m3s4XO;|6s60W&YrqS*so#nRf+MPN#-~ZUT&EzID)?#e4Fq+)u#Ph-i+xE%$M6 zXT3(2-(hJl{#^Qc>+P-8(D79~PPqqT3flRq;`4lye>5ojBADh!6+%pTJ=CZUjXgsM z;u`SL2XB;IKknku=NTg3^yBOX7x}BFjO%xeKBqaJ)^l8op_ei4djeLq2#&q8EOymW zJ_<&sQ|?hy77dkRGACi`k|{UN zq`*L=pp1}_F$bK71#y_}Q9pZVd&ag*79Csy5pq8=vO=TAP3j&cs#=@F__{*j<(Dn& zYFA36J2*w{qgR*Hf@XVPgz4(rrE=eEp!>lU0a$`+B}EWgO`sFc)$^3sDw#e^xP6?X z#984%eE$lD?s|xr1Nq~v|O1mns82~ z_9wv8xpFuFKwD#=drsN?^xYv8?>loWq!ZR|@qG)P&RZ=ZZ9zCWRclf)?X4O~IZ^E` zwnB^gmWhjub+lnG#>H9`3i7c^PJ&39*45K-!FQ!BQ|Zj0HL zn0`o|2ITuHlL{7|mlGaj3E;*;IK~jnm?#-Ey@61n4!qWQO z_&A({Sd8Pfp-XCdJNLbQJ9AKom=eusCCMVU7Tu^cjpzzRu#p!jK>8{-|1_WNQoZiR z%<;Enpq%0F#K)=DS-yyVR-)Ka)QPrvYDuIH5SIgTEk4)qq-u-*6G*4Wb3}swWcXwG zgDg6&3kpYvI)rwcYM;YL#vpAB1T2ht@6!eiR`qC+66m zaeiZerXKayw2-bNv3cV#MaEI@`!@*{RH!EW4SHk{+=xv2~mSNg)~6 zPw|OhswNKDJo#`pb!yJq8jdCqHrt&MA12jWNhUt0gOEfCKlbYH_3v*&B?`q*D=DNm zc=Wh!H?h&<=&Hbk5j}J|)oC)Z@219wAolSi)euemQH0Y@P{iIfkk#UMYB+}h3+_Ga zRe4Iw(FbU)+}EYA%V)Q1A3f(S7V{!xj`-}}aeh~G%d?3n{nG@(bvH_kWm)^Co%xDK zz}u3tKW+YVQ~h^JDe&4>X2g8B9w-KrJP|tgIOY&k|D{+*P*e)y0N(<~uTGsqipMm} z{(xW;ADN)42(07>!QvZ|U@ij6f@a0d=CF4Q<}<&leo897luk@>rh0YROt0vmSr$?h%=%Uy_{^D5HB}tBlC)O3T z)f#MtKBLvsC9O$_qmVSSQK;JoTxA^2FJL6cqgUk@qtBn-(Va_S@HJ~R&u!?Zm*__g zP*2tW;?zpWZKLxH{48mt`0ZEy5PUE?x(y|xMxSo-yPb;&o-YeY1GcK#uiHEINu)+? z`n{*wQK@vu7;L0yug(VEb!NjwX*Gdc2(+Z9v-T{(INqU8bAp_>*zp+ZSh(&>#uI_2{LHL2^GGhje-b?Z{)YYCP40quByZ=wr!+gVc%) zzZp5u>aD|UcDUe^B+M!pAvG*GF`ePQMJ47E!kGItyX@iyVJ4|x9VR!LLTU6D$mu8S zm+tnS-n#Kp%w|yyT&XUv$VbL}QkN_s{jhX3M{=RiRW?k1eyTcp%t3$h?NsVT6rmMj zk;1CtHl{E~Z%h2VxXZypFe+`Pkg#@)hjz zd!n=Xy{^v|*65A4WIq!;m&K^V0uHZ8m9E-#dW*SHR+09eoU#%Ri7^bUM%=NnZvuV zI$RIupaF9fI4amj)P!pWXUAl0-zRE>tkr56b}>QNxA|aWZd$S~8A-vu?LLmyK#KTk zImj4%aeHs3>~Zm?ZLH{zELY}aqNQ`B$f|wT`s%U{SYUnm!TND60fTs{14Ebh$sZ*u z8Mi>dgGHCvw*u}>w%%7*1?H_IVD0-+mvXWAr&>85h0hO|M}Q`8{A_0LhHizAx+7Tf zovAleqHQsH;ewGmi{+*Uvc2<2|ITtp59)LBpZj>>3sft?YcloMjWi5z&gwr0>nzb~ zlZ73_>+VhUH=h{LH{Ezh4lH*`2$;yc6_vX-U^%<+>FIH39+kkGUCwv|q$_>7jnsq) z0AgK^y#G)guCE!#B;dYma;exrB$XHbf>LNbD7L1B#@dqs4(>#EW_b8kTDqHf)s^^% z<`TIQOZYELK6%SZWaY%`tPNdo&kGO&&zcKFmls@dEd}+o{3)-Ps zv{y#=-CUkViTONsmOa`;LKeZq7y0n5o{5ej&fVx~31Z_}eT0SDoa$6vMytzVLPW;% zQU*oGHhjCQSfzH4Rz;|0C8WJSabNJk19Gy!jZ#||_G4>x|G9z!o7;rLJrN6DH6%y; ze*dR%GPZ-0r~6m)c6tX!WyKa92S#S*&xaDADsf$!AGuZDoa!33Qc?`WiNzS=BJYrI z@6vf3mbI~tUIMnV{T}xtp1gZl3e=wK^72dF#R5~0ia;D|9>-Wur{RtmzD?W6?CRc& zL2cTky(jUo7a~c~$yx7V6*Mj0I@C8;MtDX{&jnKGXvBYDe}4a-<~K2a`4{(Xgqq^L z5MxUZey)DNMu#?AkmyS}NDXgR|CVF>+48IC04w2Doo0OWhh*bi8ezd}lk+m8^)mW8 z^N?RL@7T3I;I!RNA+8X_Vs37--D&wk)&83{h*WdNk&>qN1hI`1~ zqxLyk12^}l^v81q8RQlEJPb`l-u!q&imk?8$RIIQ=5?+%jAc9}fa4KQ6H9v2_5%l0 ziqgG>kV!1`b&gp?-Jr%E5wJbCjsoeysW??mna0Ou3|szkcqX3iD^R_`r@!c}YX1~% zaSA$lt8mcZBw4Wv!q&omv$Cw_tc|#yS!&@snOuL$cceJ@yJ}`T3Ws``l@c+-^p1gI zKR_soCnNuO^FhgUb5Tw9^DK=)iK~n+S$!N8O`OGLRTZ}u^3{*~Dzq!#H8(Trd*pA9 zdLt^ZDA^&{aoc+DGkJJqsD10#Pw8{c{cEE~gKgv$)2;9Jah(HJbm7BuWg<~?yjqp| z%@v}Tw8Nl+Xz-s{1Z#ewDMakn__^n^qen1ye#PjW;DsorY zbw;o3b@FBu#~GH0G)!Ii2Q!}YZN)ocPUZ)8pG(2Dv9s{TsV=Ra7%7~$ z^cuZ)k=vaMDqxDJ~WNcGx`8(EB9URGb-a)*dC~r})sT z>-LEZp2y{HSl<7SMLoSfha0Q`F7Ruwj!Uz>J}+9m!gr?u&&SS&ac_N3pj8f7b@897 zjuc*#MA>2s)(v~^IepA1#FlNR<{L>WqZ-n@;1p@p`!l+XlEx{71|B8?oX~ss^sDjJXFT)?`7x3vOBtZwxeC%@U#eCnGj=%G+I#`AvSZ0lC*9ng z3{cG+2oDu|82r7*BuH*l%ea zrwk#YoV5c!>lHtX&n5OkA1j+X?2d9aTO`X5_kkB5N)I3wSUo<$aT?G8DHpYpxK^2r{! znFv1q%KiK%xh*9ExSe|>T^s8qz<1`r*}h1l<86E5Xl^s?-GlQ*CW@BXXZLyAPwahX z>6{QQUk_6_r8_U~N@bR7^;*h@`iEv=D&w9U2o6b@q1R~u902LTF@bc)o!qyco!l?g zI(4*+n35+mKPMt;B1TS5-K@GgeIFkGkjZVIQru8w8y6<}@Cx2>A=-X(`=qWBWm5UD zpYvd#6s)Su`XaR%jjDqe-8I?o8~P#xsJWerjF8mOux)k+d4WvjS*2|SB^Psafx~&U zU0?5N2>R-*h?YuTOXeZln08>dBtM#nl>p?k)k8F3CwOKVi z$YY23s2V6Zwl=*}FMh_Ev^?_{QE1dRmlr0$u(cHOir#rDNBpWEXSZ%e@@V zAv&3q&ph=SOP^w?tG}`DNQXzbGbHTFd;$TWGZ63WxW^SL z&PyasaJ4mCvp1zPFK#Rr3odt4Qu<3*=-TYgWcAA*Kc;5d%hS0XzEWnT|1^Sc?QHEw zHdJI80|2p!WR0Ggw2nGaV7Vh=;cIKmOCGZyI)Ybk*G`IX$GJ(u0#ba?FOM|*{co@b zh>dhUne2Y+EZR0bQhTyz8*N9i{1eE@lWw*mcWIy#?0cGSJNJ2UiQ)6R0U^7U85l6p z@p1EDA<}F}R9|IWz{X-E4A}OMo zkA@|Sw8v0~{rv(hyr=((1J5oh$7OX9ruT0v3zPNi7dvE#&I6F131l3Nm=DaQiSCU$ z7i&7>vYENF8}l<4mBZW+uxVs|zmq)9^TnTyUi}N#_ie&I3EzqNZ{m7>h(pe`a%j%m zumfEQ-^n6@he9mGVfUgT#@8erm#zo=hvA(86$3#-;xBxRUnTo_Q?+pg3JDQX%qO_| zLa9d)ahiXwR}-t_L`b54TgiJ&UPm!lEfxf(htdO&MDV5wA9uIk-Pqu;7 zZhUKpaIkDsf|6sa*tOaf5?$3oF_0KVQ{dNEUt|v9J%kigq_MGE@%(MdY0Dj`VQOIZ z+Xv~qs1%`P@Gbi#u2CI=xn(yIqi-5$?mriq?$X{NwPj+*{~A5afrdkWlqOytZ0HdT zr3q}_#=6GNzSv@p{sFb=b7G;ZqIWlb8_fEaw_U3;8p%%sOQlug%41SlMlB!ki+p$r~$eJ;m zvTb3t_E0;kJq~}eq;lm~n_mf;u3*lIAJPhqIZ<$5m6W`2itUGIU^Bgce#XE=80?cY z_BiZex?s}r?mrM-;3Ij(J8W&1X=FI$n+yPi(6kAkb#FFi`o7XHTQ!9ml8+sQuQx;C zF70ZSmfMUSLIqM?lTB4bMWALHW{kr zFv}#Cy=c4o%~r<=oNwDiR`2EHuJgTByW!0=!U%bd)V_h? zq>gJOHwOia4RfB1m(4*ccP{rZqbc}MsUA259#Rr&^uya44P>J4JXn(3ksR&NO6I9v zG~Se0Kvd1(^;n&SxKMOIju>kn63z&}7)GXYSTI|Brm85<3WwM}WK13Rl-!CrXenjK zP{q>sbosuf0}Ep$pf!B!xk$JY*SVy(Poq+@Q7+oN{AGFItBmW4N9LMAUnVu`(DQBM zlGttR?efGl>27uF$xswkv7)WK2(aet>ExjK4Hc&#gkVX2Ua^$B$tV$vr`mX&se)sQW#+)pCJ&YJ}$aL#rIL8Z&jv%^GtZA|sk=CXX zKD>Y>iu}vxbx2TDlam0!VOu7Lk0jXznqRlOh{r>T2eT`gY4v^nSk=W3uBVhhaim>8 z!0F5@gxM&BXK|__O~$`dtD~=He|-+~Lex_bjXScpf2P%>NrNn+B6q^+Jg3sn0e`(H zdBzW`ASP3Fau-t(SC$Ic*LvZVgIG*_I^av^0bh6myx)B@Uc+Y5E=cMso3PC zuktJxgI>H-)1u~<3+vprkO+JIIlC3pgjb^4N`{vDA-4C%vXzEo1Ajy{pg+uXc8U$K zNy3Mjaf-d_eI{4;QZM}X_Adq{Uw5EX{F#r*w(m7%vC_VOR5x@RZ$f@MT%~8RSkc}v zvNbT~-GohtuS;yaYfPr=#xl+JTLGdWfn5&)w~W-eoFc)IZemAs=`EAn;|tB+MoQZ& zWEz6B|Ay8W5ecf&5^1BU-pV&V_+Z zucHi0SXuMTp<<5z8UrmCZ&EbcY|G8m+7P;0_mEv}MB7gk8~ek}yk1r>Sm_$6#^Ro{ z)M2v9Zd>;(|7;E^yoogS`6;4Ah7?sF#JcDsGaWA;3r^*?rvAoFViSta^jzQ7x)*fDe}D zt?5m;bsxhuLQT$Q6<(Hp>1nnF<6^fwXjR~Vt@1i?Hwfm6fym1pjcE)Mtp8oq7#9|ki(*E}xbcmC$G0rPGa{On*)WR34?4tlm z-b~UMUda5Y;#VlUxqy8d4BGw`eU-DVW1!&I)!xFrjhO$Z026v_i_5SaOT5eW6?|BS z`YVxvKX-jx>^1g=y~@dYrw3}MKy*MpsmdQ^NZrc5ZR zVv4CGLR(pX3Y?ZcsNBfhpPtt1z-4lWo~8x!pu=VM|9OskB5(U`-GH1OvbJjV^sh7U zvsDp7s=c>)bss_ZEKVld_o|34t$)!2+Rl98^3+7|q>EoW8yo81fYpz?F=V96(GvPD zUBjS{!Xl1Ur~3#3zlJHo(ccvDBvfH~g!swWPOk1Br9Uy_$$KWLT0`uB0($S7i#w9!Rdoiym95Xodum=+DsEc_cIFa}Qz^(;>9A4^i$5OM zUrFC}wy>AIw?Ca0_hd!$9)n&3hANG(aG>or7de(o27Dr;PgB?v`a>{K7-Hct7dbNHi3}abq)9b zFevK0k5*8Fwim5vr8S~9_MQvtU`Fx+*+dmgfF%5hyiQ7exFIi>KOIOdvIHFUtiE`t zLX{3EXVH|~yAv1~#lg444m%7q_5*Kn|6s|Q*vx)OJab3a&<-YUWhxGx?LPK10`9r4 zG`2a?Wjh4C-0!%?^<^{b7T*rzh{Fl6!!4V#57$n??!drhbx@3#GJQ!QD>cPzz@F(3O!b`Y|B(vj4L8jNf&b zQ~KAksLnvi6u*`}{WARu{@I1GuI<9&qULxzw?vU>_Ta5A5jOOuS1v}w`R~}yqsl6Lm6eq*kR5Uf zbnmf$XYdU)yKa9^RKEh%N6wBk;s|po1GKR20L9P&Ab&S2pEMLXur?7e+Ivn<*}KB> z+sW*r<77EVP3krq#D8(0ncz%GU&$+tcoNLvH)xEx7eKVQ&<}twvQ^!E+7x{`b_TpC z8FSC^+QOXFLv)Sj_OM?aJ$bQHD$x(sJK21|UXyNU`11ab^O)d=$myZS@;INE_VM8A zFFh)Avc=u@Vx7}kbai;RY+n4S&#BI!rOWM=^M$+TiaXK$6%5DTUb0?hslomP0qx`K zG5%4lMe)k)!1|Y@x=3oZmL~@QWe|?cxJ4jUcs0?Sn{iftBr7I)xE+sb_&eObh98%L=fzwziB5$j2`rP)+r!l<>51V9O^w zd`~nR9udBWo(;c7rpw0-yi%Dl>8HexDy7>Rh@jdG7f5I2z zb>=D!u6JHOzLg>&HT4BOJ-vNoDc-;8?VpLV&fdN8*BD-DsojRhU9+U1=)k+{{DOM4FO4g0*X;E8kVuWeMQoLi~1;C#hrnJBJTgA>st3YySOl(P}+kr z4oJ9OPfbnD1Vn^0{y15Ga^1+AW%<~w{w=W73(u~mv2m`jxJF&WcuZYhKJuoWpoBXR zjF<7J+;-!eP_U1rx(@BfgM2@i z(Emp|v>=qZbg2}^Wnuhxg%$_N<@l&KY7AKZy_NoD(10>ScO!Sd{=XBVf7Req3*gQ9 z&_sXK8!9SL%w~0Mt%QwDDX)e=i^pN){u~H)uu!Wjcb#O}YVJ$QV^g5GLb;G55r%E8 zCaJEa(I-$tE!XjNlG4r8G*9!>f7-(4`q9y&Lo!#8mk-L%&*#;sHw6Idt5043slFKO zgB4FGaIZt`;kNe1QR>5(2Q=W}ZWH@J?mH(ftz-suUQ6VED?aZgCJw4BS7F!`lk%96jBI6#vv25w z|Koksr;_-p_;xJ;SRkoURht7shtYIhO8C zajiNn)|CEdovJHn$QUaxdpLo{)cv?&hUZoej;W*a1N9xAe}?C_O@Dh!s3>aWJUXn! zju~kObttPv7p{tdiBC=PS)TLvv&<8HOF_eIS4+jWflZO*j6a&Qgai>J(Izy~#vzyz zs1s95&v`8tpK1(szv9)Lx!1@lv*xQ%sxz5i6W`f}V|cc{nwPdT!XyKTsl|eBg(5;Nm9&%gZHKj-x>5)Vo=`iUPCt;Goy%A74Ke zvVHz9t9DO(2B)2;?-GW+{hYD&25%(cXZABhK_5u`nJL+sI#v41sJkFL?E+^Nq#E(<8rk|~dpaIzXrzUS#_v+p2+C&YxMRcx8XLu=_bwHk{5Ep->b`sHoTQ99jlZbq9Y3&uk$Cgnnx_@O z+dpn?Mm@RuUCB1HqJpGS!DxnS%Bcow$l3z=`raQLZRK^j)3K1E=N7pXvLXoW!6bq{}{-rCxc2tT2+GXIKm8|G7r^R{S!s%Mn_a5Yl~ z=NwTlBY&kt&i?zDsk{v=hUN<)RdsT3{h&l9@2Cfa%-32i)NJlAdd0tL6|grqf9%U3 zVDLga(DwqWR-{z&pcxXm?64r(yneL3t+nx%ZvjJkIHLH7X}@`E>vx9DRJY6Me4RBu zHkD}k??7GFGv&uQ?`6Ivt)i2BTAMV)Jngiqq2Ze$Xr&2cHma;R5Mxi~it3^Sp#Kzb z@Lku!V(tq|Yx@DfOi~)f0@C1JuMzB1)5h#;zG`PCDfM%Gg~oWQIpe0qh08S%6o9TR zbJ#r!bC#X5e4MSI@+JInI#R_>M>d2>sM7v%uo}h~Dz0q^`t?h|rKTpHh$j9shr(Mu zhJ*tqoql0-ozQv?Yr0|G9>^r#mVi$4?=R_k3!SSK?}ZPhoOVq)Ipg`1&Gq3d@QUw; zs;i<*OXcJ489xx!4K>U@$j|e9ju?o{Gk$MTm68l*v*piy?wedgc8gE!4=Uervi`36 z|CoEn=sNc;{HrlA+if!ArZQD)K*ftuov2B}8a-Z(K&)Mfc#=T?Q`|dt( zRjg^0D!yq4t~E*DotYfx0WQ^ijH&@aQdFcncin(6ekh2hnXiR6!<=jMjnsJo}y@Rf^3rpQldD%;wnsK3%;$GM!KBR5h@MXeYE`(hv=i#QqmVYe6;fd~Ue!N!RDZRL# zSP|W=2?^+qOAb_0fL}G+m1S_ASTsQ;X)=$z|MnYk8I)BIT6}}+P<><;s6X6`?g*ym zOAC{IIq%VIf7TP7B*mUyMx^vwj1CvO-_m~bBqUWI*lhjen%mM{=@GJ%=LscP&5$y9W-TS@x}Eynt8+%gx4EC*cbQo0O%CVScm{csDn%s ze9v^iObpZLSFp3IVN>#IXlNi``)=5;#mS%_9TFyou|F85FpJ~<$$Qnm$s05>wh#}` zH`FGv_+)PNEeql*;AO*oMzUi8=DY4y&af9sTt%h$*k-{Rh}FJ*HrZ zbnZ#ITb3UB;e9j6d8yZfUsH&x?94HihT!R=rO@k*Nc%JAZbRti!8`udHm64j+@4T$ zJ3S=Su+MkdU;Qwz>+P-sy`7~O3=d;tEg|tr4TMe*`VNm5ho3%dMqv)SjnyX7U&H4M z1?jD;_A(l-m$17z+xRNB5ULKls~e_tG%{&3z2MVtI)Kx=EE|3t5m1E+p)}Qy-Ii;S zfN!kaCw%Ejsp8`H{JnH5-2pS*OhjeE0XQ@-W~CuN?h&2se8q}oo8uSy?E|6@$ni!g z*{w*R1k27;NVsWFla0_dFFqTk;h5YR>p61#MMABo9FV=?7d6f9hDm!W&!%M<0;n7Q z??sl-pxf>Z!Z{AP4HvmDc){|I$CG4u^y-VoZw=$a)j1Xo`0BPIRiI+hUZ!H`&N*}f zH5HQqxEL2R_PY$~N3iJx_j{C!wnB^TMY)qyMtypKaB7X}V=8}`yZSn+b&E)`dRX!) zXE01;;VPNYjXy+p$sRw+gA-4XHxg@640;{&{c6sc4NonsmcOyC+y(LIowJbKfrkS@ zXanJfgp;9XsYoOgBDK1K+NF}3qce7wwHEYf9SF+TtC$# zjenN?t5Tq*xF)XSE}wc_&hW&QCnB0JJ&X{cV)JJ0_F;EEQ>FHY4&iFA%ek^)Y7?u= zZZ=U-cgJ4*YxoAG+UCJPFT=|Ro!>u}FY^c9(?PqTbQV?OMBLAf@kd{0>u)e?=RVe9 zKzj`mh$QodA8OMa-(yE`p8tmP*NobV*PXs>e@d&Nwd~J=IDNg&ekMZdZtd_zi!`Xnb2ah%F^)B7DhuSW<<*YotaZ@IPz=O-Z2V2hea0f~I z82eWGzZ|a3J3sO}Gsr9{LvC6>852wYgC3MbJ}66ZWME@p$fBMqHwi7b@!FbT_DJ za!jR>7#-z5u8nNF{j0mAx7+6qBniLPbr+tuaoCf!4w&_}FBty3b%qzbT5Xi?!0U6e znwkztDtZV%YXu!vIuQzsZ#x}$N9*F=!}GWHA9A$6(Ha89iFeoUqdbhEk3z528J%UR zJ}));dqeWHYNNvJh<%k7^^pd1{nm&!Q;PVLDV6*eEOkby2fI^}B8YYYMo@AIs!jsOr0;f4L4OZlK+odzU!aJB4;wnpq^@N5m zrSBi0;JG81>{vkOsT^z+jC`Gmofc)O_(l}&Pr0RAsnJBmD$4?AUatz?yAe=G;NCq? z4k;_ETn~wk!^q*v#aQ_n?{MQVB_sr`dJ+%(hbbe+l`~0(`q9;FsxPNQxx-)xS5jkk z4U&iy$yx_>+7ML9b4;ZDCgdHl0p4qi%o;^w=H^~nBrp(00_-nud^A@eH3s8~OF6vx zk>>Y4(VXegQYvua(tpMYYsBP$LE%ReUhoBmv!qY9@posmVn6Su>`t4+++IT`##;&KYv93L7HCHs5rD~TSr?xUpV3DN}zXV~0Dx|m&~HJQ5B{e7IN zdNGg5|LlIb^ZRWp{mruHu6((g*M;GVx8|)^2|qEoHkhwWYK=RG09TvaN4q1TxS`7V zUDd#CkpzvVZg=|<>I@qEiQ+rcIQgd~W&-hPNlHNTi2`ITE_3Dt zWx1~&=Q~=M<;!Y$ZB1v*1k(+FW8q;4G{Ttqmi)o= zm2t}=&2lDg^aI%H*CToBcXv_@Hzg*+RoM+K+}D=tIj^UiV3ZtU9-^zk$D&j*_}Q7c z!F;6b`7Z7!nj2;)!A&(}Yw68B?Wq{373AIGa2|zPp@Ko`5-v+-BMI}7=-BGSiiu3f zmct#Pw4>YGF*%^*v_Mh^zO{>_+|j2 z3#4J=!@}R|O_J~=d`aF20 zHi1*{_51tTvvO5AKV0Z$a63z-mn;I2_H^ryBzeQ~bMT#0qV2ZeHdYCpoDyhGpU+H= z3he#7y{1Lf_Q(x6@E=E#c_R9p)p)48fMFg5Fved zK5ejrV>qz<}Cr36`+^%fF%lk_Z@>e!Bc z5?`tGi=)R}=s?@#u)9Dev1gye$B@H-Twt*c^z6Bp@{tMPWFUz?-_)T-Y01u)t?4>usq& zMz$MdaWDo~m$p=(@|N$Ll^UI@#^!Y5QwjXf*f5=K<4(>)M@$@<}9b7{)(dgn)a)yuOhb{S}0KrQEJ8uM%ptNOZrfZ?US`9Wt_ z=_Dc^KxZs9J>OxSa+6-%b|0)fkVL)ez#qRvn$N#C*XWyK-`A_Keb~aXcyy%Zds9>| z3rm5zHB<}NKa-J;?*8}?8Kt>{BM|(@p zcVA+p^4M@Vrtv`H8x?fDZPb{OiLXhn-IWTo97|YDWwuse`x$tm9l9wjjWvF*N;Ifj zc{U_;=*xGRf=>4IO;|XGqWpF>SFe$pb*7QRq#WD^A2;2omz5)x#o&f7gi{D= z@O;)3r&8~0{&h6#37AJ`#SWH!HI3 zZ&IYYwG3@NgN3o&D|m^NF-C}u6yw82eTl?)t*w#xUrq3}bK>+)KKCK1DaBBSB*^sDOnB-Cg2p=ilD$<7 zbcpQq1YP~BakKXy#!EvBxg6ZtWWLQ@roQj!gSd0J@OGgnjBpbCx$+Bps*;v#r5%1V zF6`(e{Jk)rk4oAp@jp{Alg(-+1cO!yookS1ns0k}D;cfYC-_U@%f9Q%vX*$-_kr)V zRa=*YRnk0xlSB!5$A_Z9a6G}LW7Z9wShZ^>*`3r{H@x}l%&_e{ ziTeyCZT9m5_f1k^LVw2FdRLe8-g}19A1yM8O#gl0f8wm5sfa>Tw6v*wqhY09QclS9 z{RF#IdNO%wEp_Ue&)b8)Myjr1zGg>(HVyP4?crz_STDbwdu48>dEox|jDtBgI_d+` zSLQHX&)bt)J2-JQpKw4tJqw8bu1jpM?tF7V*PUJ4ME5ef=#sa;>U*%4%i3vbghQJ49JqsRNrINEvl6RknvdQsw2y?i7VFU-j7Z zCi=TpYT>xpndhPrG`Jr0FS-a#XpRS)BWm~GYbF!g%-?mdjH5ZD=bEWlh9YDsL57u#;tXlBYUD z!S_+xrK*8Kol)?3hU;1k6$azam~EWsW~Gf!*a4LcbZC_?-3L#!#~StT_zRW@{~l)~ zOpce^$`?a>Dk{!6fvO`;`uAsVo8OJkgiB|@AG}^2Jm}#pU*D~tHN)QL+Fx|84l|7y zZB`tM*qSe^eW-FcH)S0;KiMo8Rv_$s*6@Ait*sK6yL`dtSz*J;)o$~JY<}NWLJlnU zKg*=E`Rv@QRW2c)uVfb%7l{=Ke^eTp9Xp}Pp2{tcvjTdhCjVq?;)V?YFP%#vA?(Ol zdZEc>JL>bA4J%ZeT}`arCiE*8Zn(lWdtoB2$BTQ{w3a$xE_xAYb7QLe%8+=sRiZ|~A2*ZOJ>x^g1n4cVHyZd?G zZ!QbiR^;a>eMiL3pOIgbbp*fF)8|q#($;=WAm4zX2LSJV5=*VJaZc4XgBwx6Ily#TRvgXG z_CV2_LtH*Xb3iXusm$GqwL$V25zmt&2>~zkao+*E(T39q%C%P(ZcY4)2g)&~-qvWM zT6`uTSk>~5S;RRwz2M4L3$C{Wp)2J_!fm!HWMy|P1N8&4(K9y*wF6&El;T?XHF}u} z4~DO}=8kw+SIa$x-nXhbF|EcqOMB z{6Rqf+*R3~Qb5*B7|8YJtM_`pD7~3ivB`P77os|Ocx6UhT-?S%5wEId-~XntKK;o- zB?9@GEzZbHpCJEl3Mw|0ay1WhWjgvW1_#Vx7ID8;hM|-OefYj_pccNzvR7GDd7tWL zU|?E%%{aq(@ zi8#eR=gedW%6S(QQNn~hu|rQFjs(0?%`DZ6X#TWc0CyC(8R_V35sx+euuX^i7UV4 z5I;33foFPuxqx=@0wR_o?BsqYtPmw`1Fs+u>!k-kd8DqxGQQ=Jl_kw z=G0R-bq{!g|=*cIIU4;BL?L+gu|N%=eSn0_CjLfyd@N%-M2bxxVYk$w^FFS_ue<8CX*8 z-~Rk5WEu7^E>IE&$T5fBo234wPyL_o7W#h#G5&w?3B?Ng{c&h`_!&TK``@F8<;YT} z(tN(+PbAxBXAmWW%Mq4RI_u|o=UWtIwuhX0-VuxW9Q^%?eKhVx2~44Mc9i}=RPilI z@8$Nu<$kue-r-b%S$m>LtJCSlW-!s#%l-PmU@U3<)YbL%b?;=Z;IArO!T*5@0I6@Q z>i=YrJ#%xI%Z=9a;-%3LLuXCfh-F&sxU|X@LMA3AR<8GFtFtZ5UN0?b zN=nL=T8eMH?ss%b*&m&$_j>RY!g$dL6IX;vl=OKKJRCvhoxVTXMTO@D0bJ z@9F6Q8yXrC6%&)yCdD!7zs2;hUaau(dFQw?Fd(8CeAogSdcHZF78y$!86WSjH=nQL zY>e}aJ56}ErmXE*V03N?Fap5ZpuDfyY$rUn6MqUQXZt57V-dO?5E~d8ZuSJi9dVI8 zPp+?PdumU=prCRjK0Q94ch<*k-A@-4dB(V%uC_Klalv2@KjEy9(s2Lp+$xba1#|xg z(SRd=kFKATNDXsmuCkRZyWCrVI z0SMAj-65Z-Q7*(Y85NBq)%&5Lc*@cd6xqWeS6)U&+4O&x*u0V*fK1-vT|#|c7#SU% z=`RU_xF_>bj!6)^PK`@-1k{g-k7FY~4^7cVKok;sJ?H{7+M+J11DEp|KB3FT`+D!@ z%Fb8Z)8$5Gf3t5>`NjeQU{FYe5v^w}Z~#prQ#(i|N@bvmg@x7jxR-9`lm+pfEQHnV z#^g6}^@=~pA8tqJJBx5!P-o(O*6U2CXUghCh&&ZMtq;?sYUapHjLCd!3qk36{Si23 zNtrizRI2V*xR*2X(wl4U=Y2_^)MqT?EqNRcVp>4@{SmUs)Sr-$kXT(Py2VL{=Hg$k z$fl+Id{7+{ER#1fE$n4vV$xFY0W4%6>Pm8mX@cikvg1XgS}!o|(zxu)v}cSX-aY@^ zrC+^dr3cqxW~P{y+SFtp&DQ{IG>?lAU`0-u|zG3E2IiE=oW3zmXnL) z`ZOXwDZ_LZMgsB{H&F8PME!{hkTQzQiyoeyv+t5)EEk*Ye=I5IEYzDPAY5K zMEVDs0S4GIFpf*3M)KO@Gmlf{i2l+(jiXiwSpFi@;4IR+Z ze3kh34hSjCqvI{a)74BtbkT?dvCA;{BbY;Xke|hrl&R^>(JWjz<|jFSRb5?Ov#(-c zj)i}CO{lyGvagPhSBCYjAY%SfKzoo?hrCu*FPK>=KKKY(D2N5kglXODp-HYW;x{kk|051X}*L zLeE>V_gRL7JWkw+eMxw6z3juXZ~pTvOts{hw)RF-<6ET|t=D*1)n(SapYKl1Qe!&y z3^K1OV}Md?8uR~l7nM~holks3tg{-@DIpvalHOsX%h zF7C>oTN4Z6OGbL)kHjbAulFsElfw72t2GR=n73Cn?_CP+O57f6Aj=4KHyc2Y0F%g3 zEC=+o3rr#NDf%pfK`|Sd!J9a8i5Z>QBH8b-2q$7Tpc*Xl*7Mp4KHy>?T6XrDMw9V& z$sz9yTus>&o-&z@8pUF&LFsH}4CM@sz?gh`2CRb_I)P$#{kg20%=_Qh6Z)$yj%K{6 zPtEsvo2)M}i!~FhG#V^=F0Rcs0F-%n=3SNmQ zz$uEqWiv7|n)O%naLCPolm2%Wum%UpAwrC*zY0SM9o1f0wpH2DG< zKlRWS9&|r?u&sMt4N=bO3;KnS5EJviXt>>-6hje& z78%9Zm)rzWk9{0jr~P*wRlpkrKiVJ9lvjTPw%&9lH7*!FG@F8H$%9N!oS9Pno$G`N zMLzAvj8ef!gcBH;GsPf)Lo9yJJM=NuC(fWxEIx)SQ)+B9o!7mgCBvWx*nE&kzeUJA zdpZ2PmK?!WDSd6NZKpTaM=`9i5`HbqxZ zjU#DlCJ$y~2k!Cu`_U{uGfwk8Fg6;Ww5|y6?(WQ7byFSUd@1>POwVRizD&&&8{msGC=BwIsnx>* zmYc#oe+?LU7iD&|N0Q#@QvH!JgW)hbt9f)tNw&eSVOOOm;(t;PfTI(+(^1P)_xZj> zT#)HDPHpW6NLG^~yVhe(vAiF^+7!u3%S56Ho7`^AVnH0@$YM`@+`!KBDb=oUOkBJ$ z#b7{;$bKrofS;+;bh^-NvZN}4dlA#w*_k!OxFr8JDaimAuzGWq~Nq=%8KbYHEkj*gL^r!J;rH5fyj!e*J4 z)=l~XhblWJ`^&ez+y6u9*lEop=s%W8$!QQ0QB))zyP3RjIAK%Tn6*+qF5yBv-@Td@ zQ8_44yZlT)`iO97(EY4=f2NT04X`Hu6g?;dMFWgQe|qoybvXJtP%7fWAI;LwUb-?@ zDN9N7Ttd{|ii@S~B)kH~;Zea|^nXA6=Pv*c^-U89{=fXg|9<)Z%~#6+Qi}j}{-<=|-$VALKjOcj>z^Bzr{?o7K>X+TrLHkTqzBd> zQl^_K5%cntBc#9W?2@H}R23Fu)E4vj5+AXY=QBwN(|7@6-KbPhIm5IP?IZ-3nr>`5 z_^>L64;?_Yhh3(UC zBEn$X7f?gbFzh5HUSgzg1OG$93?9_oww zcaz_s8|H@-Mnums5f}}1^es%y3KMsoNB9!wC&^VVA4$qwDmSvmex_XVADmgKecx3$ zu$4{Q9xXy`D3%ed-T@-XH;=&uzuUqexc_cum6tYB4&#-67A2x)BE4d?vr(vpQ7s0_-c1g^N8)X z7NUVg2619gvtjCxnc*oKqO8RLQrmfZT?dom&6VK#Z9J$k*zjy!CQJRkc!kZ| zPr5@b*pL>>95M}Nb<+~d*JhgLQ{@#QR$?_Ma4ABXPd(I8LOJhiIeKnLC-~npxTIPQ z$vWcwk$(dxN7D-(T_L_;uj%l`IkpED<*pHsiNG@&p_+C53z1TlWQZl9l@ml&NN%AJRF`hNXs>b5DBjwrj9p=q1Oa;j&6YM?2+o12lTw4>u#9MkK zI;+@gf<#?MkO(t|cI(nXH+1!M>rR6@bcJbRV|B0slhEGrI`Q;iL^l3u4@Sp@qeQUY z(qI4d7;=&`1E+M2tmYI{4Zd?TeUhD1HVBHpe5rFxI`D1XIK}p7KGv%PV?^vIzX^FT zPh~@BQcZndyr@zD!dp}^B&JqOXV|QyBQnqr>e{L}8$}oy)JY57qphr;qL4(VixwUC z`R@73u9B1iv!K2)$MCECnQVqj`M6YvEyLrR8Uf}LP8gZc?`8sTe8zI_kAvEet$f~4 zU$UoR6>2(2__*UI*pq*J2{Kz&*s;|u8MI^>>;whTaheJ!%<&qITSPGPD%nNn<}ryN zR3;nF7>R-!6v;AQ!I$6Q1v}KJZ<^?SpLZo(x^y~bU-J>I^KUcQkE27F+5f#r71{Al z{+wdSlkQDBk4M-hIpZRP1NDT$xn(rv{pOo6j1=jw>#0WKDjqX1dTB(f=-7_5hQdAb z#%bC}ZsgwVAIQ9zS25>d?*5>Rg_kxvsy2hz8A(0a_CuYt?cQRIiJkAFoBgHURiR+i z!^6X_?vm;6iVI@rM4Fh=QrfNU?Rsipqm#7Ll9n6=!O=7VZMk%MgAkS!aK!r8>MCp` z|7sD@gN+$u(XzOj>0?iP0JI0tb8F}sM|u(nb`Y}A3J$d{z_GGutQv?5yw@>-Gk099 z9kfjpy!VyhPpuB;z0B%)=I$ z*qE4{#68Lpcx;Au+)gJ{cBxl(&dwqh7G-RXt@)upbw!sj!Oy>HFC5%f#db-0Q0+zI zgd6Vf>Ah4lUL@Ag@!mXf1a!<3af3POIr$*6iC6O}B4wxsBHoX^Ut9GXB)(L^It$Oy zVw*HxDjNCuRu4}fof?gN%j=kO^T?jUDeBsOjIM|4?A zsehxMdqf*xwJCK1&*6{LPPt=P!;29iNYACGxEz~Oi2*WOhOQ;B>Y}9+q(xC$u#*=2 zdEORPP2Eo-QFeA3aTdin>}A;7&jpujT(hx`sd8%$Yh)S@GTRMFB}lZCoCsJOhGoMk zUid8nOF^4#|4N7meU=iLsBWzzb(WZmF^6Ouw0!7t!)H!K=a8PiIN_9<(s^z4+8L{U zM~!UntrcLKNr2#3u22Lrf@h=6?%ly)TED>QuS5tw2Y;=SO=9#2(p6z|XW6rkH>4nb zn6zlJx&*Lt1GR%HlL4s*k{%Sx^6ao0DdMoJf#m;)L@bLegm&qOzMwam7~kVZA$` zG9lSjswXUw8RZ}s|6FbLc*3&(HzkFBL5p^f=X`K~_wu^BsxgF;>ACb@CWZo0!kyN9 zbF24UKh3z$kLArq!nt7;#5_c;pI?$R`uKax1XQ*kQ`cN7Gv~IXoDi*g;2VzYTR1tY z_wl(r$-DUvi7Gjv7Tza+KKxabig4xpJ=@>EGqXRlbSlyIgU4$SB?SxZB!!;#y8&wzKbXnief$ztxD&L-zKF=-O37EsXeStNu9QIlfPkOu;WpAtIs~9vC z-+Em3TvB-ig5ZfR(Mdq_HX#Lbx@ELLG8|jee4`JLybFY8g`?}O*M4qW0nnq7jct6CP0>R9z#9 zUB27i49GMhk2a}OpKk=l5(V|_jf(YHg{X8&=%N9_k7dy#D$A8qZ!r|W`U=x9q~T@yfs^F%k5Mq1U7B9Qwkj7Y=>ej~Hb<=gReADwhx<*{bbAn;3qaCxsDenS$v>AW< zajf#iLaB)Er5QY5h%fF;=^z0{3(dW2Xr0wbRqYW5MgYRv`jEg|r6Yj&NRZ{I{_Te_{}NU0Kuh(~XQATOA9!yG&Q}*XEikbo>w`>96h) zxOU2PC}*R*=TBquPx>z0%0Dxn7H#m;Q*|S15&B)#NY?Uk5VUFG=niI(xpp6r*o}@= zRk}M}*?OW@f9l=lsV`c4LL~_wAfVAOk6NuFhe-CTurgH)4s}QLQioJGDrS!gDnSX* zrvfEaidHd}R&eSc&nUbYOx@UcsKK8ooS?1r5WV$R7|FrK5b$&);o#zpzQUcvlUUp# z1A%5dv?N>!0h^EC7C$O$b{O$&JA3=#9M>C0eeN%F-295?%|oa|)zW9bx>+9mH6`tq zGD%keiGJ5U<-4I0jbqJTo87ogfVq2lPKG$oxYZ(szsGao%&!yTVe{7~eElyQDLtzL*4SEtK^P#N|_ea{~3Ei zer~8;fXi&r!Ecqf29#trop*#ujFFL))Y9Q@S17CN#==|QbRB)PuIG3asv}+&d&Z<~ zn`osYD?wUP>HT)9!2wtMdP_T(841F;u7bBhcl`NWtqrMsNlk*Jp(3> zqKmhAGlfHNBM730Z>BJC-_v9pC7OA;ZjTFZN#{-zA+dDgSj8mn6MIE1TtA1g&T7ZZ z${yFRE_|uMuE*o0IwQrjL!v+&{L^=MnWR$icH?+pr-_#JNgOd|myZfLfe3}7UE`y$ ztLb2yzi@&IX<2iVtvBMQIS?EJ-e$l6A#liN z#LTWxwAhqWZH9Bn=#=fp+7-QqOl7k*m?%Cq{`c``H$h{I40JPvikSmCdvUW1HOI(O z`0{JVjX7Iil9{LO?W4rKNGT=_o?fbZ^I9}20`8d=;nbU=_K#l$ zzP*}gGILvI!nm~=VKawF^ep184a)xkbMgNIbK`)d-X@S}goc3`V*d@q6;A5}qs*}q# z?8hB}vK7oIGGpzCRE&t*?)WhHJcvj4-pei5lgUEGZI4Y$Tp`Kk(Ae}i$_`>cce?9P^mt;NV?+v_T1@naPzeziBXHK7ANKV@ z^j0KgU-eXEBt%9nG6NMmQ*SQ!ErOfd%a9vL5d}Y+8baQSF&Yh-K}@tDt#L$8B8)J2 z-$BqNun}L&9<5+Au-JWC=6{rY2yA^W5k#qQ+h+9pmTi?$Tmy z0&;*>HkDO{T!tx(`rnGdJu4uWUk2q!@1Q`o9lIz z`TS=`0RE^K4gWT{w_YuU15{e!#{cjRuaMRnwA4C}z78t#A201IXD?G{@efYpMUTD? zPV`<6bwwv1LsC@tJDu#Y$QVi>P4z%I7Oq&6I&j9>d?ok&iVSMo!mC6%5zL z&V2@kdh!-r_ykuX<;t1!q&=gkT-)=GYM7|@Wt*FMAoD_&nyG#v#4YQcE(&fuIDKY@ zUJi}XpVG<9RTqT~*i2Q_Txe^Ab1A2~AKI_9>|q@$_bE_*{&W~+9FvhBwy-+56e(dV zr?SXyac>pyw!v{*XMfLZME`TRo|uX*cWTT$g3T!B`re0j3%M3V%YeavZ>a%i0EKuJ zIR5Q1q7borp%@T?8sf5uN{rEcA60R2H`9;Na#taIuda+4XepoDgOdGm86!B5*;psY z_F)3)!Sq&uPNSTz=F_*-Qo(^>(6Z<+U8D3Z0S80g&lo?pW2smjY<1V1sCs*5zibA- z(fy>cWc(-2fcW`g*HUn9H82&DYapJ2ExMrlVzdIs;?(!Jf2Wl;^nm3Q8yAyl1*hzj zym<4mLtW4HQjssS8mH-Z)(lgdO12NT5a8~!LVoT*8q+P;AL1o1FK=d#M`F98^~^6k z91aiy2=MXA8ce zGz^I{-O0y167n3POIeQuOKQtLv?CKRt%C!%#)kLbdz`YE2ougE*3lVAJ?w7`NMNi)){`--TDrbSgYE3|8oFgqIinRY-d@ z0|LnXV=(>fg0K)HVLYG1ln>Z2Xwcyr1520h4}UWTP4qEC*M3p)!_cN50Bg?YW``?v zqU2}SLusH(Ew(sDr&FoN-R2tZ5vDq9qB}X)xfihDtC+d(&DQHS>FqfBHr^kcUH0{& z2J)6IJ@u~;NRd%f7+SGWRXw9%ZNuk>Q$F{)xxKDw$kJys&m&?qSrH%Uw>h;IJNvGE zLC{&UgHjmQx)~77d6=4It**1`eSt@s?(gR3+m0*h z=M@^-catgS)7jbS#>~dVBsT`eGS-3?XRFL0O7)&cKPYRowz}FkFc1<5kid>j#vA4z z${3xa$VS#sf`xmxzT?IH{`~#B?N+ky!qx3p{3SMAeV#_R#$9TlgnFB*w@o(kw*NxMg!k9@_g0*r6zGC$oRbkBOoQ!FL5pDxgTdn`e% zQquS2Ju;)@V*ncJwD)d0M-#Eb&L?hk&{M=ly&gQ*Nw{<1m^}W0%cz@xGAVcB`Nm*2 z*2h6keA@La>jUtqF>tG>sLA>mQc1>PycUIB4h`KD1;`tpV14-UvgtWjygecbA<;Mt zzcVMn9bPMy^${@cJM!MT*pU=kc7`_@E{9c(YAsa?y8v2>W@AzVYgnVy{>y52>q=qcI+zI1O=T;OL!RH0vP(MO?hRN$L<;|W%6MHr!T_n_M=i}a0uBOCRy zrwQT=(%THui%JGeUV%46y%{boXR%<$bKE1ZeUbPLcTxzr?CeDP-h{uSY$a>q$EY>} zHG89<7y-GskcUcQfBIt#XPynCgUaovV)GQD4?>>aIJBR|(0DMhFLbyyJeNNVtR48^ z#pC7rN8(u2PG1f<-I5nz-p;a~$h7V-2nO?&!+YL+vI@3tQQc?}gX63Bg}68428776 z!6NArqcSrIW4T+pZPe?tZU#wKH_YggV)3w+q|W))teQSq}B? z{$$brPgy~Vph8y~|_jH&LkurqzInvu+Auoh6G4&A=-S2tTGP;Lbnf}w9 zQ{gDZkwPFdc@r&o_NG8d6p8cn5JRepKYVJ^oI%;eum!sD&6mu$Q?}qB^c;@~5?{`t04gP@oe;-mbY>se$Fd z8$TaPG9_+*tN4_7i@R4IudF6sAGjQA zja@#1f5zU3tK9bd$PGt%r`_L#p=>Kd>z5AKk-CB&T{pPiH*gC#f4P**_@M9-xd>!* z%%a{qp`y1zCkHCe82-Fw=H6;|8a9`gzu1bP^7t62nYP^+3|iB6UH2zu8ep2RZY&`6XiZ?ktjht?Lg=n96KyCXs-@5dSrcjiUChmTE?dW0XIhG+Mh>X zjU5`t1Ri|Nv2l#42&a4A+qW+DP!Pk|zfNwm;a$?A=&s8|| z(rLbqHRI#kRR)(D@bxPZIL@HYEH2`IJK7kPE#U6WD<_ve$>bJ>JfP@vM01ceX36`Y z=fxb98e3{6816cExZPhZnWVonWOa{eQNZ0Bi_idESiz=}%g;>!%ss9g3l%jlF(J}m zSZq#9%$Ij)G=4(hX)yl&8GzV+HQDO(+|I~1FZ%7moQTbc0{PYj$ zKM31*C^SHnqX^EIwqd4fqWK5F4$fTH<1?R4}*p{mqng?u}*)dQ>8_h~79`?|*^{k7klO zl^wb|=a`O#(Y*f_<<4Tvl+pleSAf(HK}pGoG+|254Pjy7?y)ft!k{7q%vu_hGPyZD z?MNLnPy~|4bx=TjQSzRj7bQ*hV-aOd0reOS>``b2zQyPK&_lA}x;t`Cuw>Jj|N72hkJAi*3 zF__Izv6xK0TWy^`foA*T*CZ;z3$XvGgBzBS{1Wx|;}cT2pDpgnVn8^X-Ob5jnWpY; z{ey(QH2{8zGc*E%@DHiX8K3M}h<7i)f7ek9uKur-7@)_u4+d0}uauVZ^V-g9I_CmH zha4Uc41e&(L|l9x7i3_q6{^%~pE(>H6m4p1()s;xX=a}}#hz7JS;;j)1rQvk+NH)5 zS&v{o|D4cYFAB^vLtR-hz;(@adV2%hAmBZLtBGX+4poUS7tEBH&pEJN^Z`&7gHG4G z`sQ(fT-gGw>Zv3)l~$+nCF1P_YWa&P33?z=|38OW0<)AsrOYZ#N>PiTvUD*kj5nzYu|)~8j$fBvn4eBys%_C*33u;6Kq^Au(j z6YFQw{lgPOL&ZPc>m1qiqpdIi0Kh^2)0PH|SyID^}yZRqlkN-J}Fm?V94YZJd-k=fw_6=%ubhHl0r~Q58E&X4ty=71x z@6z_00D%xZB)F462<{HS2@VT)g1fsza1ZVl+}&MPaCdiiSvY6N-uv1A=bU=KymjV7 zRux5snOXOA_w@a{uBIf{wpzv-lU}}6^?!O3VVd^G<62Ks` zC~zHgPXL@e9DqtBFR&ViZ%ZC_sFeX%8%3kp90)*|FJ629K59S!+~6LBUz)Lx9)n-!m}2m~W}si>%^(LFmOfZhAAWtw~w5a&C(x&&Hg6mXDe zk9>45N9I3F>7TO?>}X6;N#XOJ-IcCDHgZL1t80UVZ*Jwy70-%`izlC=zk-1M!KvIu zpi_L_=d4jSV+#7XF<)c4J6RCTkro%HxL^C{f9(DWqnX+$P)b}~T{l)ceD#9^nCe|n z6$>ic^92O>Ta`X)i^THGe;P;n~?_+jq0NX?bzzmK>u>z=ZMw^{&0hF?Ha8QEszZ8%2 z=9=9eNIGeS$~>1qRwxp2?AP&F67}Qx0-o!D#3%LH2+^s_P=|frB%>kGf7ujZMdgz*+}{m+WT&fpBlp}JN9$YhoWzm`V+Q;m z`Nuk-l>dCuf`U`o^6rOAV@00f0tQ^`AcmT(aUEb00>AZ-rI_y$Lso9+adFqf0C)9| z1q=KklmCy!CsObK6&j`uhk50#?~;-& zM=$r~z?abTK^CbVd+*9c9YEHp0b?p!;JZB=VqM7q%uJPA-Pq%3Gzw!eN&tS}%F3#J zxy99bqZg?pCa{qI<*WU-4cp7@PypEZm(YMgLqk($x}pC=Uq2^IAuTjCbipJ2yt%f~ z{$$hVcMPIFVP(xPE~F!>F@ePN$QaGthjEwP%z((0l+YK%7LXH&NJt=ZadFXEt$qX4 zB>#$$RJ`ywy{w)>i$xAwV#ZM5Kf69Z2=@32rQk-;Roas`^6Z&xrW9@5()}<00BM) z1R6k4MkOFX*3!}fWFAynuxZw*01^#E_2R~q-Gw?@GKqv&sZx0cH>vElu=kJ?r5$(` zr6R?W$i&1Tz#o zuYuPfKw9!+IEB6bptR|9-n6WMk7L5VpXfyqumr+pYHL3NSn-ddCP(&z}rC!XY=J3EgBu-lrdr$ z9W@n5z+A=HnNNjf>Cbzz5BFVkW(&5mNXy^n!X_oIxJ$`%iYA2KTm_E_0Y7U@_k8yz=UzU(Dia z3fsrTe3quULO);%gFW`$C6xs33R-e2Ug!?FL-*8AyPwbQ8fuM)pI$+x)hr8qnL2KP zesMN%4Zse7><;8)Me7LH@9kODK_`gpBY^V}JZ&)GRK0UDa*bUy!m=R!Q^lFVW* zSGE6+R3+wDSp2VFSyBTo>CW5O%tl7@o4FLugng5o*6V_;5J2LGWM*bIT4SnIBO%I| zvEmL%WfA(%>IOdL9RVF;PoslbDEBk2_h-wyuBjeHbH$58X90h8Yhb+xz|)>|6l!Hh zCZu@3ei}OKDB`Afsn4qwoO_w?HWU-h$FNsfS$PVS?nRQy@8BOAnwm)2*sxwWV>n}E zkdNp1q`^e4fA zd~qYg!^a;3@}Bv3BA{x-{byBEs0NrX{{TO?hTo|H?1VH;SsQa)|ySzL^l(h})oyurEJp_6v=6#s>bi5iB`-5O6ZZX0Vi9dq()5%6|FOhohz zU$IOR2}tKP6yl(G8Vxzdo6s)cu9sVH2>5w`K0?;i&cZtI@YD8^WeK&Z|DW*vOFe;bg0p41JV$2E>W!! zLt00|W0N^Dl~!-_zy~6oa>b7~nm~lGk9@TVv{teVuKWT5iXPAGfznY+1_%}oCjJ_- z4-XHML`#bewr8upD204NeTauMW$Cqo9=~2EBqaqO9-1{jUN1B(kSu&2vMyDtlT!Qj zk35_IV!iF}y3% z5#&S0Vz)kT5Kd=xBi4XdZ<+gnXfJIYK%AAw0=WhD#)`_KukLPc^4-s|lP_bonQ~}b z0sqx(Ai3}q(;Y~7oI1Z!n&-2rUk zOy<&P0nGm*fM=U9rjl@TwKwS=G3+|>H(pcn|Ykwo7$VYSF zIox2ora6sJxevKm?jB5J97yG4gmARoa~k>&t~a^eR+<$~^!L95)Cz(T1l;H9QZTP} z1`~aGpKb&!q634;X=tSI|NGQsRq6pn>n@`z?Dd~7z`BZkT>~g7_1|3D34W8&o7%fP zn30Cvw)1Xj4lHh(E>RnhXlb6N2)wPcT#1vk-Vc10ZqyHg!HU3R&x(65`yD9o#3Cq) z@sGR{L_cjlEs6D2l>6FV!PS2RF-R(a-pFQS;AvI{7z`*Zw&lcqRH}l_Ut&fYTUit= zR29@qVQ7rtR&5HDm-Iz$C0m8+AGq>3;;6UqF@I7{U9bY_L(HTmc1W#Ufuf z0b;pqAmzW5Wx(m>O@GSj&tQUbZ7mxV8oAs58Tl*pXT40y;uHF{AKi@{*YGZ{`TJ%n z+8-M!S8PRb7=8sc=qXeLL=0bFtBlAswfHnF(+GVtV=Y}Uxao@7_Hc~$}5!YXm5Ux&pE5W?qeQ>kJ&)vzgp-ojz ztlN1EVKxtMLT*{Eb#Nuw>o{!W$I0x*ADMyG31sS(!#7IFxNLJ9aC(o3`NEQH9uHje zHTebRwmhU5It!k?x1Sxi%-Y|Tnm+q-v( zZua+4vBWm|E681%y9gtV82xFK48PEBA!ufg9fX-ebC2o}!wx71dm+>lj7kqzS)6pF zzv)HZLqfQH(UQq5xuISCkzB=PU9ubh;eAlYXF}zodG1%kB_&aA2EcXlWGz&D{4hXPrgrUH2lOehckhqtR)81XEHhT< za=Sh`_TqVuw|w8P);KM`!s7DOk?A%#b#!Uonyz_Y@8S5 z?#x+h3BPv0)usCDjBo0k%8`4E;?1{0KP5YEB&hO7c;O7KjpdM8Je4Bst8`clx2-|e zK;;s_v7he_dGP#@34-3}=O%B7oN5gP}4qs~QP^2zM=qxv! zmzRj`;y2?WfY0Nrs&MI{v*+3B%i+y!o<|=(d#zmNaa_#%9y$-%_pBe4wMLHq;{lH% zp?j}n=j^h+Lmf2_h&I&KosLVgOdIm`iqRGPF+)~56!!qyv?fW`W-0v*En+ekd>2PS zG{3PM%ilhY>@6KOQc=7?dqEDuU{UbOwP|G5>q6y*_SR>&$#d)yMJj>i*5C-9JJD-jR-nt0*e4r0C>*2<8~#tQBy-QsVWYALu)LEh{2rq%s?% zpR%S`QpbP~GG*(tFC0)JvREc4k6;h-Le20Hr!`j;!f2T(7HL*oI{2{RP}wBMIJ0Y(Ex##Cl+Rrh*Zq0e~wR643-tJ(8eREOM+=*eILt4vZ%#XtoCs$B1vV|@sxBih(=CX8zRHSj30Dsg*J=e*-X{c`Z#8RH zEhC7S=H#LY*Z2c|SJRIBOp9X~`Xn?%kMBJRhHep9P$o?^q0ySANz4pMgxoDeUbCXX*}0QvjmqQBfRLszof8v63ogvA)81Z(?;6#7 znhBwYR1|aEYBG`t3`sRid@T$*=z)h#?rZe7iHVPwDp^%L!a$~;3)CgvH@rRzQ*ONf zN-$|roPx%_X^Zmb;)#kER5W0^JSk?GhzFK01uf$SThUIqq98_iUUS&2-2W?j{!YA; z^mmseV!URvpf&dk)W=6VQ=t55$q~LOk>PTWM#ri|d600M5iCilf9e|)q#74ZZ-1G1 zZ+tL=+UDODG8w%>w6=+c#iB9yfy^egUwcZPdVtup$z7Y|Sx3pboI;9(q+iZN(t3ML zUAsxPihlMyQq=;kY^*H96W#RpXL8CF7%J@~j36(hkP1%a$!V7FyEh{$%Di*$rbXN5 zEO&Hu%PR&_e+peFmiN*588Z{zO=3J4Phh&^B#}sR@i0jW|0xwxwrAp_g5f-&cgiV) zE1vijRXkWn7Y3e7Z|mr_oxj~GVi#^@eQ!TZ)3fgCe%eu$%f@8N{!m4tGCyO6c|#CK zs2K8L-TkyN&wPB$^b&4&LYZAL*SOzWT;Q_dO1YUDa8S753171DRni50q681{6O=J4 zH{TZGP%-*}tD@-^7vOU#_UWaAx+~J-e}MJPk?Jxh=!Yp_3`^89W04}QRL$ymG!qZ} zux?wo#srJR)RgorK0GWpBBl65m85Py1>G96Uh53c>&}~V;tlYuNN|rn*Q}iumNd`U zF!vt>v-zjD&U+WxI9?4$VH{~kXQiNt;diHWCkd%da%|-UN?Omm>I@D%uIa?WZka2D zhf!qFnsw|WHEzQpG--agKBBWZ)Mlzf-|?5rQRR}-6cuhFpSVm~A3VUT_wzc5({)T> z)4o+No4Hy+$kAj*_`P%uE-bsw%&@q?dxEfVs1S6Qo{>+z7edlUZL3bcfx1KX)&!;G z(wXKBHlu~eYYZg6+lggdO{~Vgf3j7eE(n5MkrvDztvOA122mG%J2(Dn`*6pYu;=j( z#2MD(AUmqfrC62>yW+Av`pH<^qTm4u0`8R6t&p2}tXPpSOJXH3#}~3q6T`o7f+3Lh zud5T*Xk(3gY$a&fn8{qIszS}B@rO7P=@p|thaB#9lKO04qtt+F2&WP?Og;{Lz1id6?Xm7hWpPV zA%l909F?#Go(KxZiTx}*yU?s#X+M(4N(YQmRNAmO`4P)9nUvc}HZUHPXnR`Ex$v95 zq`!8jMlF|VAQvpscm8@q5V`Zn-i`(mt__H;Z~Hp%$?)fol@w++SS?@O!bd!@-nrd7 zqpe?$*!Yc(LFb9NrlJZbnzKmr(lMy+LsDDx) zXP#4WN>!J%p4NB`Uc-;|)c;I$m$xR`%>9~q1q;UXC((Hb-)Nv89*@Y7jz{_Q{iBxH z?CZs)2eNVf>cKa;8Z(^*8r1SrZ{9O9i$2)GXF*>W9asIVczLV~GY(hv3=7?f^2&EP zu-tKS);Akf5||B<4TkOzUt3F^o?ZAA6lVhS$&tZNtOzG9dG4=_E^WdJbs^+psdH83 zH%6Zh7m)p>&kY6>b7Ck44x5bMvC?X>4a^UXL5xvWJ8^QJ@CIf5nGIi$Q4|?xWua>%!I8Be+@$)Kd52J|KcKJsYr+qr(Wn_tCqwv)((;7Z*C*7xWssYGlC&zlNKrnWMYqh(sMVahc`qe zDujm&4YGyZF|!Y_%I{E_;R^U#hBl&{I3u*Ak|cbGtaz1^$%%Nh-&mBW`uvH6Noct1 z$lTF0$DfhbUTMWBBva?_hD=yr+!LY!lhi27=*vH7Y{i;Wh7Gc-Z+oBu(gdrNdU_*W$GaDfUX@r`h+vONhf)`jDR9 z7OeX#YFrWoiah(_2iUL%C1OtGcF`46TV3ZVoGP_FVBare{ON@|!uis4e~)qXs3e%) zeb+_oWeM(2TnOcH@aYzN6XFW-MuaUYJ`OfSx4mG zLYU&X9IfSgo3b$jtVva0V+w-jE@BPorK|%X=Xj3My zB3L=Hg-`j^pERjK#_PwFmX*E|PelppW3Fo?RB{2vq>J7muH_b~Ntt_$ILidvZ|8aN z#Yap-th5O<7jR%Mwp$ZE`PgMi=^{zF^D-1k&4w2!V`Jr{%DnL)2wW{pGrIqUb81S5 zyDS;gxZ}Z}QTquqsvti8p?@Hht&B(E_;VfA=x?y7L?RDv)k?AtJ@;azufe$sT4L|r z%m4A@ ztw=I6AgS@v9~+%Lvo=pWCiYnV)|T#G4OO{ou{-k}6bBy058N3ym%IVLtj`4BzL&ty zZ23%?E+Cm23o)%*yY@u#c}ndU)`KPE{x(g1yA`I)rsizEF97qm`Sn$&(UVb+NF+Mm z89Qu$$g~3nr~8TJZIW73l!rakkMNLhDeT2+;dGVZY5OIzy0b*e$)=H3+8pn@Xo?tZ zjMkuWZHczlBLX=qVD`=^Gv=;If5dufCb-^YB;|v;RPR}tUjws$qtLG4kDuw_*FtOz zNa6@zwz={z0XNq1&F}kk@3}RitsO3G%&XLXQ4}ZNXwU9`Phfb2cB3<8>E%k~l(*+4 zHuQDx(I_PXmv3o*F>B7#zAoNNIG-22G~Q5eRr$b?t9fc>6#VBDw_FiAM^>jUQn88M zW&2DZ=g0RzdNU0AC+}rn0}*94s3>AjY@S`I5J8Fe+B^A}#*OJR+84nphwk(iPL!*c z7%g7W+KaAgMC7LOBA-fA>D;K&G0=SBNKC6URWkw`l0{g;zfVUW+Qbq;A&bXt<3L?{ zIvFSlu#2RwG77OP66&G&CVw$3ZK+E7uJngK7EFo5N?SNls78OcXFYG*-l-ed;lPuy zo@2Iz6YdhE&0f}|)^^n12S!NcD-fAp zs_0M4vEhk1CsvVY0@gSZ8Rr#lcd|YS-kJFMPISK0XRfyLG!_9`+S}Opf=$#zwI*c) zw;`=+g8P_(CJ%^p0>`Aly``je%csR&W?#?99Ae^q3=;IqV@#kLJ6@6tk7-q_cc8?^ zn0DB=Bd|E>4F`QcbvlOLvNgaV3nPF{ClkJASDBBwzwOhC(_K4+(Ct(y%sP=^I2^(1 zjjcMextD*jCF?9nMs;Lp6+*H`nvoA*Vm-xd@rO7 z@9(g?99p|{zN(O_ZJM55P-CmjtDV+pI(IwAdXf*A5f|Nh^ex1zfxHh9 zDc*lZ7>*Ng9GkPA=@*A9+F#ueo`WljwcQDTKrvuwdpd{GWPNz&K54XwuAAHDrz44g zVyHY>niGya@UDgz7ZxR@`$QMA?%^Tnn41$qh_3jKFWEq6m;5QP@>>xU&H&W9=aFS>F0C#W7V>_*5OiB*1J z!?mtpMsXH-F?hfC0c$kDGk>QzI`LJQ(IL1GrS{0ZTK~=HPdq_0?Q5$MPgW8Xe7;7} zsR8wn?h~@r>)}`3KNkgq&&zm<$ne*gY(7(&n#R*w{>|MD7gqNCHlq$y>P^u1;VD9Y zjx?DQEdpQO}Lufx_=8OStq#6F(cBuw&{2Qfj?`!;|m4 zGL2%FzB_aHLsLmUso5T`Miy3Iqw@8>km$a0#gy&}7-0#MogqV#&Ah$jizNp+A>#Wx zU}VnLbr8&f} zIgsf2z~!zJI8={zXiy}@YkNzYC6V#UMlnY!ljU-GVLE>ET5X{YR~GA=#SgwNQ}`xO zV~&}o*wu3N*?q$q+^GJd^;v1@Yi+^J3)8-mE?7Q_l;}#?sPQ7H-;pkE;wQmRY_Xfj zCv}FMO%1Sl$b&vQG#SJLk5T&xnLw`eM|Wwxex2JkDwR4cnYP3lYrB+%jDxGkq1Kfx zE}h7(^od0(-_okDKGVY-^l1^jrEd%TVcKC@G^8O=w~6J)(63u%JEr&3)J<6#MVZw# zE*=~_P9+iZD`pn+p$!4`a4~O>b|Rw#B03_>CDQF=m)*HB9LgCbzwPe5I-D*45W+j> zQ-pmrR%)xi&l&qtIOa3lqM?+U#I)6DPh8l_Pf0HnH9LH|i(dHT7Xc5?v5 z*wT7l$d!4-PfUHzFdkMIO?`XF8n|eU*O&MWDgCy*FxhcJanCVZ50q)3u#v&esDbYx zsUP^5Z$a36J}n=5ki*huY=SgGX0H=vgIQ-WfV0)ri$GvM zf$Bmp!k7>o$w(|(ZYPk8Ve>8%&A9yf(3dA|o(IXbmFumfU^J9Vmf(ui6#m%k5Vn*s zOTd>(2`DI9lA#im-Yc1i2tVAr&}(no2NgUH8cOV*(gn6qGhP28S4Yxrv6<&AhS|Ov z9LRF-q6ov`>NuGzJGAj@HjEh9I?avI2_eoE{yE6l@~|kIV`y*QeEVh1%YeNtRTK6!uBtn1RBam~ zG+NmbSW^st;jll-|7<_$V@^$UEL9*vOyI+A28Y!CYKhL8hlTpo&s2`?36-x2SG;1U z8a9noQD;m>y5Z+ef_}ovz{fN11v=>uFjU=XAttF$^V(@U2M6?xlHs^M)u;h6jioKF zUECCaUx!S{g^u+mLGg^Af&Ok#+Yi;4_;gViKQanPTdPw}09;t5-f*M`Oo5I{UXq?|_yveSH}wPQpie#`<7fm+*_JYrZ@;&1xK)Y3#6!Z%Zin zS$b{1rc!abN=l<0(&xkFOXI&|J^h}4$n|5KXRTH`Hm;KyosyaNDHZCN>_K?O+0S87 zD_A5?y3rntR4fl~3vSztAP#MY+jRB}?{MF;tFX1mSv)za9>7q+c|b`KKTXmf(Qz<6)ZWEtFuVO;MzkT0C|uQuc#3zDl-8Xy7R4y8QG zINH3zgS8YIih6BDu#AR5*57tIQrZDM_qo&JQ~F!J!t)c&Cc~L5;egxn-ByH}dCF&* z5s7b$S_omq(OpOIfjo&`66mJ0+!w?W7bfVJKDCLGAP8Unlq1EU+DO1w`)&S&Da`&Q zezCc5^_tb>{uG>)Z+!c>Eo`B)M<5PTPg^##XlsSy2=mAK$#{kT#0h@6;W*R_XHC@LP8vj%k^H5U_h=}|gAB+cXW;sBWt!laH=;KRW} z&xVis6Kl3(B9FQ-fUx^}OYT~5O-c*7+x#r?cBoT%Q5>@w3h#{G5d*~6`ic+Q?syE2 z+x5%A(J{1iGF!@GGb~)TjsIkSxNSP$X%W7+7ZN#IT2+JhE*4wOQ7GB8_07hj`On~u z@kZ|X>XX25{PdraHx?<9=KdTgQlzU{EUYwJE{G57Esq8wJFsIDKdSRB5 z&SNX=)V+%JACe3mb1m2$h9jzNxSl8=q^neFf^XdU|wDjT-xTlk$rNN-J|iztx_Da;@nJ4xJ_J=WBbv?J`SxivfxnCePeV z6q%)Gnqr5=D9;`{XYqO$Y-?Z;-ckXelfu|>VYM^UM5(VpF>SlYmpxaX(4?(NaxIz> zcXVQ|;a6XkzF`4&!pC|N?h}fm9iY^HsOc;Q8rGy^A_vvi+cUFhOl>LVuDYm8R-f&M z(r6y7;hjWGc)nSS)5o=Q7jE#6G3_W*6JcV4?>)9}Bg)SR$&4{BI}$cp=tJOHnz|P( zB9FN^rmFRNeT{0wrj@>z=yz2Q!U~WTvDqjK!bM zToqcGkHO+E)QMcoqgc6hQ6$t^BC4Z9Qej}UB>8=ZTgF5j+e~%B>d|?1hcffkdBgus zY{+{5>lkHdPT9z$M%dofG-0ONw;`5YVjLaSbJw=}p+U1GzaG~M?)!57_OTBRQjDkL zWCfqXkYx8^lHYHuEAj~8$%1hss^WtL(jzINU#00n2D=KsnGWG7MKI;7s`%Gew#!c~ zU~RXwu!6uI{2aq1SC*8&XG~uoz*^*w?ZPY1Cz5VWTQ5G^GmHz_Wb3%=9Yk}PmkeHpl?rvS9o)j5oPoeLirD)wdEw{D$Ai4I|Qsz&6h`j@8V9DPl#zcD|* z!-TstU9Qw}H5h#8@reXo>|__~YFSmeOVv63-69eKC)+|IG4a>RRhI}Ke$66!@Z{t? zycDw>nmcE%mu=UF>2Rt3iiqA4tc?+(qejUyqHT;&wc^)Fz>pOaygMjz49rJ~A@NvN z;f+KoRx9mpotTFa?0!CREkr9;k;ww?w}W|FTuLX)Mj#PiQ?*C5-*H%r*Ye*)}Lr zH1o{zcax?IANjq{fCc)KAk6Z3%{flYs%aHPia@F6F5Y7;v zk=OrfFd#|l{Fr!4w)ad#dRD0#hl!am>GYl~@y!%tt`t46UnOR5s>d@MCV@6OAhbkt zOuXTNmQ>&(3XC=M4;Y)u9qXKYrzj$mAZF|{**pXy-50u!4I!Jg3v>rkKX%K{plXs5&hwyI;GQoPcs7sY)XJoqhOn@OTC8cRF# z#?{&>pEL49Xc)*v=kB#V?8iXw7MmZcgzlOI(1c@-CSo|_g^8U^q_346sliF@i$fUb zf8iDdGQ`6dpKv{kZ&nOAZ4ER|Hu5p#|N$sH>-N z09@Qw$3SKhhoUonQ+!tVzu_TS+1dGdjJwb{?-qvjsazI}!BhSt)u}Bz0|PRWlh3+m zbvxzG5Z?R^qo6sNH+y@D4E2z`8AGcFvrmh-^Xo0&%|{FD&E-o>NOqn* z9x!r;kh*(6b8kJQ_>_S&S7w*?V~BO3U9%{L42F{W&HzuzE$kH2xysLri;FLWFJPJZ z;`|&=$mt+4Z0q0&_FYO7+5Azt~T60h}enTa_HKkGGI`EsqX>LDpi|x=gOKTH}Aw z`-numLopw?kHyIExs3N^v0Hr{`F)-$RvDF>7%3!Dy zkY>>Um+SVot@3ZEQQjjI{;(pVg(3I*cW|xy%-LEhPb~ZYH*j6o3qgwYt--%5F+*CE)QJ3W0ioo98`H9RA7Tk zZ;ivAswFdm1)#Sau!vY*fE+Ok00>Xd&wqK>Jw4uU0I*7&J(*O>mmPpy7JoXLt0D*H zU5sV$L9_Gn0-lq-FLv7if3yLpBfSAz^)$~XXM37|ud}}&TYkV}Pr`7sKUKm1L+-2G z1cS^{=ZBdtbi}(MbV+MP*=1r@CEN#(2NpRw#?$Q^MYe~DR}$&7II@sm)=y&9s!e+K zd*g2aZ`m7w$c#!z_!1CHsnp+|`gR>2a5IfhbQX`Jin{2z0q&*M^OHMpUVvX}7a(-l zx&aK4fv3_NFt6-0{u@00{ZBu@ROuIMh>N5wvwtYUyy+}Zw4W>9=GB4UUwkm1B?!gL z#cM}dcoH^qd*^a9*)`72>2buhD4 zO_apze!A+-5nI=MH-SFn^gq6zz>Sc7!jh!W1)c>I%tt?Lgs1L{vXl6Yti3_FK4T;0 z5gf(1TocKR#3pd=WG>CP%-NN>rKc zsXTip|2_KY-@zFe8G$`BgK#>3?bbv!|*tL;Rkj-hmWZ z4e~&Gzl!eNaz>h@qdnqZNikw#pnzu0s#2Q$J7};8xOoE}r*>&B`xLVa3#3d;@=_rj zz$M1JAM80fIkorp3a9?_erEmZY}b54?|SwfkKJ00Ws3deNNRTvgrZd1vp!Ka^2YS`o@iuproVj?yyGM*9L&D~wUGaL$m;7}6t89-}y zE-h)m-n`(T4THd1)K3L$VgKx5Ga6`*|Nfr9~7Zg({Q@r7nDeo{vU%U^tvGSOEAoF|PGT!d(Ysg8Ls?msQ_d_?f}_I?3aRYP97J^wkxppw^r2TWJ$i`O?a5R;Mu!>crY zJzk>8Zgu6d{f~+$upi}q_N6rVWAwjI^u;jyAID|j|3yZoJ3Br7^YZ38KK}mu_wW1i zdsZ*Sr+f^D0uxFV724Q_=;92*K|)ROWRVhz{lRo>YL8-(A`%4!h0Th^N^98ZsZ|Ze z-UfZq;>{CUY}lu|*P<4q=mpn9QN|Vs=#qGYS+t$&y*$ePW=f{q1Wqdy_*|ubPx_Ls zyX|v#8}Yl&7ctKFkHqDMy1Kp?)T%_x%pU>eMqqe&97=b$FFn9p*Eco-vL-}K8uf2( zZq1F88)4vLn~i%Bd6x0RB%;y{iQgPfg`XP|mk@l8&YbDO8nWWJlK%0xK6(x5B{V@5 zV8#=XQl3wJP{0ZEN-TL}bwbCa(=>G+9OTXYQWk|OE_-vIeJci-RlwHxE5Cri)cE55 zOc}~n6#_6J!Sj$XG^LusxxHruQ^`ldB!PaA;NT9OGB%X$hfT4J$^oEVkYa1+`ze z&&bx1J%YMd4+Df0n&8?SYMA8&YDs=91dM9=S!kXo`UP@SD^kCx!3vFd1cz8*J5*EO zGfXgvN=khj5Bey|c9E^B8kf}Bor@+B=@okOs-_sFFd{8N75Uqb_T)ew>u(en-nXkG zYm@Ej(|?*PKCY?p#B6+wrT6CkyZS!*+{C)-pmf8~YfYkG5jy7B4Eob_<<>CL7g}0g zUK_tAuc=>8ifADwo^AS;$|MZDC17oaJX|>R!;ahrtOX}7u;@H>>+CKqV4C9=^u#XS zTp6NPTDEd1jD>;k7>U`cJeoN)+|KRORmzGh>;fgYA2XIkTBxjVOOizIW;LHaPH<$U z1Q>RCx;_#}&><-UPZn0nEhm-Z)-;4RSi@#C$~UHhUh zg{@LPvwJXMJ4kZK?M&gS^~~ejQe@bvlv<`>0|}Rtb$o*-a_wEx!Y)TDfJ$hC-nX}% ze>@FmFG4-!;q`+7N0D~O3nY%2p!7!W7qjTtD}`cp?G;a8hZMg=anN9U8nc$#eey*O znbl9B;C3SGKgrZyElfRm$ODbM>^s?@ZwzAw9ts$!H>Oh(_gWHtx~Mi=u92Kp z)}$Cx$-xB^7(X_8^y*QP!tf8k@fubmZ(9+re@qm=whDgN-S~`t&w(Hg;8g_&PE-r5 zydqX*>xI*`q*M}KaO6CKn|FMH3)7gg;us_x1a#I$ZxGge zaQl7gT_C-$c+bAgptt(MYI`x<)J_f$d}l%<+crHou=R7)vS&}+`@Fvu4_puB{^d2z z64?B+=V0~y@mB(t915)v8~hL-&1AOLmbImCcwpHC7SmsDUh(%g2l%W@6^92Jn{d%K zEe+QrGK#5qC$Us@AKJDU0?Y{x{#Z8rQsmfazGmBT^W1FE_+uSc#wn8892c$MPfuy$ z&U7kld4<4K<~U!Bc=%v-q+gPkaRAD3HAk_19xovU-={<$Cv16!?H|KCH;a6x zYT%Q$mq;$ynHXKwvQQCh@Yqg!vT=@@@j6~iW5Z<>*~gD6wxt6*%lw+*qmLPOCl4r| zNwa<4KyzCsdSc77XnVV3F?}0z(2Twlbv?W1d9AnPX!ED+K__`uq%)Y0QOKh3Q%pOUZ(MwX=+k(_+ERFhgPuu&nNDzQ0|w zv~j4CgM%H>TFjxw<%ALy4gMH)tD{PX7RzQ&>6vGKmCWYLZNNReA5|HDrJ7yat)`FRhAS8qi>S2^!bwu@`tBfWiX%~tn^si z^!YmE@pIxsj=I4jMVD#Q>ZGIawBzr>RKo$AfME}lpsYP6^QC3dS9$POSUUkYHvR~B zSNlnj>C%bX0tVu^y%n+hhYVrL$+#=kc6p69_j{fn;c-I;<(LPA^sow73sPknv*4G+ zx-|#Z1f(0MfQE$hv(Q6IFWXe1LKjGy+Yj*3FZ$dNw7q1&0Y^MKj=Ri)Vj0>N4`R*G>1M>-m*OXPvgU)Y_nIHil~?D5nQ+-CM`kcQJ@9kCUR0M!G6mcs zGI>W?K^&CAt?5`AulTLPH_Eubcq=!|z;+2cb*jUl#*z$8g<;(f+QIbOf9%F&Wc3I> zJHn6kt3EMw(92WWbTGJF`!-v3-bl;0^7TbE-QjJUMMAx*b1WsYZf-=8 zL(^SZMdX&4>R!r4X~OM+W@wq?y9-syo!l?yYW`i6F3@V=tc7Z*;qJfuC_9V8iQnFN z3W3*@Cyh^;JE|hj7~zH9=cAfc4-*a!ztFF$j}^zWXAq|Z%cI<8>3LJj_F&$MKO<;- zMN6a4x+=e043?yIT=FVz4MT?Kyv2QEE+o_g*11F@WZjIRxs7d~RgeoeU@5LFTs$Rj5m3!AdMu zo29-#zLbp27u)j4%&D#DSSe{bA74;`?R5qlk~iFbLAJU<%IwZxw)<$9&YuqFYB%Yo zA>rUgf=7CB2zCj9EBSN5E>Pa7Dl&*&afTXt%=9=>&9fke?_m7cgmXP_$*XT|##w1w zD{5KpCYCSlyP2S*xBkO*WLTDAir-U$fQ%GKaT=$yZ+X z5XJoPra*2xC<-*Sm=jB|4$lo$3QnMX4Zqo}UP9fez!0)UejJ{UtG7}l&3>Yk|HP;w zozgXh`eAhC-PdKf)pZ4gqziG>hBn~t>Jh#eLsJC8sS7z1k-a2Wer6*Cuvft@SyJ2~ z{l|qa{55V1mg=x#=l>&s3VQO<0N0d|LaiK<9oQvT;_F;5C!DsH7S!q}b6b8`%&yfn zLDAhFL$6R z&%5+etXvKGN^ir7FI2MO*~x0O`8x1hH?Exz_fJ-!aL+mlSJds@u(L;IWqM`y<^INA zAVoEZI7-lEu{)f+VWe+uVTWoPEtPIg_qJcaX_hwM8S17(L3-FRT`4k<4(&<%qIBuu z(OO(*;Um{ds*H`$TU$J%d}H&u#BTVOZZNqGsbhN?t42`I^ve!pq1CFT0>A3ryM6cr zDdI0n_-T#T-`(#rDzeY(3OVOnGpRc>hOO#?M6B9-vu2cr%Rox69JiXs&V|#-e!R{p z9%8yxf`Q{~S|H-NiSY5oCcIQyCf&0Cn%%(}11a=l$q%SFs4xoUB&jQ!xkq23Gxfyd z0=orIH5OxZ^rELliI1*GvMbrYW&$j&*{Az2Dsgj<;eE45oDd~cy`Q9wMgopl2iJ~S z`C1%fyxguylcOLXE7Dy1T{bt}f6SY_@ zvYufLysl85Tw&#ZQOxC~dv{AGMI?dMq+dw;@Hw{X8e^Svut}zQ=kN|?-ILxe0QsA$ z4v9HScnqdZDWyn1S;q=7Js$wkSu!FDA7RL&xok zn$B?s%NzZ|M_4_h z`j@Q?igYqQdF4_{`h{P4P)_me5nl^l|gh#@!E0P|9{h8Q-El3Gp zR!XS4c^|XL*Ote>*Eg8_Kg_*#R8?EtHmcGkY!Hw}Qc}7kWfMwCcc+AubV*2uDBXf| zcY`zn64G7L-3@nc&pDp+zW0uCzx&_aW2mqPTh^Lu=JR{v!Kd2`2!VVmIWLC@^IH{$ zJ2F+m!GaH~(t($7`OaUH;+cJ2YulN9QUM~DjEa}mfCner|d_&H(`e;mMn%PS}oM@W$1Zs2IMx8pef65{;c)FqH zs`KdS!@f2PO<%pa8T`-33F09_r4JRI%-9)Q9i_z<9E>@OHYxMC{adD4(cMhsIvh{F zs0_wZmhM&{?#ewJ!HX(U5HPu%b4IkQTVk-jjYpVk65omNO$9+4qC zLRWCZCK>L(!xLl!;YPn?%1^ng5QYzt#(2K-&QURL(zlB4xpnBNUBK!wU#QYJ?fk%s z_u#;Q5NA1l0_T=rXWVO`;E9t&d0KirUpX=Zyv8h zf&|Fql*^0C5)FF^-^onRss)j+B%L1r6jX2`8GKxH;Jx2$_VDa<%4u@Cn3edm&p`l) z7%}%)LDh1RuRTq0wji70ejM0&vIKD!t{o$+9!-&81^;L3GrA&z|=R^%z z8xxN5&vgi)tI6Tr-3)=hhjM0;wNzPn&{FZn`e*?GU)ZP#E6VL!d+jfH)r-C1bX_Fs z+z}z}B1`rLA+OAtRI8~a0__r^Sf74vy_JbE8;c=b-hhhXno`JO55|1wcWtJ@o|8$O z5-jiWsQe1wB1}HjzEg!FU!v@T&wa-X>R=eVwaH&-jZhJ#1hmcR_=%yF2TVTOLYTLk zRa7yse9q0`rV{ItpX9CC3PB;_2{s8TdpdrnT3h_m>DkKjPgRm%?sVwZ4$6dAnyYM% zKO)#TmB~AD^#}G{^(@f*90>c?XzT%LGC-kt5Kj37FGpb*L$)n82h&qYIm+z=7`VAq zWEH<0dS6~+*-E_lXujm5AsUko__v=9QFs3uu+*YP+cI4;yzV}M40I)yKam`CwZ7cw zEGwbm^`uHmknzayhfmq5`6M{BOM@%g4Upk$isRxJu1mply1K2IXp?Q{v_HK0iV$0hKPlvONvAqn z9kiSqe&#Eja+Xk!2%{_`E2i)2E2*R{JePb#EtG!tOAdonBUnEx6xq48Q{08DXsug+ z@)1g#>Mzv2*frpL(0G0ndMK!c+9GXjSmq6AuLn`9SNJ^kq^ExMhTr0<0%thUa2zl@ zSW(&SiKoSmX!5;#SuE>ww2&~SU;M%dGv5tAPZN!EV13NBo6IWAD+rfZ^TM7QODaTJ zSKZ)B%x{D3Qrx9gKoB`V@ZpP+u;+Z33ckKCMUbx*G==W$pIC=;t-2WTT0xDZ!-a(n z_$fx^J#1OUcoot3V#Iq)g~}eg=>|o7nhdG!zWVGs3ty}_$11RPQ|gi5eEOsjGG4=9 zrB91NHZ_kd+Hn3MBfKFsq3sB_?M8cN4RwN--Yxy(G-}sN--TC?TbGtb4?daVC6jQ@ zI2SG4i~cjJol!7SDS(dL=~`3mMgMAMa6#H9mZ$@W$({pSIA~@Z2iICyd{T zxh@>2RTpX*oDC+XdrLN|+juDZv!w!9g`1zfper6oVPV90-M_m!H$}G2@i?MN<~{k{ zhfHi|dY}M8lJ9BkooQvU9~sW(c0C(=xP*iNSHE#W5H~K6xxyl?S%u=}HJ%a?dm2)2 z|L~E{9l>Yfnon6=Kx1{P80~b07?IQe$LnweSrf;v=D6D5Z`iO?h<8_DlSBg34 z>J6?WFYEo%dD&L&gZEuC7^7k=>`QDM>Fn`@V7u6*shin^2F>9H6vtz)yR^?Pw>a&7 zW_n8ta91XoM_3G|HW9y_?&t{!jXL+l{fWW4G-r)vPsWlviH=t}N*`P?Z3-cBX0Zr7 zm=Eg~y)WsK)^~gkanK=#cUzhNxWU~|vD+OHi2l=LJ36!C$TYIxy6~VK-Z+&|q@9>d zYdUq!x}2Wkw@hGW7L*W+io|*xB2PN(s9PG$68jTr(6djsTS#y8uN*DsZ6)`{kEpYy zBjR&;L(QU!pasN}gm2RcSQ|x}Q`zFi6(tV2EGKCSQU$SgktG(2qT{&j8SxPDNI9PF z+I1+`?WH~^9+mVdOs=03o!MBAUY@AiIGKHPekA6nUYD^m@y2ZWweLc+3Wenrrynnu zI9aOvzEY3R1H8P-5FN7nLW>49Tp89HL{3&X_S{vA8a0%JS1!E^X~^)KF;9=Rx<&f~ z7BaIJ4Al)@Z8j-%I~eu>KbF!kiG6S4t9q%)`9e3FSB3I1XE-eYq<26+-W>{4UCp(CW`pH|Q zj~p`gG`1*v%BX0pzz*B)lk zTPyTee;?Ai?w@iNaaw*~cd{SKygy~aZxTXg7&<~4`z9>9S$^?cR5qIIsA&m*`F;sr zb5D$=9>r%S&TcHs_(3=o%1Rk2_0iE$)+oAZw@X014K~z8;}Q^(P`;^XtYcUh)ZtkE zD$-heUG!^t@VW}^pohLM*dy$btWZr?8bDPb(Wp51N~3pzI4-J)y?q4=AL$bsquOF6 z>r+ER6R$pIxmy)%D#)FhCfV5V7&yuZAI8glOc^i!@<=&v>o#ohfns*j-JG)|r2gaM z!Up)YtP+=244Rsdc6-ET=ls8sMtope#m>$?Qmm`XL>HGsyBV@V+T+avZN)u-iU*PI zRh{U4CiN$u^h<-ZE`4FG7QQaZjpJi-Q!CxVFF4mT&NV`gnq;jf{@^U7>b!X-pB48@ zXAE=0$LQ3@qRkY&97AUuQ|rFfEXfz%M(kw7@Q#sqw9>cv%_1ryo?v#hjb6Rtw(Nj+ z)GHX!Yv^hPq$nUoWS2*ZQ(ijP}GMTHox!xe1t7IeN45;Z&o#3 zZ&?tlDeMQtU4wsrB&L=t9&ykAb#JhQQRpvsgBz2x~_SCbT^u_*6#0$tQM1w+qKlKg}h1*KJ_h}8^Qe;(L^dyWd#}vaodWr0d+ODz-S>Df_mI(W$S?Y^XP!NcDY(G0y?XX!FO@KgSo_aR%bfGYT?l(V(h`a6 z{qQeH38!L{T!+q!GP6Z;1B@l>r+3I@XCj4P81#l*1sS9Ebi!|tzVxTD9&Wjtl%0~j z#QR~=+Gh*j$7lJ$L#j;${in5G@7~MNgi!xsWMfTAPann4=H{ucd`^)x>480h>J0N8 z=FWI0SN$qfy7l?)Un~$c58x`NO(V5joA;P)f0sf&*etdpfU^0cOFij6{1fO+fTJPZ zY0}s?`*wOp!aOUR9{WDFzP**;^KVvhv{Iq_E8_6tysb|C=F&%Ff@6=iF3i817wGB| zV%VBTe`nQfeBiy@<6%|wc>k70+6)t(OikV&bK^njzAzTYj{yDA7nO9SF`r9r zJE{;d={kz%e-Kr5P)*_|GBnJqMWB$_!(+Vd5{09!X%+yXG8KFE^1aa|3NCloG5ViU zDO(+Xv>jgzgR=*3gKoUFk$uVZL2vC-9XIsq7AC~ZI6>b6Ycs?-}}dOUATu@NgA zlvn9PYdT}!qASgD+gj4T8UF&dPvx#{%6F>K_t8q%(#s+!n_AsZJU6GjXqvFD>g}4U zf&^zR6sj`o#}FBl!sb3uJrZP`UOqyr;yl@iIVT!vm$hUD0UD>i(b1VvoU8$tR< zO)spq#p57&mkev3zH{rdYLtnKj53*aTB>qgpM)`H0+`ztPs&;Iin$wZ5cPhxHclL9 zXf8}~G1BFHAA1~jU0}g4c^1!$eiTbTUYL|CS4%TLrv16cR;LCPu7mY?gOXbWi}<&9 zeba>K_IvRY6;^^Y80MjA)LS<6-*J}l8Ky%IyMj@86Mk0Nux)265xC}`)&2Yg;X#X3 z#r~*Mh-dD&FCv3v|5cn=qJ8zHx(stBS$udPJ9o69>BC;cw9hx7_RriWo^gV9V3!ts9da%lVY@zD6{ad~;Bv(%^oPY+EDwEUHul@-B>$5RDG@ z?}s;%?h<8hUZbrlb2{5l-h&X)=E!_R5-vZnzaaVES4l}+f97r2tC2&|BxRN2Jp%Up zlck(BL|?pf%P}__c)-|6q+Gm~seKpok-Em|micG&<*GyUo}tQO&DHcIv3Dc2B)>CC zg0#JoYE#JQyS=Y5M9-FIjMr~Do$odyUUR9w`OTfeec|rTA5JC|4!A#GfEP@TV)ny4 z<u{6Wl8U8eu;--?nR{5?z_l2doO4K+UI88cq#XNMz!66-P+=D5@KK1Lzme; zaqC3#f-C2|gcH+t&ZakvbJ{rY?~<~#1MDmtt)I1@ZcR;U=*MxtA+4IX?O-|abag&( zcBZ*xIGfzqtZKJlYZ$}3fa))v^1Ep;ux7EUF4*jI`t|{5E!bnwWh8snUU&5VjA(O9 zwdi@5-p+|$8b`73i>TE#@%o)aPsb>d;G|@tE z%`(Hm?)gT~sOI~^@{-mCc6-4(iPRns-EhqII>QqdbsaG5RK}ip5+6==)tcjV-zD2R zJ2{YlBEoE|_^^b8{CRLpHa@b*a;b-`Hi5qC4ZBXQ(B_F^9(t-Qvw~b^2iE&2ZNZvK z=Lc_#62kYX3$YH`;JH`St!^TL|ItW{nWW(5XOdXfB-REg z8mYesJ3NyjYfrt9FHDQ}>_*bpt>~eg01Kkq^Hp}3$8iqD1y*T~6W&2%ho0I9#Hm`E z?OHH8_a^+EedOu$@gK#Pgr2cIS|Lb6@1WNd@dgViLXSu~kGTdlS-Z=&E=H$$(zFE96kM?uV7 zZ&ij0fn+>J8JmWbl(YjCssST{(_M`hX0{9sLFDD-HLB`&ans5F$jzSwH@kzNJZ*CTBwN+*vp6BYOh`e&u|Zsg_X+q;Hv-2&UTLr$fK@I zp`Z^jT-}@{vf4DWvC8+#Jti`%Km^n47$jj~XMfy7zPDxA`W|7T#Nu($w;4=U2MyP@ z=YoR^9&F~d3a^>ht|@zQ=RBsr$=hR0V@7So=V`Iem7t)zpKoPCcNtRlNk$%X9bAyb zwies&@b&E_b*6lKQ1tOrow$_9r|ElC-0ML~SF7C|)zJj5CPVnfsjeO7p6t(7j(J}z zW!lfvZEWr7k8z{t-z8xVq;0HoR5>qpEIlo}aw#p2_bKW^aD)70Ks|zzeW7-q+nkqL zng>T>Lv34gPp{DHEXHC-7>_Rf8r{dGcqm6_9AWHqRkE=T&&e_7Ed!a@lUt@Iw;1wR zh^M5A&z*MtfHgNC0u?RoGH?kz2R56f1|6uC6*ej=Dr&$NGlAPW9PsD#KvMkq`EtZ) zEwu&U&#q5ZGR(QGkq`r#EfaP6Cxyrdzx`l4GB6P9u4Fpxi;qY{%Yaej%Gs z{EPTS>cSMM#r?_Hh;W2SH;%)>L?Cga;$H&rIsNpTyx~VM(<&ielW+7)Zl_J?=mGYH&K}mO4 z2bytQ+*m}h$5BW2s7<5+o`z2OivG~fl)++Mp$kY!hG98c>V$3xU95%~hj!sT~ z1oK^8t?d%LC>a0o1A~Bo0C9SFV4}RFa;&dcS z;W+~d?ZmL$Z~aDV!_7xf+;sMQ&ZCmE&cUuT$UbtS>5eaDa~-{znYqS}2`?j?q<#8X zb!YP>S7+0E7Gl(f4}wia>pz>A$1IzCn)}6C#_9-DcDE^FCo34>vwe3dn4circD>DY z(|cO{Ed}NVI@yp_be$0)*lIr@KnoYCoTn7oQkCj;t8TJ-13Y%4?+ZhWhRrz2cn4rX z5T|6UhMnlZK@^zC;+44rf8M~Lpcdf9DBtYqF*)v6TgwYvI%%q(@I~TJYuDI(L7&Ua z%4%(IhmL91z02);`p8=V^5~I_|K_mzuM#@ z4K>O1sdm>I!@%OwJZp}zwYS%aL)&K=5*unNykZXysiDQ)^}&a^$dv{^k??d@-Vz4H`lybff14#C1DaBGDHUcjnEcA-49oh0L7ZmVY8d> z;lqc4VPVl%6sL3`*3)VVWc~b?EG*FTc!GhJ!nat5gn^1ClY)~8Zj?#dR)Ak5URKdU z7z{u$mw*{9tNp8kX~~yAz9lYeF7C_0v3M9*Kxd^oFBpc*chW&zQVZ}N{YC!3Zr=R} zV|#ns2ul|0W)1k?8+`vn%|^7_pZpw58)1D}IPuO1FXiOAyy1|3k)soGNSbU0(eOGL zgW)PBEPM~-dQri-QfNvVApqO$-ive;+0vwL)JM~JQ1(<{-1}+RAho@&y$UM)U!T== z`A)z`wiy2j$##0!v5C-Rlc%iBm46`@$0b@sPE>`o{DBT>zpbhnLX_%5DtJ=zE*vw3 zY@ulEDPQExScU{9Z(!5m&!0b8tmpVa9uGiLs;d0KdQxRM=>wj_cM*X>0*LLXLs_!ojjsjB*Ait=j8SI;VNI)Pg zsm4D?d`IOkH2rw~?vNW%_8jA``Wn4YIzLSUAHULZ=;mlZs4QNZ^%~5>z_-^>}ZP_rue0)c>5v?pNSUD)*eT zs0sQe(%JvGP6^m`YLmGc402}BB~0==U63Z!jJB)V*BMBrimUPGqt#Uu`&w`>l{kQl zz!Zc`5DBFdAf8%2O*||xQNe{ceO}=s9m5p5CQqz>j@ZTR>iVH#|XPW+erkIpPPMUO^3mL`Uy9&~&58!2;LT;|wv+WqXKxLVZirrSwE7U} ztdD(HM}$+ob63}HYlGZO?#$NX%gV|=W;O6*eC~c;V)??pGnBvvgpDWjIlv5>mx0A& zD~QT4A~6io(=#)B3JB8yV20{01Dk%}U*Ggm6f8Z)EOG@`z{fTM{m@~1LjJ8P$A-(% zs!T2VpUDOS*u%j<4P&?c4nBpj3gcO$gCrB{J6d{_;=XGVCReNW?p&ln{RI>B_!|7K z0r8#-iu~dMsrvoxnt2xEQ+fWI)`y|a9zs6Fre}s{bEaJ@hat@Z#W9b5z*Gr0mkyKj zDcv(T@vi9w%K0i2Ko^959OUvlJiRl;%;acTPAFR4o8q`Prw%#(z48^-^`r-mNq{6DgzqhxsSx`4R1_Tuugb!JBE zw2;>49j2(!B8aAvMm#!1o!D5VrK0*aKd%dR20v+bw>$bF?$lJ>mEi5c9wmAd^b&?fX5Km#8Ps2 z?rTDMQ`OcHn1bi`z*%1zeEx74T{KI&{gJVAt|n7ufjj?>0@7K8hfj)tTaW%A64EH| zKYbYr6@%$!HYR!?Zez!-8@fo{izDH;c9*p}Co9)em3hlv<$R0h&jt)eubIzpx|-DP zIuy<36|P=S6*h4;-A)h%a38mn@lG{|+)c|Po^yGP3RpB=`abnid;9k7`fzpxal5k) z6i>U^^JZaf4T*t)0VWdxS{9`>bKDBj(uTL{B=Qpc@c8kr1~ZeB>Qy2Pn}K}-^0LsV zMC8qjbe$Zb(||m&l>+}|oXy97T6Cx_cXMH3{|itLnwXeus%_+|6cQ>ZDvth^4odk- zkudP@Xybe7Ms$6ujI~)dq0r!VdM_bLMEsoOL$&T(Z{{8IWu-xZf|+yfpFi0Ki!#}o zBQZ{iYlBeQ61!J05$9T~6Mf`=6reUt@wAMLz&CGWbPRotlpN@WdYCd;UhE)pSz@*< zE<=zTqjPq>zbv)|^fnW5zm4)bIs{X*;c8#}`dA@Rozot3`3hJkeCNIHwEOWzs(=|j z`rXBVmk~=b*Z`Il0nuLq#~UAAuN&nt21|kB##2IA%pDp&^TO(n#IkL$9Cg90e7DAn zGmLv<9&?&U&FD0`o*13#NJ=8Zwwqhn0`y=-qJW#QwY4=5iYY8)N^xF7fr^XgQEOa8 z3!#UJXN2SSO-&Jk!Lq4@usDMIENl-s`?VM2oGXg#558|JEn-QvkzZAwy4?}y1@$YY zh^$QuE$RhoNdD<3(LT-(U4g*N$iyU%y2Eh$NC^!sSRp(+eU+XKWb@>(sq+CyuQEJrBt;zKC}Oj(a8JrCwr9f(yzm#CccO} zPg_)^@VU-N97q`>E1k?+N-jY$*^t8}Y>`S}0&f63*4Yw&pQD6@-}lvAfo(a{7EHFI zqoXrXZW>X*4(yHFJ3G@oJ*@E3_4-^<%gsmW8P!Ve0iDc5qg!>~FPv#A*C^P=0w_g4 zpxcFPiAqR^h-gU^Hyj3QpsIs!jN5f@wsuQ#UEu4vt{Ht@al7oKXWWrUX!{Y|#{c-H zrw4R=)8U24*w>9zL4lkP+=jls4leiGxdGIE6xA0?uPgIV2H4w4bv5fTfo&WjtdiH`H%CY&M+mixW1Vm}7&&N&=h zT#>L;$iY>Lf5(3FWpQzl$LqF1;{h+Tk7K3zo2wff2XK`31>L**%_0cCk(8BH$qv=T z99m`u^DD_PS8*;8w6;iH_CS@Jc~!pS^f;+-qS`vu(aZx;AfO?@ca#6mQklL40tiC2 zub<Ir zaOKG7m4&QdEk_9ba?gAG(33@yi-<9Ry|C1pJ#pzTH&)n+9q?ZTp@f|HQtRkr{-Hs{ z)aLQ~11EVA2*cBD`C*i|C{o|T;q=Qeo4$Au8uVc~9dGGilB5(+!?{76%FCBu{hY0L zTKx5kD)DL<1b?7y@9aSE@MyBdNK{o-C#_RtVTa|IlyKH92#BhBoh?h^fC{u+e(~|~ zd}7CDINp3iBU#8}LCxvUUXp+>pUziW#3p4^_PjfS)-oslC+3S(`yW4(uZ%v-6vGUh zoXWq~^(u~XAE^$`lC+-xrS}3FPlpeH>r8ZpEly-WQ+9D zIPRNkqj@GL%g@*Pqodzi|DZP33Dyd*&gR=UGxBBcsgq4&s7cKQQ(W7~$RjX`>;o+t zA=F032tH_G28IfVhY>z``V{$ObF|H(xDj#1J+j5GH}+ZYirB{@u;T}307MXiPBU)t z=1tIawKXieh|^raK&LC5#CSM~hKA-bn^7P-Ua&2s;vDeb7q_?3$;imST=N24cNV{x zmj^Tg)mBGBT)d~5H^`3l*H_IfP>Q%|2(-|g5u#_yHX&I!T%hQmkyMcCX=6}3eMv&> zekx08XE5sxvl*Z6BGHOnW(6sh+}>rH1E5~eX&7s zxb(Q$Z^J}X7ab5dBh~?t5(LgTw9}x~j7#>w&b%y0_)E!2;Femkp>P5*E}1ZOCt zi7!(0+}n7hlej-y+RF#r8k&Z45r@$`DoDSs8zV*lPL7})EEs0LA+bj@4+zM?#p?%pE)t^W-3VM*V zB3~Mm#c$f56jWt3-E)gB#-8A_jxQH=bdIAe_&W{n?>qjP7YIvs8WKG^K8Au*&q|O7 zI898-kwKJY|EtD)qYPjcn3@ys(IY<)NN8}jJNq~K_V?x@8vFlnr~7KK** zG!(t^t8=JFO3%L;gRozcF3~P(yiNUE8r=3bWDPDpn#NYwv~#X4zl6Z8c(=t(Afv>* z`$@$dKThQ-XXlx2{!urNu?xE9yOz~(R<#N~V!5y#--Ir&)@l3^7o`W5`zdx>(^EO0 z1G{oD>RGv8Bs1!3dtB+|O=GNpAxdekp84(Q<6oVH)c*Ia&>N@t(irqaZR<;-IUo*E zO2B9PFW>e2B7WwsX^4o~wVFFAn&KdqCRyCCF<;QFLHE=wb(z)aMDB5!Bmq|v5|Q<9 zk4JDvJwCAgwyP1);YB3im*^j`G2*rPqm`T*+C=130Ac6*gtbyh_?{6x^&L`PA9ISF zakz=1{POju6dGrA8Q-Y>es)6{-ZHk>kVvJA#3f7rCyG-Pu5GTw!Ac>I*d~x*JEfOQ zblTCCbp2zxx}vc;E^3!8^p#Y5WqkIshDotHF{71XaaWt@4lk&yINP<8?-@jF6dMw! z$XCtFR-=|)$5*MJSX++m#?FKqv!!s2$^{PK*9yYI;n9?642uJTe^yOhF!J)|j6q7|iZZskEt;LnET5RxR<=MGe}}bq>-tYH;PK;p;Aa2( z=<_pU3J4^&9RhC&=1G_ng%dsX23lK*!R+t6Pp+Pv$Soy>_BAt;lA2nXiPgwhS^J_G z1sezLc80S`M+dk-eAm-FBKLhC$9yjqcjohbHa*jUIUY*1ik9k5e0!vxiY+*U49~Wo z#4RGT4Mg~{3n18**4cKRMHu56#o+EzM5*?xr^gfR|| zSz~`9dDKf{qtLrOu!f9>TUN;b7;&NfP&>+((MOE}YXafzt2f>8M>&O|1%p;X=P^wzTSnMY27W*M=i z+z$ti-*tuksJj)E4^-|2KR$txH*}9BI`~clp7hgTNo;fjs=2kyG3n3Wg_>6E`Sb_aVrkff9a)Ob{mM; zTTb5-blGlZN89echn8fxn0VGsPLnScoi=LOAM<0c#HG!y@o((dPqLbL1(yvtJ|_2Z zeRcCOzXL5P*f92S@^fS-su!v%L*Y+gb65l4jPkvEw74&!B1+)f=-&oH>qE=nv?p_b z@Q{(AoQCHJo6L!9QQyht$YgG33akT^zcik{^`933c2v%yx&}*d(D{&#!oBw@vgRWrujy#D$L zls&?{Ji`Bn!RADoj*P>xt)U_&&n*sKa!`O~1oPvJzparV5L^Tp7q0tB;e0NH@F8TTrYAr){DXkMDTx27t9+Ovp^|g3PbeM z{sw$I=aZAB)A3JAq38h*oLQF=N{tME|#j{A!eKJ+{^^f zA8Q`3iixH#qq*#eO_2S)#OFnU+J;zDQxnWI!wv()=BWUa7WtQl#2gUC>-RSyQavezs-z~Q;Xp?}!?rOWH9VT)OWJ!6LhHOxC&5EGIv9YVu{ zv=w{bkUwfetI`hqXDJELTqUc8HlLPT`eV;+?xrbA-T-AdyM= zn={^D=N$z%>XZqk1@q+f;oAdpB+ukKwJx({813IQt1I7%QtLWFRn||2Kri0YUxLec) zrllY+B=Z_h1jYhnW2)kfFGvlCA@t^SpiGAIm#avgUVndojl)(9pRznh+ef-47IgXb znfBX`X~<7B)Be zdtTlb%ACu4@{I8G^Vue;6`2G5P~QsJ0^yXQ{D?P;RsA{i*Fw)rf7WqOUGV0KQ#>-4 z$yq*aRr$Qw72z)~-{!8bP9(NUT)A|cRUID+4oq#%ey{L#Hr`iS9L4U9n4%r5byX+= zy4podj7$_#vO;S3UZf!^TL?CGefTo=tDq(&QhWc>yEJKQ@Vk>Hh42J*>g{xEskYUn zqGi`JS0_Q4cblvRsbc#U<`%QHuB6!pn&~ffw)&k?#e}7&=e3zTc>F(%MqX_>w%IhM zPbxqr&;^2@XqH{g^tuY!MVSsUWy`Lr7pL7s_D(Opch_xq8^4EN)~QM1DC*fVc^#y8 zivDcjJll6aWjEpPp6d!9xR&O$J0l`4?ysT1-zg}E%lfr7Wr(dr^%c|vW&yOgw^tlv zl&@Y+lO>x>@9PGF!Ih;jf{anjfa?`8G4UaPI8>>O-b=68Ag9k;AYFkP?p1nje>zfl zj=|>^%P0}@#J~24Iiaj2s?Z2?J-I=IvqKyrq7Yrri_F1$sokhaz~Tj9rAYSn_TY5b zV_4<5qfww%`l3*|23A^h0JYgA;5cUf=ED5vR}_%gOCK@1Jy{N-#veL7ghV4Ep1wi^ za|l9ryj6^@Be^m~vEF3Umv5^nacX^xs(;;TdN3%4P`F0HxgkKj3xFe6OMm}ESkk6O z!ZbMSQp4#ig$ce}$GSaV#w181;xPNj?`Sajtm*tkp>_!yheYTtkB1?du^VxUyyU}JOs8kqM0D)HB>tUSfcww|86 z5#NAJF{7VB1@%iDx$(d^44k8T?& zug`KlS%MueX#>+zksote&uJlIw6#^P0aWtsnw-f} zJTKo=m<_e+@p`0xm$tUHt`#zH)2@3LIXzs=P(|4zMw3#5oSu;}$~(2vA^7#{*KTq{ z5HD}DIYOrdDzzXO5_WPQP3YW-SYIvybsqIA#i=#=p$y@faZbW8K4lgF$h)Mb&F~8( z(x2VFrlMBqA9(h6=c1tai49KY1<;C^a~5!HG1u3ZUuU0^pfDWh=s*CBjy3=x*np~4 z<;cezc9%mV;73F?&qw{zXd9(thd~bhtKT)-DRkj2sQH56)$da=O@OG70RUFDX3s{; zR)q#fc{z^p_>`1z^U=IT5T41#bKb{3pf^)vd)SUm8_H8Fc<~Eod!`mg)E~Vi(YlEa z&WvK6Cgu**y^XT;Y-~!<%YxFj!MP4Nk|4-Pc6OLJ^PY)abRXr#bOQp;QWsSOwT;M zMHDCuI(1(DhZQlD@rA-)n1OO9MP7-0%#5zcT zawT^E?CtG|W?%&|_5>q1>UI?5j-Z}8DV^O-^T=bL(`rh|q|4*xWE{qeF-|)L*usa1 zhzRt}AXfl4C-fD#Eq=iNbqq@Q#*WFz#Hcv5vQR(;CmuGts!2eCX5P^q>ryC7wguD5`gx6sPie;(e8SShyC-l&L`r7>v4ds{`I5k` zb9X2E41;`6Sh+ypMLU|Zo`*m&eNIxE%n%cl1)Ob^ORlL87Lo(+9hAWuX<1Q-jD*@H@qdC-#~>y-6z z*<)THAcd-=BD-rhxf1}4F81b#nuaE?@`$#KO{_egf;@)^sxl8MMW7+DZYFR$SX1oSnP3`9QIVqk}GCegtw~V#v?b%q&MkfyeMvqG1f?b0>&+ zceCfU+<~tPH8P^AbKIei{TEIGut@=F?YERPwBK!$JesfCi(bV&@2+?nLhECkj>#8U zIFYB!01pqpFi~pA#t!QUdNS}g(DEcoiEs|HU`6;#sA62Yu2AHnD!^^yF=(gka2>?r zVaeRzw}m1x=(Zv2hB~C_q^YrxGldxq+Z9N*4P;O) zS^$&)OkmJxv@bo;;KD9=bF4_fPt5(680Lfs>WDC$->!+gsv5Yzaahk011zy!PUyyu zHpTfxOvp-@ao_Frp4Z)HkF$-{=94kabI?DG5Xm4zhF0wZk8f7kCJd?gJTCBE!(R8& z$;tKIqWNZrDrGAH9Eqs1HNEMr84^RoOf~+T`PUd#qiEaIe|*&F3H~V?L#tvv^>R3P z`1pEEh#4|sbzEO^VSr>^z$^&s=D?Y>|Gg+Hute&E=;`MKuW{5}T_BToz(DWwmBa0| z3s@}FBFf9l(eG{Ic#H0%W%&Y_*H^_7_0kQ4(mS4&^r?mZ|2gJBrx(BDPw*RK>wE|-rgn55>IdlDNQhP z6gIU7JlsUN*og?|d6>Q@08-IOpRwhv?bF7D5rnWBoUh8I{dj)9j!^mFPrsC>?hI{I zpty|0QFlte=w8C=4Zf%L629ft=k5ndoECU6ID2G7NvTjnIVQy9MYc>Ljjsz-iC5`1 zv@vUc(~h7kJnyrDqO|7a!q4&BOH~W?r7FLTlIInJk0>@s@bQAm#3dZVhDe2)~KtRs}&KlMlL7`_XhqF2Pn z46!-9KOBj5hysKia10oz0kjN*40%Dh4A5@_BR$D$xXkAM+rMkH(Z<4B>Wg|HGP~Rl3G6_+LMZaFXxO-}x|0 zXcl$dl!*wxj+rE5L7u@?lPIX3ROe;xnVy~pA&x@ro?$)!iF)}x>?j&CCmIm39 zN6Tk-?PV`}BfTg)sO5x8OwG-`>9exBCFR64^27@x3tvU&<(O+=(DdB>WdHdwB__T9 zdsaRiPNuAR@F6vYOtRtA{1gf%0fhLC4Z9gNL~l+K-*1zW6HYo2X1?3}5XmFaB%Lvx zl&$Yy2KgwY_FTT*odns$c_5$0GPh+;%2>vqVDfqJl1`9UWn=KK_9XQ79^vaXC#;=obYfca%g?@y!79V?GtZy2T!KUX?5OQ4j7MaaK1?X zl0C@hHPe1WSh+y%6LjhXxyfL&+I!%};bVnitbqvWs3}NJ)Z)S%;fWx5|f{`$SS{I`ukg97@($KkPI#GEy|QjMlCAZOo%N?+Uk7 zWd50Ba~>GLJhMr)C1RKNG15eaO-FsoqEjO2eVsPmUHjHtQKU^ESJi~L84#M6>^8*}T|*tSy2pAMq{^v2q|SuoCfYr$%i_fy zdJ^}ALFh3$5+~OA%PsfI(SJ(s>2@I77y=QvB-UEU43D86x;A-r=0@XP(drOjw`l$Fh5wqx|61zR zlt())U3QaI_&x0ml?$YucOp%nAvwERL^~q}{~TrVcz*lONwlG{1Lst8#>6Qlrq}OW z5M~MQafioP3Ash9cnH1w^y4imE2u??S?q(%Saf z=$k^?1iG#7sNDpLNHy7^6I}V3QE#5V>*Zzg@$w?QL2_`t3#A>wuHBsrvsp9i_dG^D zWW7Z}*nFoRL*l&MfX+llF}TLLqFHe3NEsu2ATQM;O3_sN$a{0Q@W5^iEkCRps+go6 z^=1fuP4UwBo3N_!rDyuK@1GJgJsxZ+Hn=I6|G&A80l%ioTp%3YI_lR5o5y>sQ~ zW45Z;~l)G$1KZ)iW*6+(B&4%0lWCw zTfZyQrf)GFuIj$#wc)p(W{H>{lvgL~y$4h1rxKH~3_~Of*vW>P;)H^3l&&ETA8vz7 z%g4;oq@*%braX_{eex-Nt19XEnz_q;h-1yPZX(BgL9uag_GL1bU6E*ZiPb;Loq)mi z4he+FP0lg&T>SI%c?+-}^q*HA{QvtK(jc6GZS;Vmw4ws4pzw)L znU9!+1n}B2WpRJ}PB`Jg{@+j;c!qz!j@Kdot8n<&9z(x-P{Ojhy}kfO zzz`kR4eCn2K>7fa$4hHI`-6#_?=DwQsp1cdMRW@%I16~29aPEv9~uaVwLu4& zHozPhOXSPfuT;OOmXn7D8(KJ4f`mRMpWV_HoB7gP794ZT-}+CWEwWVS-!Fb9@nr)l z#Nk_QMLBJbpg1}@)_C6V<*62j1J`0+xj`nFmnW|f zZ6wJ=p(b~21R!PG*xHH!@;!Rh6PPC+%_QI<$*-+Cw=?G5`Q`{e zKX|PM=b?p~M^!=;JR3VZ7?_xtwL(KfLz~3u!BYRlrmU1CWwnO}XmRh)lZZtr;yBk* zEw{$Mrphbt?H`V-zraDCgM_~zQIR-x&F(av z6TYgNs@|P{7BC6J09|4k{Hb}j@kt|N;adta zYOqTP{xdG*Pbf=J>yaD?fEjF$*X3&qVYIPr!P0OLm!Q8s_@%~aFU7LysC+tpW~JZK%{i(rmZiT z_4cl#SC)N$QG2|2r9D>7r+3AFx6C);2CoMNW#LnwlxrMg8N$agi4#30X&TE1)GNYo zCjCQQ?)PnP>COh`1(wFBE<$%;U(M*->{yL*Cv3RIGygN4PcInCr{0hfQTNT_da?y@ zrwAI2#+6Ps(qIxDZ^>AYnhkmMbP_snC7+N)fX(#nPzsHcB~Af4=`xvq>KOv1*_p7v zK|%n8uJcx_n!2^*7{kR*yXVI+^|5T}MNI;Z!5abs0))a_&~*n3ZCgR}CkMKgoF*pT zHH?r!WZw)LV7b9qHYz74h3f@%M*Rpuf3TINmVR}*ZXoi;t$K#ubG0m7Q)w53`jvt@ zxMBgn25{i{H(lZ*sAw9Ja@-^ao~uqac2=Sqz7~2f31KA&>ntxJ!B(|2BZ7bdm_#g#rbtca^pnKl3M4r|@|Wh7;tNZ~cmA60@&P+L zQ8-pU`#BJrAHs?Pm}E1z=zfX%wj%qzvsR={6t)!WT(Chw97k^9)%^*{vu|`)7(RNW z2|!QXUCpfq0b8vGv8$xgB%z0Rgh;%@VxHNH0|bX8N(py?Tf@^7@ZW2E!CrB@G4dBv zY2ddjX_(?LPyaTb@4p!Pj2#+L(q=x&^%tzEM9T9YV`!IRv6UV4T9NrC-95BK5iWc;0P&^KHkDr)mX{X3meWHP{8!=g8A#`7 ztq45t?R_2M4R{Cg&2mdnOk(;GTfU_skeoAmsG$N!!a6EBjsHWh*Nv>>a}o+4cD+LfT()Xd|-hk3ECbPIjA~K$per zvt_L*Ki4?4Qy7@R%kDZYSsr}tTAADN_H$kWi_vn`OCkXY$>|^cJx9NLFHVmUefKLZ z+&P%aYPiPm!&FOwpu=6>j0;;}q^u;Jk|}$Y^Cme*PXCyZvU>6j_krVpA*S^3>d_<( zZ#%W-nc}@?;A8B$8_-n^%tY&l@0gGl4ipNJ+MalYKz}nIA>D!`maq%A@hk_Z6!vXp z?ewuD_){;27{rU}#R;o?s}(uNc>ktH-1G}Y>$y1WJxZe7o$P%IPEq*fkG;=48cTe6 z#^p5QH4feG<%1LS=NLMP%oIUv+u^q~Yh~fyE2t>eeb@5>7c0MW$=Z+d1WrA$*_P*V za%*aB*&~#aXFq;mikzdW|84ATw&5S=ZtO8GL7_`M5Fzgz-vFHC#pUI9I!>#TbtVZb zzDWDs=ua^^zzojj9BaI*X{G9T8m79f$=2MQ7mvr2c3!|9%MnpM+bNa$g16D*Fh~jq z6!gO)G_ZL?qoai;dTr>XLG6hej0f2gQEFzGD(iW0!TMw$C+J>5ij3BLGiHI6g3uzy zI22@Z7WNplw(3k(bazojzt9YA%_t%n4r+a@$}XY7fwPC+HVSI(D-zL=4HloFiS*3Z z_H(j)YydXDFv0MknsLd8q?->45~pZZ1(tGY+LtU{lfGaYk5GDUhGxj>0$_L3*i>g> z^pSOCusQ&un{{<{Wo=416`p^KY;Xd!G_~`vjZF&I6Y{7IQ+5#Q4aW}0yOl{vfBrnTWL12102go|h%aiw3NMZ&PPxaX*K&S32gq1lY@EF2#40!TQ zZbw($A1iQPTh}}45EII?yLDKe4N0qoi64UM$>#T6grJ{P@@WeQ03-bIk-aR7M3zWn zv@Q(Yzg7&SU75Kddl%vQKS>pFVw(IAqI0Y6IQt`lZm^PT!}TSGoWpbLHUT}2gt9&J z$&fj+m0IyTf`#4-{$mRueJ&lJ{&mBp*;si+8rk1ntH{d}HBUJbB=>u^$#z(Md>t#` z(vpEyR1KN;1B}zobWdEnrNUf2C+ZfwdhTvdDh+nxx+Jt_VN-=_# zY1r-fJqCsE{l3p%zo^^pdsXnO1_%4OF)|rQ=D%JU+_1Vzw@Il!do1E-gU@0-@P7t*7r46Mf6Csg z(00LUiiX3(+Vyt;=U2=;|Eiym1|qbf{k}n@d;BB&Xa0&RD$tW$)|*TvkVMzF9xl$c z;-=DQfi`#){R~SLkjk|&lmL>>_0KeweDQzygA-_j6Y}E)$l2MFiHV62H`hBf6qA=H z^_PL^XWSbH#5dJ~l%q9&Yfb)MhoDLhuXji9K2g%`fA%Wi9g;2ZV^Cj`|BFH|Tk~2C zF?&gyS##Uki!TcCk8EG3NoC$&^_B&d)^zD-X{@tIN&S7)m$;A#cUw$seB@vTISH>X zhEg#bT=UmjoJCqV=I+;zr>mN$&e^X7>GsH&ZGgoYC{CJfuvzWa+0OKiml;=2YyII7E&8G1K%{tD&L{x z)>H#D>Xx{}QOM;1acW)1Jo$^@aY;&U+~5bw{Lg^3qe^QkACJzx=+=M0UOwue0?E}=HfjLom`0>=`)lK+(6^OfA#{j6{L#1Za5K>KhJ^$ zz!@6opW$VLwm)Kh`1$!!^@qYU_5AoM#HW)|sO$bE?og)7Y?K!f@ literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 1136789f..097749ed 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,18 +1,38 @@ -import { Grid } from '@mui/material'; +import { Grid } from "@mui/material"; -import Header from './components/Header'; -import HomePage from './components/HomePage'; -import PostPage from './components/PostPage'; +import { HomePage } from "./components/Page"; +// import { PageContainer } from "./components/Page/LoginPage/LoginPage.styles"; +import NavBar from "./components/NavBar"; function App() { + const page: string = "HomePage"; return ( - -

- - - + <> + + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} + {/* + Login Page + + //Form + + */} + - + ); } diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index e3fa2afd..b3ffbb24 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,5 +1,6 @@ -import { Title, Container } from "./Comments.styles"; -import CommentCard from "../CommentCard"; +import { Title, Container, FormContainer } from "./Comments.styles"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -7,10 +8,12 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} + + Form + ); } diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx index 78922576..4589f496 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx @@ -1,15 +1,17 @@ import EditIcon from "@mui/icons-material/Edit"; import { IconButton } from "@mui/material"; +import { Post } from "../../types"; import { Container } from "./CreatePostButton.styles"; -const CreatePostButton = () => { +interface CreatePostButtonInterface { + handleOpenForm: (defaultValues?: Post) => void; +} + +const CreatePostButton = ({ handleOpenForm }: CreatePostButtonInterface) => { return ( - { - // Activity 3 - Uncomment next line - //handleOpenForm() - }}> + handleOpenForm()}> diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index 75d55a40..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,71 +0,0 @@ -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; - -const posts = [ - { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }, - { - id: "1.24", - title: "The average path a grandparent took to get to school", - image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }, -]; - -function HomePage() { - // const categorySelected = "All"; - - const handleOpenForm = (defaultValues?: Post) => { - console.log(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // console.log(category); - // }; - - return ( - <> - {/* Activity 3 - Send handleOpenForm prop */} - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx deleted file mode 100644 index 5ea16a52..00000000 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; - -/** - * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display - */ -export default function Loading(): React.JSX.Element { - return ( - - - - ); -} diff --git a/apps/react-app/src/components/Loading/index.ts b/apps/react-app/src/components/Loading/index.ts deleted file mode 100644 index 62141369..00000000 --- a/apps/react-app/src/components/Loading/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Loading'; diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..2066a987 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,73 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..b9b245fd --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,20 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; + +function CategoriesPage() { + return ( + + Categories Page + + //Add category (Icon button) + + + //Table + + //Modal + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..6727989d --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,44 @@ +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import { Category } from "../../../types"; + +const categories: Category[] = [ + { id: "123", name: "Travel" }, + { id: "1234", name: "Food" }, +]; +const selectedCategory: Category = { id: "123", name: "Travel" }; +const posts = [ + { + id: "345", + title: "The average path a grandparent took to get to school", + image: + "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", + description: + "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", + category: null, + comments: ["13242"], + }, +]; + +function HomePage() { + const handleOpenForm = () => {}; + const handleSelectCategory = (category: Category) => { + console.log(category); + }; + + return ( + <> + + + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..fbe967a0 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,44 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// image: "", +// title: "", +// postID: "", +// comments: [ +// { +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }, +// ], +// description: "", +// }; // ACT 1 - Fill all this properties with random data + +function PostPage() { + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index a3d43187..91206d5c 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -2,14 +2,14 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; import { CardActions, CardContainer, CardContent, PostCard, } from "./PostList.styles"; +import { Post } from "../../types"; interface PostListProps { posts: Post[]; @@ -19,7 +19,7 @@ interface PostListProps { function PostList({ posts, handleOpenForm }: PostListProps) { return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
- + { + e.stopPropagation(); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 777b35d3..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -function PostPage() { - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9b876432 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: string; + label: string; + type: string; + options?: string[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} diff --git a/apps/react-app/src/utils/getErrorMessage.tsx b/apps/react-app/src/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/utils/index.ts b/apps/react-app/src/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/utils/shorten.tsx b/apps/react-app/src/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/utils/sortTable.tsx b/apps/react-app/src/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} From 0978559f76dd2ca633e1c4d80b4bf12c53c474dc Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:10:30 -0600 Subject: [PATCH 07/21] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 38 +- .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 15 +- .../CreatePostButton.styles.tsx | 3 +- .../CreatePostButton/CreatePostButton.tsx | 12 +- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 39 -- .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 79 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 30 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 54 ++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 44 ++ .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 35 +- .../src/components/PostPage/PostPage.tsx | 53 -- apps/react-app/src/context/PostProvider.tsx | 97 +-- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 2 +- apps/react-app/src/types/index.ts | 119 +++- apps/react-app/src/utils/getErrorMessage.tsx | 8 + apps/react-app/src/utils/index.ts | 4 + .../utils/{index.tsx => inputsValidator.tsx} | 7 +- apps/react-app/src/utils/shorten.tsx | 4 + apps/react-app/src/utils/sortTable.tsx | 52 ++ 41 files changed, 1212 insertions(+), 261 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx create mode 100644 apps/react-app/src/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/utils/index.ts rename apps/react-app/src/utils/{index.tsx => inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/utils/shorten.tsx create mode 100644 apps/react-app/src/utils/sortTable.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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
- - - + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} - + + ); } diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index e3fa2afd..b3ffbb24 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,5 +1,6 @@ -import { Title, Container } from "./Comments.styles"; -import CommentCard from "../CommentCard"; +import { Title, Container, FormContainer } from "./Comments.styles"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -7,10 +8,12 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} + + Form + ); } diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx index 78922576..4589f496 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.tsx @@ -1,15 +1,17 @@ import EditIcon from "@mui/icons-material/Edit"; import { IconButton } from "@mui/material"; +import { Post } from "../../types"; import { Container } from "./CreatePostButton.styles"; -const CreatePostButton = () => { +interface CreatePostButtonInterface { + handleOpenForm: (defaultValues?: Post) => void; +} + +const CreatePostButton = ({ handleOpenForm }: CreatePostButtonInterface) => { return ( - { - // Activity 3 - Uncomment next line - //handleOpenForm() - }}> + handleOpenForm()}> diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index d881115b..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,39 +0,0 @@ -import { useContext } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; - -function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - - const handleOpenForm = (defaultValues?: Post) => { - console.log(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; - - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time - - if (!posts) return ; - - return ( - <> - {/* Activity 3 - Send handleOpenForm prop */} - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..015d89e9 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,79 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..be750d4f --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,30 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +// const categories: Category[] = [ +// { id: "663fef70d513515319551d1f", name: "Travel" }, +// { id: "663fef70d513515319546d1f", name: "Food" }, +// ]; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + + //ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + return ( + + Categories Page + + //Add category (Icon button) + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + //Modal + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..e61688ed --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,54 @@ +import { useCallback, useContext, useEffect, useState } from "react"; + +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import { Category } from "../../../types"; +import { PostContext } from "../../../context"; +import Loading from "../../Loading"; + +const categories: Category[] = [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, +]; + +function HomePage() { + const { posts, getPosts } = useContext(PostContext); + const [selectedCategory, setSelectedCategory] = useState( + null + ); + + const handleOpenForm = () => {}; + + const handleSelectCategory = useCallback( + (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + getPosts(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPosts] + ); + + useEffect(getPosts, [getPosts]); + + if (!posts) return ; + + return ( + <> + + + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..fbe967a0 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,44 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// image: "", +// title: "", +// postID: "", +// comments: [ +// { +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }, +// ], +// description: "", +// }; // ACT 1 - Fill all this properties with random data + +function PostPage() { + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index a3d43187..8c87c501 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -2,24 +2,29 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; import { CardActions, CardContainer, CardContent, PostCard, } from "./PostList.styles"; +import { Category, Post } from "../../types"; +import { PostContext } from "../../context"; +import { useContext } from "react"; interface PostListProps { posts: Post[]; + selectedCategory: Category | null; handleOpenForm: (defaultValues?: Post) => void; } -function PostList({ posts, handleOpenForm }: PostListProps) { +function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
- + { + e.stopPropagation(); + removePost({ + postID: post.id, + selectedCategoryID: selectedCategory?.id, + }); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 777b35d3..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -function PostPage() { - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 4170ea96..786c39e3 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -4,8 +4,14 @@ import { Post } from "../types"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + getPosts: (categoryID?: string) => void; + removePost: ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => void; } interface PostProviderProps { @@ -15,48 +21,46 @@ interface PostProviderProps { export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, - deletePost: () => {}, + removePost: () => {}, }); -const postList = [ +const postList: Post[] = [ { - id: "1.23", - title: "A good place to camp", + id: "664128a212f505651c18d676", + title: "A nice place to camp", image: "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319551d1f", + name: "Travel", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, { - id: "1.24", - title: "The average path a grandparent took to get to school", + id: "664128a212f505651c18d6kf6", + title: "Favorite food ;)", image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", + "https://th.bing.com/th/id/R.2d66d3ce21d052726c2c527a03da4f4c?rik=3FedcY2H7LDtBw&riu=http%3a%2f%2ftheartofplating.com%2fwp-content%2fuploads%2f2015%2f06%2fEvan_Feature.jpg&ehk=KCxZkONbpjuAYhfpKxoeHgIizR%2fy1U0LM6olKn1d8go%3d&risl=&pid=ImgRaw&r=0", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319546d1f", + name: "Food", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, ]; @@ -68,24 +72,27 @@ export function PostProvider({ const [posts, setPosts] = useState(postList); const getPosts = useCallback( - (category: string) => { + (categoryID?: string) => { const selectedCategory = serverData.filter( - (post: Post) => post.category === category + (post: Post) => post.category?._id === categoryID ); - const newPosts = category === "All" ? serverData : selectedCategory; + const newPosts = categoryID ? selectedCategory : serverData; setPosts(newPosts); - // Activity 7 - Call to the createAlert function here. Include message and severity. }, [serverData] ); - const deletePost = useCallback( - (postId: string) => { - setServerData((prev) => { - const filteredList = prev.filter((post: Post) => post.id !== postId); - return filteredList; - }); - getPosts("All"); + const removePost = useCallback( + ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => { + setServerData((prev) => prev.filter((post: Post) => post.id !== postID)); + getPosts(selectedCategoryID); + // ACT 7 - Use createAlert function to notify the user that the item was successfully deleted }, [getPosts] ); @@ -95,7 +102,7 @@ export function PostProvider({ value={{ posts, getPosts, - deletePost, + removePost, }} > {children} diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..56933391 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,2 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9b876432 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: string; + label: string; + type: string; + options?: string[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} diff --git a/apps/react-app/src/utils/getErrorMessage.tsx b/apps/react-app/src/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/utils/index.ts b/apps/react-app/src/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/utils/shorten.tsx b/apps/react-app/src/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/utils/sortTable.tsx b/apps/react-app/src/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} From 58fad3fae5033f22812e9881bf6a55144d54b6f4 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:14:11 -0600 Subject: [PATCH 08/21] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 44 +- .../src/common/utils/getErrorMessage.tsx | 8 + apps/react-app/src/common/utils/index.ts | 4 + .../utils/inputsValidator.tsx} | 7 +- apps/react-app/src/common/utils/shorten.tsx | 4 + apps/react-app/src/common/utils/sortTable.tsx | 52 ++ .../AddCommentForm/AddCommentForm.tsx | 6 - .../src/components/AddCommentForm/index.ts | 1 - .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 13 +- .../CreatePostButton.styles.tsx | 3 +- apps/react-app/src/components/Form/Form.tsx | 181 +++--- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 48 -- .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 79 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 30 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 61 ++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../components/Page/LoginPage/LoginPage.tsx | 15 + .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 44 ++ .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 29 +- .../src/components/PostPage/PostPage.tsx | 53 -- apps/react-app/src/context/PostProvider.tsx | 149 ++--- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 2 +- apps/react-app/src/types/index.ts | 119 +++- 44 files changed, 1340 insertions(+), 390 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png create mode 100644 apps/react-app/src/common/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/common/utils/index.ts rename apps/react-app/src/{utils/index.tsx => common/utils/inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/common/utils/shorten.tsx create mode 100644 apps/react-app/src/common/utils/sortTable.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/index.ts delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 zcmd43WmH^U*DZ)kDBPVC3GVI$C?vsyySr=f;4XpS?(XjHPH=aEyK7h8N4~f3y<_y~ zU)_6*;#8fgIjQN`U(L74-WwWrHTLt-V?-dpaI@M zI(!uuhA1B=Ism_bF%gm$f`F)sLVDJN1;0kLl~8klfI#W_^MD+%DKvzDc+2|?5>j;0 zK3+xiK>qzIcrH7KsV4dX0UaofMkD+gLHL-yY}ecd`vvwy$*pPjw%P1SMX5L}UgNNS zhQ2tA2Di*Jq)gr%SA#tM$B!TU(LZklCmi-ZP>L&mme{$n{vDTOlAgr6oa8Wi=aDhc zJ2FB`3IZvX?Ee1U)87v_G&E$6i2iTmmq0;5soTOYD|$=_{_jR&2SCC2_haBEv*`aH z?V!-s)_yp2Dbv;0hl&t`R#50?4=Hrp+1(W?nFR`V+^&%H)h{h9ka2UX(Z2`&-Li}2 zDzy0@j>o#Yh5M-r5A$+!JJ;5<(~1SQxXqoNIetw~+ufaN)zuzyadFLrn$*@YaG4qz z1*E1DaigIt!8ASkr z6TB!{;PCN2WFLMwWgeBG_~$~3mqGnx(0)-2cGi8|gH$<#l z691e8yfp+}GfPC(H@ijR6MgvSNZ>7tzP^5T^dAb1{e8_(tDfkcplaaB)!>M)n z;qehjO^v8ht|>1`GqJQpfRB%VsMrSs3tMCmhlzueABhe=0?S=;(0f5ao%*P>)YQ^= zw10kTd85YW=3)cI)vsT_>e|>;$ndK&GczBm?sEUtPqPF>9*+kFyX(k=9D^N7SuCi> zIvy9IPNnwk4|{}8;lU(I{}m^*Rsa+MF7QLui3WU!irW9j_x|j}_Ur08+`jDkJ-E<@ zZN}@RB>C^%nUlc5lM=zfkC@z_Z|=_&{p3+^$a4|)p$ zDRMG#sd^HL1$AydTu7)gB|r-Q(|^TPG=xOQ3svO8!oo8}my6X#NE|k6r82X`0F-!o zE-qDV1>nAldh77~d;^)c>R0c{(V?LOEpU(4S+A z`oSU7sOB@EPq4ESMDX0`=H=%X8^oCy87Wy!nDX=S?L3N}b1^el^$Nk%Y1CU%C!l|q zmXfl4xHRG}8yM|+r@KccziKCVm;7zrQ)P{^mtV}o<><_lvHd=q4%08OL$?b`jo~zU zD}e+YJJDCKcO7p-7f%wtGN-Or=$Xxh=Ld;XBAbP+#$^|U?c5|qd%4H{*W20c_eujVuZdei@bG0McM1c=VtYm1 zs1(I*QuK7*sg^rR%M+0_gTv_M^^1+JyvVNRQ#ry4>)7?&oOYCD6emfj{iCS}6SR`d z4x;|*Vt)-xMR)%2jZE8h$nH~xO4}uc{h3~6&a{*Of5E%0ly4?_t4><-(tR7ci{XBL z+XGPvi~jQR@~}p}E;96cAsuf0V`0g~-_KH97Cbu=L&QN*?|KN^8yOGb?J}mAUHz}>kc5c5B8OoJ4$4v9Vt;Lq~=AqeWdh?o!~>xc8eq$}CY7Nf#U*HXIC( z*WNvKyk?~0^tP_tr&J=6l*aETqggSPF|r$vA}zx`tKe4N~lCyI1X(x@$~ixim{R zs+H-d+GGj2c1*}02T@Yn%i>l15nvu6#W_j)=<6inT|cUf)#)CEr1KNm>XlT#R=4+s zY-}t;R>~p{Xs%DG=HsX!-65)8p2?fyw82$KsRf$WCH{qth4saUqg@oz$(eTB{q~v@ zOa_yxrly6OVum>J2V*vNx`lAO=}$<;_=boat~Y}BXL6F3XSlwyvn-uRkkBi;QHeEM z6S`;2H;bAzGW)v*VYR_+T;_>ps+z7x5Z4a477{(PR-285v~4z{M06>3d%CV6biz|^ zX?lB^Nk4y1w;Z~}S*$kKJ-csq!#*_7sH&=x@wS+!^MsyYqMp3GyhsvVr}<*YuYR3! zmo_%ex1>;mxvRHc4gE06k=oitL<=K|8C5^ot zm+Y^KyYzYG;FGV~0-O`M3r>U>6$WN{+LyQZl~$K{npYLu&o_p<3p+qwR_M>e+(TwF zaAl>KXxQIW8nhng>&sCG+?s}~=tkwHJJO3TUa8!FB>W5*waoFPwh~n8JN4r$k2Kwy zLZE1<*o>^-*$vAxgF2g|2REn%2ejtxUS+_RZwUALAZKe0P*%4c zjb&l(@WOOqW9dq>_?9_)_OpzZ#NpT0;VjHftP5a7eETqBF1W8KF}6BNd;tAkLzdID zcE0LO@JP-)-TH|Pa8iE!Jq5?q_6{R$@c$~k3Mx=r5 znWzx?d3o5qM8lZwF2_{^hPHBs=)tyu)hR!vJ9+ zqhW&T8Tqj&SJ*j<25{awfD8vWacdEvn49f3OPuEsu zkd*iHxC3MO*ld01s ziho7QrQ6NQW(nOHWxrBAeKXMIli)Q905q}IUr{z{gYUg@n|^-0rc>Txa;Dp4E!)FE zEp55E_7M;I=~hhlE`5Jhb`eF8Q&pw$L6JTNqs9p0tG%n{gZ?~RI&s`Q;N7QrWn{-) zobmI6A|k(y^kz?`+ZGdElU<3!gUF;H1`fK_mW;FwW!W_9{ktq3n_WD@6A^ySdnX%Y zN~4*gI(v^6_n`}Wi%GP|5WCHF1+RMp5y_-`^oF* zb$Z-5qbluhqdLB`yt2B}$62-t7M-4e_+#!MY0184Sk-DbOpZ2wV$#q@*8crN7}+W5 zi8Nox;T>;k(&6ST*7%LPvXUxLxjQ$9Rcb!znJ2w6(W(4X6IYN(kQC zs$`npK6fhz4}^@${APr<=VXBn>GN(1Yvr};JA(}Ds|4Wl1RdM?VL*YQXBO#WgPC_} zaGPqb6uYYviuR#((DaBf+Jd;+z`oi7`jNjj&Elb`dhrvCxdJ$L(R}VRRe>P z{JQGoFW^DL5t}aq58o&9a0vi`92t)Upf{O#Kqz;F8?2Urwbhm#y9X+ASiwbtC zFrJ!SWnoS^T%po5V$Z|M15d(E3l@U>;Y{B^dL8btPnAkU+ufe~`{kvq+r{=PGDCox z`|06}Rbu%pOV)xwy}t)WUI~DS*k?#l@kx&*fV3JXj^TV=Z`buQgU(Uy?=F{eSxx?`Gv}yRm1uN zBP4=Uwr3Q3GkBsZXks7rVo}g>vkTFoz`&b}@k?4I>74G^o@pb@Ll$3zr;9V#MG?U#P)vDCrbxSe9{P)h81e47m18UnF(x7<(%}D5$hOK4U{7fCzIux%? zLRq-%i8oL6AD{7B*m1t;B2l8QUWc|7M9*~+wx!QVZx6kmTmJ|M3sRxNOk>I`z_mSe zmwFK!qib!4uEFsqpPM6uBzF>>{S5OAQqI&RBAbDS6P+&m{xG65^GiIzRJ*n|i_MAW zPlb9X3j;HjN;o34-fHR^B7pR#Fen!>L{)|*B(xyoEYVz4bmf%Q9f-8mWRPGP71RF` zXiA$+X8ZAjHjf{kCxC(xAD2;#cAX_TrwFi@DDq+1tma)xhIANUp!|F!@0!{qG=EIX zhY;6}S+pZ>*dl{B$h0vlK+lq8mu0-Km@&OVR7wg;Ze1QXoY}!INP~kRqdC~{#k`i8 z%Zq`eemEhco2XAeQEixlz|jwypzZ{Uw15p=W6BFw5<_|$~z+DM>Ri>lXhJ`gd? zL3)aS`5L&^%iXL(=8b?fw9N~0RR#5khARxA4j9r@W;RCxpD`W9U! zyZtZo+_;<~&ly$^gxqpMpR4Gd) z{Q5wxOw=3^D9ac0-IEI%(j2?i>mBCrSNQeUTI`l@$Ni_XFLFC3Z-S?tW*5+Bkj;FZ z1#a#+Lf!Juml26>fO=gWO$F}ul(G@`u0qA`Wau;)5nnC0X=+$PcH)Om#idte z(h`TSNsA1^K7RPdhR^Kh#dh&oE2A!=T$phbCAo?w?JK6cL0LQHH@UtgMg z`-i#5{Sr2lcdz=UGo?3BPrTs%rR*F64<6x2T~}_Q&7CuzUPJkqY%eZf-OrCwHobSY zL}j)pS^ApZlnV`A{-($@U(eMrw*WfwCX8dutaE7yJA%kjTGu@Jo9G+K$woMgCjWQ9 zCcN|JhUm5;ok9}6s(;hh{K$8UU@9yYOHu`n-iNE zcYJe&+i!D}I+cqg&r*_FKT5yGltGcW{*>Eyu-D%3Fey2%NvHp-K}7wTCX5WRpiiMM zGMi`|(L3_w!0}3HsbW=#GI@taYTo^YW)r>h+M1N=2^3o^P2uSx)KoZ`@p_3brOlJN zN%o?NnzGQeJ?&6&cM8(nEPr=%oezR;Naozd_COeMZ>x|WTu~jZ@fNN|)l(4neu2!o zNUi_u3v;7-zy297qwXPZ&G|tw@d6>`YoE?cWSuy=#WIP|*{#SETou<#jsV*|B}NQ{ zSKxe2_!S%KO<*jbJK2u3=BkSD0xM58<_~zX@9tl;wJ00 z){x4|N}wMVIWT*P{A`bX#h0)(^vGeN8(BchW2!WrVN`y72ysy*>izSmQE%@@ph!xD zrowg<2x(!Nz?0qH5@F!kF*pB+LYkgVH#xC%=NFj!Y(+NricTD@zz<{F#IMJ2GbAKmq(C(?9H}q7aza>bl$=0sn4%Jp$J> zTL})#pK2glAJ68`6)og{!K9^U`0N_+c5ysFb$?e3jj8?tOWBC3n1W&Tf@M5fYl0;uklK}94GR4UK~ig@GrgobO7z| zM9)N3YdW=+p4D2+{^w$%D5gFX>N#X)yH3^;H)p`%bF$M6_jw2z0z!>SL{I5cc|4Kk zw0-v1>d}eVaG2O@yq!d39ZwcX#*1+6gkDy~Wn?(mkW)7^z1}7BxMa6IwejC9x_%2x zXe*B?ilgPJ!-dSHZT$GSI^DP((k`^WAZ7JsrWXr^L1xmhfJ`)E+{kcE>5#i~N*x+$ zQTDy<(WQ|g=apzd{-J&TobAzmj^(t|t%aFSqU2N`4EYtB!$*SrQ{u_?s@HqdjTs7vmq$lo z@~X&ZjYfN7+oMUu@Uz50c`nZuV8fejg z>=xnq<6x5QYE9t!mvui`nKpUjutX9|T5Pc8a=hvG9$5;Blj&iJCa>80>QTUM;zDOu zI~+k64Ikk+gRM;1K-yEt>(agM=-kPIH5Xk{>F7dmUJEepWVZ7xuTHha6f(YaEo_o( z3RUl2_k74*b$g_Jdm#Nli05#1ht0rF{TIl;XUSQFs*H{R(Pe$zMLjNKI$m#Rc(3km zm2}~-@SJdd&c}UiaX~?|sYW)3pM}oWh3nwfc;%2HEBLkI?knjT~?(Ktw$e z*)zzo%Z*Oc18w6s%8Pkso1cSt)E>CeBi`d;}0=k3* zXKe8vaMqBD_^(;`kyjWODx3Ey(mZ?&of20Z}$(5;3CX`K<9vMb2Xo;M=P{aq5^}K ziMSRudFilI1TQ*Rap!cgXa4n2Hq%9ZJd%*j1t;awDX8%isL7%x>y)b)#_cwTYv=zbdL7dxiX!o*SfFW z%=6#aDj#8lp^u|61aRAP5)PEFrkp_$*K96Uezr2;clg zV4Oz5C=Dlnkk*bgcH1PMsKcI!5?vL!5LX^8xQt`ij+0%!zNpr~x_D+t17_Oj(CWEZA zP91Z=&w=eqX)d3VJ7<5@mL%>hBVLUUY0aU%LFZ#uj}yO{nsVTlO7v83$KK8hoH(UY zncfLRetIs)-{-N5Q2+TC*}6X^kKH9CL<+#_Y9CAC+}@L}J0m2IAmr@d=<-AI4FNJy zC6A`^HdG>Ih+~7Vt7N)Mh?bUiXJ=>7C%BL&F(qZ>Ju9mMebEDnn5~?PBeXvNMLF2= zat4107iDAPBT1!r%o7Zq4m+{XSmf$IAjzKvtKY-Sy_iO zFX%qqF)YZWAHm|)*u(@Xxmb9ioNcAo%cFe~SR9)_-N+0HL1ZI9mXf|9#zRL}Dr;@! zGp$p{2U8{_%C>T7kiwf&BP1Vy2G)?!lT}p+Xy)kOM>9j@|BhU7IU_$mMKAEtC(bu} zHa9mR#l^+zaxKN9Ncx(cj%KLS)N#SuWVSp1C^*ReZc{nIU0v`&;78cOx4(0(zcx-V z|0SdT+4cW^huG!S)hx4{;_R%$f1MJ1=IH3-V@s!S5~crLNBzLhuSJ|AuB633@L$R! z_&fMb?sp8oe*K!EcAE)ypdGi<>iwVF0KYHK4Awt?Bqj!zmeSn{-6Np=mP?hilj&ESw-#vIU<+ro3AxE1&#p3YeU;PsNq%cw!9IyY?{(rTD zrquK47UA8yuLb{gg~5gOg>_v*IyySfU`DjBNTI+M%<`uSekXalI~(W?!JH*PmD%o( zxY+qAJDjN|&E#~bn9A)SMuN+n%I}UN9!b;%2D**GbttGzM5mKI*;lcfNg_6ISzP7?QH z=Ihf{!kfd{o-C1|nWb4qE-t(p<1yd3IBe&$wX%2tKH%i-{dSbW$x@waojG=QPY=@Y z3z({{`uycfj1jie?{VUXyWu!m)f!{u>YAEeN29j4*C!XSq-|7r_jq$;PK~bQ9}oar zt6s+QkKhFkSJaqb%-KM&O@M`q%b*_s&IO^s+C@T7lf!RA;}x5Z7iBa&Uf0VH;C!C? zC~UM{yUi`jYPsIl(UA_r1LKCDpC6r+G)lnpF;lC>xw5tvq^X&zp7X=>ON~en%4J<& zv#72V-Ex(IxZ~jrVpUZY6DzBTxj79uLU&kzm@*yO+w(Zf*m!tU18uFXJ3N4SD~VQ_ zyVF&pJ+M211Oo$OhWifV=|jB&45Uh_>iZgm2FpcXurf60+F-LDj~}4l0uEO2DE2YQ z@Wg3qYHGCG4%7@9^aUUw{HU;K6!b-C58b}{o$;zaCHabm;l!yH&;c87 zro>6#)6l&8BQmS2n|Avn?k_hmDpzPnfWI{~k9osJ5CQNC>C70E!Gsh;55`an0!k#r z#RY(C)8WiGm(F&B0TlnhKp=P^8`Fed?2V<2{G^$)1B=?NFSpC~?%>%Dm6w;7TNdV* z!2JgF^W#wk97XIkjOD7s5t*u(-XK)w?)>1FihB|fIs%}C{_hLObsDqVEAr8bD8^s za)!?#pRy4&L#=QjKUIx^M?oCEFE}NlM}Q;1aME_&jRQV4c|6!BxfTj~1wN6@m94{9 zSx?zyaYcfspg8;pAk|>!zZ1_N#J(x41{c=%A*DiHT%QV20ihk)2SdY?@Qp02tg|sO z#C$Gtw?b4<{*M3-^nDC`7X}6fdv&x$ul4V5ZImj;aVCxt!rmh`07FCn@a zS-H6%@JD}P3YCN7VJKf17X7~2{jMC~7UG>_>ZM@V5hn&S3L=xbzB7?1Rk@y^tcHa} z-@)`@H2^};1Y4mESg$ra*+2D>CBKyFbhKOU)qcn}o9TGHsi;1XV-6?bSLe{7xz%AS zC^lL6mSw7~M5HoBnx*HQW$LDQ+)+|eqW)FlxL_fJbIm13_o)}GZ~?h!d^7b)dwH%Q z)rG>t0Fpf{|1%JPz+!Esx!;-Z(MK`BIT#F}ga&LNczpw9cmelsFGmfks2h#*R)o;!2{s?+t+8}z-G5bLZ-4OHTI^@9(h)4N2KFyg&4P}yT zCKb(3`M8fMof2v!s*nX_wb>g@f<3|l|0S=%={q`GYtx8F%s%6!N*efN zcP3zf*s%z9|HpiTE-(F2{TP!TGBg+aqBLz^sEFPZMOo4o?5sgkR??M|g^2+fFBN2X z(Lh_c0sW+5MtUv6$bRmxp9kP-|A1tfQY<7(#>0l>ovO$b;G&xQ=hU9B5g1mOD#~x>miR06I3b1r;B^l*K=F#>zCbb3Z-=2 zQ!r7D=`*Zcrat7YX?M!WMHRUY20W@7{64#B6V%Xl7#%PiTdp+9lTh|-Y#dc|F!*_8 ze1C2708fjcHphb)OJT(s+_BtH?;L?ad?F&cCno?B(ogAP7A^@z*I9HTtRt+KEHQEM zk&D}S>x0h*Zus_OO9mKM6Ew;hDk@(8&U?m z`@If(drV>ykVkgHDqE_sIXLf%@{|hdVc<)^l#s|Hg;)s>6BV6KyJmZ|Xy+H0dJxAZ z7!Hk?zVh{g%}w3_rjU*JM#%fe$KlQdQ+-9Y3bU2c!bDEJZWuLLm{%}hVJ~X#ffE6W z-(kk`qSLvLbi(K}7+u|oiFn-fzW&*$ped7#LUP}4z-?K!MQSLEY^m0M@L;Efj@DlW z)L==HKaxAz+s6ojs;u-^fsNFUFjzvJ#UCOQxSWCKRLP{+6@TXc2?KR?f_j_v@;SN> zENp!N43Q2~g~66VK1Nx-3x9wnhWr@W zX;HR~+*EFjO9urc$Hg3BC4J6>+6@SwjSsIRZDZfy(~h(@G>^2t6>ez`y&s}CI&N0-Cy6)07! zfdl7gaZhB`n4&-AQc3L?0&b4xM;w@3FAbCUB|xYdgL~L_YEz7~|77^`Rv*%N!${l1 zOtg02v%o1N3zo@D=Q2*iF|&X)sY4 zA{AXlQGE@{aL?wJGSK(R5sNU~C}|uOtfDV3FK0nBEiAo>PZ(6idLauv7V!L;F`HMr zZSFD(2+1rSOvh3ad!&#<4mtiD9YPgbi|Xa&#X?@gG7wT&UVLaQDtgr!gi6XVc>eJp z*es3!A^Bw!R>w3SvN+aEYbL3QDdh&T)0#{D#PjJFcS1B#${N4pR@I2b+Rt_m+0cG_ zeYrR+sTh_5POSscXNi=EiH_$hGAwx#r9=L~9(gNH(@8SR#cI(sn#DQ+i^W(|rQ*#l zp(%L1t5x#ZqT!M&Pn2Id;)Zaq+oW$l#=>8(r)9x8HGeVKIEjb%kC`=F+;^X#gbxp| zRO9gQq5P_=3s=V@TFr0wLozP*3$gRTFVS1vf1~qHy;z6D`o9`p|2GHh|9MB@S4}Og zS>}Jb1z3FWr-HkjwFA#8egBkjN^9UMzRLB=*eSHo5XgmxiJ9|nSvSkK>pACCcLwJa zUfero@X0{XDcjh7{h{_R@NYgfQw^r-AFZ%1P1W`YKkIYU+!?n zpIE36!V~ale5Pdr*NFS*U86#7s)_%8n4Opvo)p6vML7hFXCq|mF`#itIUSQBQib(Y<&3OZ6^wE?ju=uBMN)mNGXLY9|ZQUnqLmMAh24e)df|9f( zeB&l{UEd@g`Xt@vug0xbqF6Pual4p&SVAYWh|oD}s@`hv*-QK`&DSaJAOLto5S&gi ze_=U^-l@#Jv$4ib`#Oe&$jW&cp0;(!;9G4UY0i;gE}5RlvF0R6lTO`0+5z$`OEI!~ zy`|cr9L|64u@EjX=tQ2fk_VJV7f%QUhuY^2kt6p7Y-J+GfgyFe6iR%ZN5p&dM~W<( z7VdN~V9HPEQdU*nSbmjBJhp=r7bJ1E@O zR*LR>KdM@l#8c})^QSE7+GoHmtPO(bX%Evqi%TITD?JXN=-w7wCh`qt8nezF*!i;K z6px+c(~qPkY*Q$7Z$hXn-y}E-iv3^Rx#Q{7eO}I9K2bt0% zUs&?cT!zm=jBff*j1xF>$nH3l%JrRiHg&>~tl_S_5R}gRHkE6XRWDY{zN0CKNI^K` zw9a^;vpF-viX(u|*e0a&%~;68T5~BXoKe(1Jg4eMX>T1`WZ*>k*8*5hzLS%{*unKm zd3yY%83OAf>clEW?4L2S!m4D2P1L|hifjvzv(Tz}!C3#`I!4uAKCFl4%~_YG6i>JoS5;2Zfp0oKi#x29u1ff?I&AGxn7b6F(~GcK`mu#XYi>tn z7(w9Lx~T3;{~sntDM!=vY;6{~(!Z^SGf;*wcy^+s23zRuFyP}h^u~cMq9Oi_)gp9F zJ3?>kskvyMe*iSIg*WB#ST)-B8y29!PskCtb0Q{y#qZglPVcm30cuUvrGw7FLON3H zKS%EgLbF7ZHLiswnQ#YT_-JvBULjx_p}|xd(~Nqo`36}$qViR5FVD=bC~LgF=ba(Z z;en2vyYC+lEFieJ4BsL zBrB}7G0AV{(PtVBzCs^SFT{ikA0bz$(X-LGhKbIPP&`$K~{YmU*6?7mR)!ETeLgi+$I$6j~ob4%K+y-(ARM0H_Q5!e#%Zgaq zR>M%Rhjdj$9$1B`ATJkxc?IckhpwX#^?c;cvu;?K>-JCe|9-1d{a@f@E2EM3tdrUYiI zkAhb*3=P2^e2(LAIoGvZYgJ1tCX432FJ?TRmeD=UoSqEA0V(SgWVaIaC2-M1-de75~DNz1vns z4rz1Lryb11hZ!@h&zIDCyd>C>k&$?UUVQDZj}{*&D2nq$LwLYI-=EI!{-snw4LolL zhlI!%oF zR$1M8={8JD^CoJr&D+LgRmQ?=h2ZskigAX^+@t^{Rc0-0E+pCGw8-P+L6$ z(`Lb7%s_-mg+BRQ)zg0|uV-7eULB~a`}C6|cs<2`%Ip#7PMe&NPV66U)-zRGFvOJhRe)mvcWMw_(V$2sb-r}2W>s$mCP+rnQawQgJZ z8*#KM!*STEsT&)*VDeH}Kpg8oIS1-!wO>LsP%QOugf1_OTwP>u;@LHmiHT}Oq9^yE z<0yZXv}b{`HyD=fl2;z57A~V=YCX-{CQ9j?2?a3serv=B0g3?As3!Ul?-yvly2eJXJ;g$9*4xcQuk)Dp$M!^iL%{=`ohhpleCWXp4M9l(>-e}U&6@i z0|(W}KGY|gCkTKoVoz=R7gs`5zylpo@;D~iW3*}p(3Ynkrsci0Cj#G6Fwc8chgnEy z?Ns=OxY;~>&Eu2Jxmwc+Z-Y=XbBBG*^vVtl`D+3;>U>hcJc);Pt4^4!CEm`757<`? zYho!{i2HTC(Br4WobJ%p$W}~kWz>L^AN;eQ>nn2Mm%o6P>Gq?2RbF&3%Ui2V8x>cMX9hzgkbY_C97-w! z+h)6|Nl$v+;jVH~Zp{6eN;O!Zz@w;rm{B)w1cn6V_dCqHPQ7*K56q@Kk=?QOH`uEE zPV$FN`6jK>V#3M>U0kxgR;hv7TT8B`xW=baffJ3WRUWzOzh@_y_!nTOj&7U+b*IwS z@Fu^c>0o>lV39wmF?k_Ajuyn=5E_XrzZWrt^4bVV zdmn+eMeiF3_sG$w!NQanzC$tW+)2&cK0a-IF*? zr`fx`BY!i0e?+cmxhgG;!QB=_&Q}2k_cPmiJD@?f=lI0bg8&&Huk--)7f)He%g7O4nuRgG+kv@^qv;)k|{E$gq1)FYVE?9EC8HwxbBqU^loNb#_~3qI^% z*46HXt#A;8$sYCRbg28EA9;)P=qLNrCAj#1XGSKRwX6)DFwyN%>zw{x${@FEiArl4 z9fQaC8(J@sc@ozuJ=w=V-+m3P_Tv20{O3T(?1S@`f}$}9z@@X;bpUen(Lygw4iP)v zwsoY7ABB(y-6&H<8uCi)k)Ut}yQ#5{H-#&gGX-YYF77v@j=DuvoT6E22?_)&GiXqr zerriS6TTd>Vy*j_tq>+--QQ z9AXehyz5TI;Rp5Wi;cPOqs-0Z@;ax_oY-Zn_J~b5F(6{G2hlLVt2cwxQ~4P5+fLsIDZB`5mfV8! zuVZJTddvyK9nyyFj<&=jFDVQ+1(m7{&x+Fl6#N!JIZepvn{h@^ZQnM)En=4-YdS1h-`btte~C$;wxRN zB<{%I3Uc_JjYg2!?gB}lJ%KY;AGYSC#eIoVdG{45Tx$OqaV*Xtu|h`jL|pGNrf#AA z3}!q{UfbgL=tRb)Dw0V_gd5MF&1bEg__z7%}=SNn4YzR7X!1Vxw$3V zA3q0|*QibYRT)RsmV7(!PIX{GIxo8UR{83S!#VpsYR*QTlvLI{aBbK{QsZX6HPZQh z*Fh`8x48=+(mXyRPH)~XG#AjrAno0IoQ>YmKX=H3S?40onU9&^OUvF`RRsQZoS2zh zp6~6h52oS4#c*`bAI>r31#zpQy){>e&SIe&&(H58npH(QmmQRzo}OqRcsZ+XmoM!8 zLRAg`E!3?K83f8LoF@{3cGE4yb885wF=F^Se%3E&vZ6%0zn_f6ZVU(i66JGk7ei>4 z$YDpj#CJzb;n@Ve9H}Mpr5yiQQ$0)h?1r-h@192rRij}0@tV5yPbA7#|R-<&{& zCYvf{_yb!^M%t4=hNyMBa53}9ACBh!fu7`+D;qyyeH zb8B?NCvoM=hAJXkSw|hvJ5(7L2xSCC&Lz(FK@HsYX1z(*jk;uD<;0iv9pcOOV9ukr zyW;N!2I{t({;osVO+508bQ|yYB*7yHwNAecZr8U3t%_8cjqypLREj?rF_o%4%SsWp zpo?y~&K4(H(FFDn3lY<*xgP$tMnYc80av5GS9j+*%=EFiy-BXKxQIA^WUl5*e9_oE zasV>6(pMao5%bM_I3^UdxxVl&un06{;<<&NiPwAe>4Hekk@5pnz@N30S6>L`$}|ef zBf7etVq#+z(a7k^7v-6yQaH+1gt~7}mJPsy=>18$TMi_3kgg0i0qrg|5 zq4?^ep}+6#hPSi|Xp9cCT3=I~Yrt){37}<%kd~C4*-f?Xfp`z?N5hKia`^Q9=gMSR zK#l!pQG*m7Vl*P}SgkN-hhbB|!9my$tBcCBOSb;Ohki$CtA3q@uOA34-Na>gHO!~z zYW7!%EF*?|+q9+z?~;$yLCJ|d(rMSdm(JuojO z=9B6>oOfs}CT0{Vi*VFykNB9dO8Rru1S-3hC5f#fHwRN0+T$1#7!Ok$B|Fl4jmQ;X z_nrLAC}6D}NXR;xexHcLLs~Kyl-1ZPgBvA(m>8+?iIs~SWvcHcftU-SEH#1!%g=Ko zUw(Wl_7#uch`^X(G1!V3cx>9chM#_V*w|fGS5v;YHB4ij5)SIm`!qcYFM8)#ZGRj$ zax`pX|7Gq1rPI;R3S>*kRuU8O_cXE8gV^DbIr7@VyjocEX-acHsb%uzbRI^z{!@$q z;<+=+QkxqbM;{cW)(#Y=e%Yej1EHs7^+l2I4O8e7Gk7Jiz#ozC z@OK;=p1$q5KnTPpm`v9=CW8t}VAP41{uwXcV7%Te8|WuoWj zJmbL!KRzzFZ^6v9m+j>a=W{5a;ae|Q?!nyG{UWV99c_>-6sD4sP`75G1Gb z%J^FAoga|l#~42qxQX1Zx1H4U|OCg5_qBTp1H^J`aUHbm|MuBbxsMV z(;$g7{Y~ayo?hO9vKj=u{vC488rGYR-F#%Q7*iI^cGcs5Hm|?-!H95O)%WDeZ=+iS z`>*Vk*a7}Gixl^32anESNIYH8zF=|Az&AR#;Ku zDF96kLP(()H(p2|ug#}0xN~=}592St;FncyyF#?cnTNF=E`K^9TL^SykNkS%!5HW* zo2};;e&dxZ!YwS}rGyy&QgwT2WQlfj$aUd*x&Llp#ij>+-IB_9OvhKw({0@(ta39O z&g&3+Ov^KGNv=^(e*e$hKhRYYAzNPOINm?Sx)o#6Vsg(OZQhg zrrHXm>~zPjd+Eg#mBT4KXlAnKAKXkl-u;I z3^_PKs*&fYHwn2P;KdhB$Lu57s}QXO(o=CUwqZtMYiZAg1mHmwkw+xDV>Ds+R2=4A4BoN#^1WSSkcXxM(zy$Z8!6m`neQ?*{&OmT? zhw~?U-_PFnQ}x#S>C~AIq-sJk(%q|9_xfGe>T!|jV8{rdn6qV5IZ~*#AAKo(tTM80 zy3V@(MPsWCIo#KgpkqStKrI>$F&h#AmKP{0ewA6amfjWQR0p8=CuNXw35~_o3Hn0Q*sm$nB3?vm91GWgT3f z1xCC#b%P9;<&rMU2L4=2n%lQ5TKf^U{K*vknbcYH?_R-wloWu&9*$T>duD%gVDm_u zb7fKtrV5qu*-emb7VEPTaH)5tzq7#rxB2uHvdWk;AjD_41z(0wD?he@!Y|cR!VlBY z^y^g+n%(Z?o5eqZccq<0!t?Fa(f&aK%#Q3$yWK9i4P!N>Twgbl<1Dm6-IAJVmi6OiRl>#0QqFw;(vQ9ss79 zDnKLz?viyb0=(xDhDe+m&x7_uv&w3F&nXTdDsmYwOhB4MMVsNLCItRTssOB)FnJxlzg7@0W^9vW~5zA z)+K<(UPS$ov`-7ciwbfE3)jkUk0yD(fW77wjdegEawRC4X!|-vi@sY9ODZ?4EEUJ7 zpkr!VwwE-`DTXJ{fj%~bT0}P3zE<9pqaRwQI zNLy5H#OvYC%Y46J-xa)^#5-~`H3l;q(%#zRZ!hz(%5TN!_Gdiw`tB@ZC@z}KsJJQj zt2JEE$Tl=SD3k_#(-GBo(~c_$w{8q_U_?EHH?=;QiA-rC$}S_cNwIkl!f=G}C%gW= z3&IsNk2aQGmZWE7)b0OzB^AV*RTs;IuSU*{w}raWk+k7zr^VMLbbdSz5nD?PweWz6`-RHLsd{8E-DmT>85Zwas42g*_+h% zJ%%z*fwzRc3$^b)tb5KV7~7CS6W$eIamL<_6z&!G0c6pqjB%AjLL6djK;IR51JHJ{ zzDIR(t)T#8F+P;n_p+Jn)_4#RHMDIR!1uxeknje`m!CnYhr27o+w&cZh)NKM5}$52 z_(i6VhOTK>Fvj)6)ym1J?;}=0K>=I+e3mHO-0wxeZiIFZ@SMq#fPp)TP066<3soT* zHKJ&)Uh$*T4Tr6+`U=}nU(HxF`3_MT3|PIqh3j0+)KKE}f!7v7OW*3D`n}$vH=1;l za_n?SAMWKCp<&S01&ls1#56uEI0peAGmn9EY7(`|t0eQIbopYrru?~G5z_{2(KpC)**2Uo7dx&|qdbW7Wo zpylHiILtX^n>RthzEM5fqutsAD55KmFOLG;C~u3n@Y&>4BmOR1g$I!kzg;y5(?#&tQYMXzI{kr@l7}u1o7@ZE z52&WYiBIdPsU>NAW~DTgGeS!MMufnB&98NvUA}o4P5Ax`EDGW3&qN*iK8<2&J9!R4 zKFjI1R`b;#6IzZtkdpYE>02KzH3_0$XG`|xpcDU?FR*z9ca+h0KJj~#s+dI`jfJya zo_*EL#iwG}T7?%2E7%6Hl*pJG)?7MsctFxE-ixSM&+a$|@9P*RnZbKgQ*zbwoP56? z>9B3>vy+Z4W3DHWQh%j>k~Q5%3b;d7O) zbx0ly%ftIc=vALC5EI9#%*TMf)HU6PW1p@iQqYDjqTd-rV6mE9g1dWrVZx8sq9r9&J`Wyq{TslW zIN40GE&TbfQnZ*@z~2>cw&S%h<~4wZg-1eCl%l7hqx--`ay!hul20AKwX=i3&d#n? zZzsaokZ6|8K|=%k$Id7?zZ8A0b4~K4vhne1`!h_)C$7Y%s;YW3C;IoRC@IEYsn1Nc z5>2ueVm@D3KTL)s_j_+m{N*F1w8K8X``M5kZbt_oc7DRb1^{Qif5!69f6{HRsfQpo zkw$rU1duEiAG?E%#it<;CZw1c%Gm!x0YU+1qoA+fL7bTEa8l&S*f@S7;~d)$$jHe5 zK^C3|NI|A^NCcR1ul_&&<-Z|1z)I_X70&;9B42H8ZjObORpB2>+M?|K{`8{UL~YfXICS8Sht?|Z{MsaUo}KM_jdy{^F@+fwz$KH`T1n3E;wGrP}7!X z%fBAyEFrmK-DoQSt!ximo*0=Xf^8c-Tq8RvsbCv$QTrx%UecKC5*L$ZKZe)xCAqn~PxaBZjEsx~M@6Xu-&p?J>FMbYva%|9 zg$Y4HaLF9zFFidylaiA1|CyScQP+M=+lKNS)Edj-BH4xHY|2G@1lGz106V{pp^(-t z@>dD+`6s=$H3Dko=)ax;A_|}XzklWb?GyB|d3m({AdtSHVa`AHYR_}g8c?t>UH~^z zYaIbdFrEFev=x>!Owy@53MC58Ku#6}gM_=*ay&^wm~|Brjq0HrYtb<@PdFlFmehC5k|(jyCZNE01y)9$)DUQ?s19z5 z4GDM>49KX{k}x#29J-Y>bvjza$KA~B8y@a$=o9n0&cNdFVna=5BtD-09l5=`0B>SK z=Ux-M8& zQBhG$T)f}oy}UfSj?axThwU;kfICt%0f0DwCilDht0e-n*1^HS?tEKevDsZQAxy9Q zk+a(kSV9#5>`9N}fGM~O&_o-af15KsZ#1L=aBx8yC*cY0?GC@-;A|JAd(l!T#|M^3 zM};5oZD@_wY;6xZg`YOVbhNeYe=8Al9X9)?YinUFw!C4|`qVMI({$1!)p|X+sxoU& zPUzWT$U@hLvc%8b9-6_t8l`w*S6(HSVI#A_X2~rHaqF`F?v3w4C$Z$89SZD6mea*C z?VR2>f3xipu@zG}D{^o4M15i@vo14FZj-dQf z|IEUt-f!nbp%W2lqC06dI=#VV(xRJ@6Eimamk4GXQoz_Qa>=VEGGDA^HER!(!Nea> z+QGH09E#DnN8d%3X+-No^dPut zmCnS=4SwNLV(>*Kos`sQLRm~war^`|46M}J-W~&}kkV1!ZRcm=@uZ@hKJfXrr%O_- z9L|AVrLun%m>Jo`{?h1Ir;0+vhmc0hRaJB_mjwFvvJDr zKWY8#8B~g+zk5<%PiKoG%?;(5S)2nPdBR}uYF6JTZ0ArawpcN+$?c0DYDd>6>*HYG zC(7X9F7h-}yIFkh}?2%7= zn1jNI{!*PDl_6t;k`J6wq##Xf(+y@loKT$}T|-jkQBk>~~@SeETd zs{=ZLcQzULnesH@gNcEftu|LI)~rMAjUgsSMD!Xm3hQ;4gGYx?RtMPmFA$u0qw!f4#${0*WNR)Rf14`;v}X+ijI@!KSLuB zX_{dXVEc4Mo1R{eL+0!L5{O*e3oQj2O>0cLt;oW{!o0ykPk=F~aaC%d7?}@cth_K_ zGzks9KSct9Oy=|pK;^=xBE)Vo)VA_?S?BMA)*C@YTZJqB6!7x~uzLuz3Nt%&0+PZ? zg3teKaR8qP=$ONYI`NA!eUYvCAlj5`HQ{#^8M;@jTt^b-bDqe9> zzx+t&55h{f1m)e;L=S({&`5$zA4oSu4%`AcqES!AwyOO34()4d>UJRCggspLI+Njj z_VS!9*9Q$T33%Uf0GhYe^>xM9Jmxh(KhqH_Clqo7ej*)C<`k8e zkJiYctI#GOAOHe*H^9*%){0xrBy(CCnNU5aTmN||3&X+{^%Vz5Ry=(uwsLVgB+?#d zE+=>nZ9z}G6n7L_t(yWiKve7#VLTZJ-;V>z0AxC*r=8};z=4qP@VM{KDh;>8hApGH zc7;|geWPzfwuirwgwdgZXJ9Z3goL$ZCXDn8;ECfn# zWj}m?7kavP{4Pj0O*_2+Eb}=@$TR4i_MCHbLx7wc%GcL-&T8iw-QEM>;=zy?o6ivw zAmH^T^A#L;|7$>W{`YQI=(2NP&pskfGmx3dI*N;W>{QnqQsrvLE+ooW!s8vAPU$FD z2FRh<>}X&5vzv~@$pi-m1{wfolFBC$z`=GPS3nrhEfEl7)5xaML5Bjo(FZB1Sg1}6 zDha*81V%P~J0MDL1Ja_QOMa*AXyjeNvmthvxd7mVeGPmE6@ah61s&46nlwfAH{HJ{Z9e^-(Bqgj1LCJAOByp3xbjluz)U# z1dz)ahecBB+m%P6%lL$5rfyrxlVML{iHOH65RV#h%)?B9A}ye8#cq-n zIS&AES*jGADJ+o=K+jC@17P6P)2;}}*yGm)v9h26S zZ;$z_$2BJ_lMnRa;O@?MK&z{(Y_a9Qd30T@HXYDc4|@WD?Pu7B$Cal$U$$7=@oaIm zR<8y?#B0&Gi--!_A^`W0T!i&rh30c?8DzVMtb!^OD)nwXlwyLmbLIB!^pH+OtcAIF z(n3R9_b$`gnxew7K<&(65>|9@*;a{2oQ9I|eUJV$JoBR9CFkaYmbfLJ-#bZi3NDOB zhJF}Ou8er*8K;%|o)mGkam{x)iD7)Ss1F-SB`sG;{a3gyt0l}uH@$3YjoWDZ@{v28 zx9X9bB_Z2OyRU15h$YfB0^4NGo-};x=XATrTUQ_n8psQ`c0NyK+mofOr4M(_uf=Td z5%Tbs5~`qx>PznV3CW(gBfVUXqGBz+M%7YT80q_t_;XRgj4y1ilTD~nyk~5(b$Dna zjCxGU!WH~9wB*lnIJbOk$1#KR`^Vb+35nVnIOoG;{9?vkV^qj$BGRsL4@D`L7?{wh zBYz97GcP2*awD`^y6d5VY!8goSrcmYD0pSsjuiX#GMF%4;@qFnH!ySa|MR=mej1!Bj=jpqRo31G7$UH!%-rZPk1dM1qiQ`Opy@RKT zB74YfU%jvM8dv zb3YLxo{>l4SKtM#X@ZZHUD4}JhR0u3`6z|%xLul0ZHezMP*c+hK$pzho6tMKs9?k` zotD+igh}b~SuStF+aU~cik+Tgzud0c2?e~s)5U18CFuQ zz?hHntOF&trRVXs;~F!I8)y5-Q>G{2qX-W72yn8`^YM}rZ#YR4YJNRgk4l^ zNGO<5Ywxhfnp?n3O*voMg^1Aa3RmP<56#~6yj@l6cue%Ldi8M9yp>e6CF)way0#uA zYcs&-@EM)R9b^1WBj4=>5n4}~>aT|Q4X*4`-rbO!UDT~ENs2WGEq$&Zg{v2bz#Gt_ z>fTp8$Xdu)i~On6e}vc4;k@Wrj~wsTj2Knm#t2wRv^Ut*Dq19T;_KE!Fb!H2@*oIT zmpeS%TaNcWW7mmJI%d<;xOH4*V&`Q$eXU86zXL4oPC{`AT~9vm(W!{9CX{e%N#;** ze#7nG<2J}4#x*qg;QJO)&hKm;npLSJYYU*_MT6dmmPctA452`QoSpsWi^O5P(3P@I zlZQK3;7~rxt@W04dRHm!ozZN`@8^Z^NglL!)3pgX2`#WD)cQfzWQr&Ho4tFh~LszBEQYsTGwq$vw61K-}cD=Q)0OZxw=F z<2=m3rz?ce)XU$7TEKI&;;x3JzPu6HQD_Y}yY;{9RSzs2)h4*`((x&G3yw%@wy86R!mhOX!7$v}f?Y10KPX|Bfctmk? zmiBV_hWF5W%@7QeSZAOPrNFdyaV=wA{_-&YV{&F@5xhe zWID6((XQ**By$~_i+`VJ_yq{-DnZ+99(!1@rK8ySxhHrGRjt`==XK9I>8N%Z{zeXW z4e9vUgu1PV_Jb6!Y=M}0^h7dSz_y!%yXe;xj;`z{;W|<|xo$IEyasOrpOGn&q?Xg@ z!lvLrxeBxR=w0v2kHA<~ zBBr*DQd123CTngKp-7H=@(e%M8Kqr9VO0ofP*p}!o*ku{K*Ov!9z4^@;wufGpdBCf zqCHEE-}U8vDxk#sL?VOOfo4ic{;sH0_=VJENza!!b<6?WzI5&R7PF$%v|uw}B`9Rzo|;n-YUMRs8n zaN)yRt5$!t>g&U5_|Si=9TwT;^*+lno@vNaAE%Lm+*{#o=&BcdxIR(;(JL$V;EN0* z$wt4LV=?P~FPoA5n6EcWa39FR;DKlJbWiADTwU~L$g}vXR9+y<1RT{_&4(v%49t!& z^Tz5>W!0)|%6i($7vl2Az;&34R9LcrJKIPazv|eJ{Pb;5`Ljh1uQyiC(6iIX-6}ku zq~nsPV1RNI1b>o^NK$pUYiO>D)p3)SCwd>)$jFlh3HeG(NbI*)*iWW48-s#3bV`i{ zt!~~Guv^mLl7@>ygCX!k_XJg@^u_~h{5DCQox<>?l`fjdhwCt@>RFQ+5px6OYp+)) z^2m@+BT3U;NFe$oK~;AK(O9H@mb}C9)mU7#6a{PYC zYp=urT2o)Qm71Sx8cml>v6gm^5cObsig9mI!dfkOPJbq@!g4le2+yzGbB=<=h~s`w zyKQ&QKyaXj-It_P{m$?_DVrd%v?R^mDW-H}$Tx_hrxYs?c~Tpr2E-6}zk=@e`mpW& zMstWG_gzzLxfwThj>k@EROJe@3;gY%d^IP(x?Qsg6CdK%w0IQAJ<(pg%ugMuf=X6> zbQ{7lG{EKqo_}*h;hXnrKdG$s(Uc#3YdcCr@YCS7Iec%=W?yhqfo#zyE5z4ubCO}O zuoz=Vhm36YXXQdHbgwBGDd47=BBpkdKS0C9pyZ>*ZrOCiF%gO#Y8N0OQ@%KBO^qZ^ zF-&@@hMTXpgpLXsL^mhM zo;*1GE@@H#J?)#%+j>)`MFO})($S(}6SB{T6%6PUHg$QbdY4uh_)4J%fP?Zo=-2!A zVh^bbLP0j1Uwoh1C<)xq7LPpb*u>qL<GK-@F=A{1l!ZF=bjg-aLBjPxI;ERyc}cx$PrpMtHs)jt}1pyOxAps7lTtfTwPt z#p;rN1Jvw{e*0$d&*4mg)6N1VqOVjc?ESQ$Fjq6wL7BD@O%@Xid=l)?`>}DG5!o7+go$k1U)l*JrPO^x~fFNyYAz`*PvCBrE+ORtrrk z!=qrL$HBE}x7+0wSM5E3=Gb0DH!0Y%+gl*0KRH1AAU)mI<4asD&MjOs38a2fD9E8S z;@aBUNXgiouW!k*k=fy&dy-^VexI7)+@lVvg(oKRZ<8npo-Om_NNRYp97^RR+nXF> zC&x&%`S~)EN&L1;il-4lzYbARWT0j7yC4t4dNglv6Mm7G_y_UHn5wY=8Y~Q43~04U zMY4hUL93vqo!izS2Rr)%uOV!8Ba8md-%nrhiVa5BzF7Gmpg-0}Bg{?0K_&DgC< zK2#`Ndf$EQdSj`ITF`;&mlj7wgcInD(MY&7g5*h7YC-bNznv?3Rq1_hq1*bkWFK;VIgrD z>ae4o%V4tqdb}e8a*8aWPf?wyurJ#0)VW~JTT60URQ(mQ_o-=cUMQ&FPwu8hKD!5P z{Gi|zW&8l&ndoS;zV~n&t4O@@`puK&#KhDNqQy39nJ>W9{kBPcQejjykDZ8%-G3d6 zZb`$9oCJP>G^u~;*FlCD%yX+C(GeesY-VwB)-9F8EmSOu0$( zpWPLSJ1+^d@B{)A%+=uO3iM$HWJ{iAgf!%RVFSBUozaG4eoc`>Yc00-gD$0>TV5p| zK`4Q%!tqBRAC%3}&zCaZ=puj8S7qrZ+du()&K334iu{>c3h7MoU(@z7ZM#WY&N{>m9GVh^uI`q~29$9D()E$Z!in}N?}-1lEz zZ)D&Rmc3I8<*RjR1kV-p$;|sVU!z4|E*WX*>ZM|+djiPH7^P3)9D$8Cf0+V4@_-DLFGA^k0qUe@KJu()YDwC16NmU6$dC8fel;JGXL$nOs&EO^<92bjnP9Z*6-iY~Z zT~^_wM&^PL@f0`d2Fv5}c>GAj{MTwb6-rSlAZ>dlohVD<{TKG|(xUi~=(7?!bk`*dpRI62Ar$fF# z&{m19<1Hs){1oF2FJvJsi<%7%MD>LP-p0g=?#-BX>&1K}p&vPEkl~Ysv>VfJJvD_MQlsP?!Hj?uG zBDPN@%rfdj@yT&?nopR1Uy3FA9019AR}o@$SuuO^kP{}hzA=MW3T^%7kG)}455s^} zDN9^hHZeS*>9~;Z{;ensqcqhuqphE9ee6J7_?rBsentW|;iNGlZr+bmIC^$Oeif#; z@1|$C#XYDS2TRRYZqh_MKku#z-M~M3);`DhPHvEM3c=bJz+Q!&F7_UF(Mb--BQtdy zbqti6=^~4F*|g^x5*&MMl59Ad@X=br_;$6pZCS%%<8tUu|LuYRqLab@?IMjI%K45~owbg6SbAZUha9N>Bxx9-WT-rMa7rAZE8Ad>)fsngeEO8SxjxV;(iG zw^_Cw8t*a=Oc!l4v$(A1`)I_aa%?{<{V^^ZaIuz*p?PgOq8`rKizqCu1t-@NUeN*x zwB+%$qf+s$c~KOVSLi6^0v?Q~wm(X|)>}?gtKxrIH;$ebB-aDhnHI+Pb{lGP{Sw5x zdfHXrp||%AEhz^|L+E5Rxs79HQn8nQ5W18060|o=a_vykDkqv&$X~aaZ(0&Lt)dy%#_%|Z>Yb4%d{9=qsW&;@EZ<=H|Oh`jtXx!*mHWASXK%ljFRAz1US;fde z-ERu+A?Q%xs!H8qv|3$|cJDHbjABQ}OJxVzDwd#=QQTegfyP`%yOXV(q=$YBD_+b9 z4o|dmB7W$yJy0U2n27@YNT3rOmDAKJo`W(pIfHXpFiq zfoT%@r^31t@{Bew|H|bhnw&{BPKvZN(bRCyS{4?41&PyjqC7TkMD*Psvuw0zg>f{- zx1*(4i22}l2R>y*%t!nM^K zY--%U7>jlHAEr(sN<( z1`0pDX@6i+#bww4jR;&2${wzKozi{V1-HjcndeUXic5h(0NZ7Isg>6uo2&n^3>j3S z8|DM$?U7TWp$LQ~tA$}`CS}aI=D>QfOcBM5Y_#$N&8!e_)U~qsF?f3{Ybg*ic z2Im(pqRQ z@)Z8wu1ayqWTx|*aouk-VkpK#^1M_P({Yw}o`Uw|EvmH+2q$b)A1GeV)*Si$T1J^F z>C`n{O;d#}csN>?N^DRK@q8CQ=8f9m27`Ok9(l7a6JKT9Hh>YiSy1nC|ANaKjE^L& z78K?_JYJw_y(^XQJm>PcZlGM5E#ko_`YT6@Nd&oQTnktXBnQIo`B}lq@csRL&_PRT-Jd4ao=T zMyI5OFXlh=VKikDz=qX!>U)?n{o+FIIbeoepN26G3?Z?akBr|dhye73)zZJWw(=6N z>5D!pc`aC2z6Os!R67aqR+Eyex4YcM#{oXXj6jV;Q2fRs4mtALJ3#H90e zct_@RU@w<4@2CQctswro$My;p(>8|%n~txxx-8d?LbL2BIC6$oShL<+hQG5D;X}Q$ z20AsCx&8OCdJg)lMA?No!|{G91PrNKs{TeHj8w!S5Z;&8Cbn5Tk<6Afszkq``*V6b?xI-J2y}QN z3QxTA5OFO~Z?9QLZzi53=2fM#Q^FP}eJA!F+Q~yd&OJ5M&vo$* zd?L~)bQ3okhB_MROhZno^<)_0HaBV_n5c4WwwAp>10El^GiFQo)&gv_2XN9fIphz` zS?Laz{>00|MHpscb87u~)mP<7R3;#x=A8<#byL?Oy=GbtscRI*i zJR)%(R8d3ia3K-5$ayF2ZjR1Jm!WU%8Q$}|Jy1Qd6#txiV;S#PnVs-_tprvP@uJFO zh18#9bP57nd1WI}d78G;!HF-EOZ;Wx_#$8U_Jvl)!Al0L4c%*6)z#AdWql;JC@~7n z8`rXRMF#!5E&;WRn~h?_*DjQpk-3yBU8s@JD*^8I2Px^}oCFq! zyvQhU%z-_wq{SKOK|K!{qU-IQ&NA7xZn!9SX#Ru8;^mh&cyGOz1FVrwj?5U@%1W_0 zEvNw_b9i)@{aK9m_H5>F?|*W>q2CS7%oZ|~AN{)lq6A<_DIy_Ja?8krF)nJXuMbtC zaxai;QL{}Pt`gjFn4>!R%~KnkfKWFgINqdNe(Ea~Z3^Cry$o6alQlpbQ z@#Re2s*wv3N2@0>+{muOd1dMAY@gm2PJ4$@BM}qmE^8j+>*SUQjAOj@1Z-35@veKs zBbG~uQF6?}^_!AwGe3n_&$X8@Bdvke?Y*>}il-g*)CO@IYA2S}NsG6}UMN5vuKev_ zoT1rWvd3ag@Z#xkY3yeW>{cgpM{}R$7G%2Ntj}RD&*YY38SQGz z^;SJcRGB$Z!$q}fe3@8#Vds6N(3j(}&XIkp*$zH>aUr-C#kD3_d1-0Yz_d)&O*SzL zZ@knh$np;CEm!^GanWD-DJ*(H^_w)FYV|h6zuGx3CjBSwuHZOnRE_d<%jfU3NPL+O zng{xp21totXjjKa^|nnyX33aEO0&iJt37I=Y<$6J2sj_zyyb5r+9zunA-sCzu)9Hr zLggR%{FRSd{N$K(>Eb`5KYDTyI=Lg}=v)g+r}5#8!nt?+UZj`yyi{~A6-#@7tJ%(c zE4(^~(8%YbaeuplWVdGo>I*0;SDc>UHJCwp!ut(-K=#yq?c6*0>)UtTrZ5lvI{m7h z+Q(WoSwgxJl%GV!%xwcLay@P9zUr#_zPeO7!XhD6ENzON zy&l#`RhF}zyLutcdbOpr*x?+T0KZKbY@@9y>c~WlHxWuYVIUk7E?kE-0*PWUv9p}P z(B^ZMSdehFzrHgZbFzWa!n{gT64M#_;#miU{{y^IQzd#DlTmIUcP}Vh{--@?HvKmu z*n|GpW<=vVeCuCpPI(ng)WPedmZ{d_xjo%^~#}U8I_q)H=ILB@pdmqOU>>%!8`I!~mg33VS z(C3(DPm0f@88Ky=X~o6Gg&PDV(ciy^0Mv5-i!A)8h=_QZP(Y!H_l(5+nsAm=Jr|R= z0|WzX`S>`>=TM;`fGa>>M={`KI_4$`FAF>}El5m|V$NXVaZ_sgsJG z)vp&94uu{qXps$RBtwddNGTL=CERzhq z`AuHe|JoBo9GIOsC02Cg$E%+;p`zfbh_mbj_yneb3b}XE1~+BoOO3X#S6+csNDMwdaeL3n3|Y(fl=nSsm(j|y}@#aX45#Jl)(F0 z5oHs|OS;t?;7nEa1(hBquWES*+%gi@N#*w+=05S_4!9R|4Fh;DF)wf6ARJ_a_u|aL$zUsgbZ>gl;Iubg!?lr|cGWrI0JkqC9MXKq1SM8MOxflD< zzOG28z>PcU?%o>e=`Z>*Efs2@xv$b4yT-U!e&1_sK-xj&+r`+(L?5ZIE&8193%)0H z0nojCp4`}UNxL$lSyk$G0Sqf*)U%ol$a$TGg7y~a7bu@}{PRzAfyuU=+shN^r6bwj z2w>rM+U<8P*mMpN_Mdhwzb;{72s5||T(I@Pya>W&>`Dlld&TqDg(vkh0FcG&xTy#D z4g=k3>NGwJ{q@@T#ILiH`-ySWIQm+mBbzyDwtYCO{c`P@s!c6E=T3KS0Mep;k{tvi zF@xdB$D|6WG?AZxB$R^HHd2H+LNs$*ii-h`H(`@yRI0msSl2-Ox&>_VmrY)w45^Xb z7~n1h1qH?9xQPtdn*K~kKzpXRqtO4d7ULS@RzO~4%t0{vLpfy6uZx(XE;B1${M~+O z96BbJFeqsj-&ha85uP90BLC(bfhYd&nSFoS0800nndGyxv-#A2(u}`vnFrXZH9;o;H9r`&X1-?XG@>dW@w8Twfa8-}jd1p0zuFUysSZsXi$mpn~mp`tQN=ENft*&TJ z-~|Bx_Ci+137*N|LFf_PPaUR%qiazUb&&BzRNK}`)U*Zeuiw8TI5?i!A8#{$^>ILE z5Z?;NV^9IjJ?cS_3~CJ6137cV)8!=6b9&SBPJv9VfT>fclSV0_8X-7(HyS7CgF;&kRH z676ev@6HRu+;Tyb`;dW_zB5DI)M;3Lbj)~u1VMa?WKwH^U`9&5Zd;yy+0w`b5Sn`H z{f-D9J`VOgQgy>E4PX&_-5u1i8ug(Q^l`AV#u%q?S$6=8Hgj(`YdXIxQ={t<6UZxj z1Rx~!%*{jU>v@{*PY08D9ciA$D6Y%yl1%KLmsVXpJspFCQqwbL9BgVlrX$3}fG6@a zMRriozp(l2pd7#yb#6-!#@KiZG9x&1aue#vgZKSwAWE^(SXo*k)noHF|CvqVnD!R# ztp`8R-u3Zc!>FSEORJ0TK&guY#@~$^?iZP5*Ppyykeg6@1^_H~f}1@#?i+QU6e4m$ zFMvRDBa;f?1H`JBogE7hZa~m*sCr|WBG=%jJ7IOx`|A@nEIVL+RgR2hiN?gmeSNn5 zzM;mL3kFoXyf0tAWbu9Unw^`2F#Fzw@%>lhdJB43KxEeU+G@U!aED;7uYWiwz6V*= z_6N?6r2IKQ9ncqed=eM#u^z@+g-M5G23Hfj6ExFP*PYh&R_y-!kLgkk%5B=0-op3C zprJPG&Syy`)wDr6c`_Q#u%FMfVQDM=)5_ChP<1s2FBrHIOKrbe@n!A>e76~^kbz3c z2FKs?{?8v%TF(fl?E);%^@QHr?<6lwX&L6kwtvMkaw59N)PkX!!< zGdwgj`H#UR5T^>*p@t_nJ6Z}Dfn`0F{G~1k`gtL3 zNDu9zdw!~ z<&ke`M9@ehI=_d7xD^Ko3VH7#2uy%^g_6e!9!b*ddHHZsT*L>35F}A8{OqX&PK=IB z+}2J4*?8RcTz1qwuJ(YW0Fa1@09^JIW~S%Wq1jj_6rdm5sLo&C+@!gqnzWoMj31)= zOFH@2%V$dh0b2Pth&u0Np@PTh+`eN7d`DTI!tmIf>OTq?ggl^^YT<<>X%e{QW)LlB z90rlfaU`^ND?c^;D9u_M8XkV`S%6F6alTEl6%Y^r5Z+K_t+(_70s=$RIN~ZlZ&IQ~(5c z@sk4fazNAg*(TSrA(m!`4a8?@!cZzN7GS>J$$!*LwKtkBNCbYkBr+LJrp|+@VDx`< z4%vo$1Y|b7f3~7OKek0MKWf%M2pB=2C?0!apf7U_V6YE}I04t}#ib>CKoR1Mxc%#A z81joTmeO zUUptyUSj~S{(EBsu-r$gTzOAfmNr z)*mrIK3f-QR1Wx=lPR-W5^E{60 z|A^qGUR)|>+Cx{4GQHOk`CZ5uCw?9$n792t&J&`Yw zN@S{cJD~)IJ2zpu$o*{d`1G^`kP7YHch>Cknb<&KvFID|^O!w#J-x@Hl4i^+?6z#J z^kUhKVBMacMYQkTG(6ljt4YnL!@zHz*h2dLMh!RS<9793yd>AVYnCH^pr$<%)STX^HzF-4Q1;!e-%PZf zQQ~J@_~BzY$XaO(=V@7K?}hWxz)5o9^eeb{-^Izk)y%3Y_O0&Ht9UNM!RiGI~MXE{zTL+1W!GaHF;z&U2}gM2NB0{_P601Z`E&HH5* zlO|-`Hc;bptW4W3R@QMy64J`};AG_;)zt#+OGj_X90yDK|SHp6K&^qpF6&USHUd~}V zl7k|8gD=Wv;1K6^mcrB$KYdx!s$T3*JD*ylV(AywTG-X*glb&2hzyS8Pa{xW#i`)} z75O2R`(Xo>7x5=vzRoaq2_KwEHJ0QBx6EzNSDgmm(0kU5}&`=I^`#_Tnp&u3H6q&@j=yq^c zb|$G}6@^|c77XmRp3jttKto>6W6e@y5ym#0><{vr@iLZ?koQE%=8lp`acPYb(~B+) z+BO_xVX61_C($`Fr-lakUo+&2H>Bq?CwNW@Ox}&uimO!{P$iUT6ypl;6&}?$>UZqQ zBykR5@if7n<;itc@0?X^TG0pu4R_>DVZ{-0N{&e`RJd%)*LMXOPW2jSni`yp@YJ6t zeWB*xr1(&xI-!2M^AhA5)f`qo)fwHa&$5O$EcqT$Z*3AvMYhpnvt7|hkL7>ioE4DQ ze{fD+e;F$6rT2uh7fGlQ5q!_mXr(lP{HRZS)|w5N3*>7=}R*;w;ae7#9NUlohGB(PB=*eh*@ z5zH_2#bR_xz$};;P~={S(PY!11%}vkE5WkU(&iC<2fazg8SbOIhhf3Mh?hMF<=}ul zeBc4unemf=xw*N;$GOwf(=k9N)Ya9MPkrTpg#U%ymO-n2-#=3y%B?wqJ6TPuEuN>w zA8LG2{Yx2lb4oJ91q%D<5;_YHe7eejLxev|_1*fh&BUwCt+LhSdnaveu*1_755_ zhr&l(KMpF_>^5w6yTgB}8^4K}aY^|VRke83s~tM|#)emYQ$I4i#|Nj-mtqtP`u4g_ zyg{OL&-b3D49b?HKCf7Or&nis=PN0+fS>RcmB>W)Hs2z2+{`IRjwr`L)dx$f^_>>0;jchwJy9DS%Bko-n+kiSCD?F;jJYo z$<#jJ)6`}7<%;NV;6#BP!+Na+$C=ar;q2CAEGb2A^rsbXnypEQhw7)p zp!cn&T@Nx^3!`#fRm+LxPt_hnh@~Pqqr~bu;zyu6dF_mvFJuyQGycQW8$w?I z@A0QcRnlFL?qaS2^mYfhT5?xjI@nKhhB@FPd~Hvds~m%}{ySCcUgzI0-y)nyblfJ6 zd9Se%^ZG*JjgYmEWVDKiok8%Y$`~}3)dEpW;~QamtF{HjC7*m44oDqHY|bQ}$@xTUB=*n|)fy1VUIukLU{?h!AjTN7+0RKBrTr!#>)2O36(8K;z!e zde2_a3{-;8lDu4OKvP~K6+a1!tuO-Dg63eG`kwbEzQx`On{NibWz%1sBBDkr@(kKL{5!jp7Y8 z5k!VF&>E{7CoME(k0V(|yPKn(Ru@>9D`d+)=-86;KfVufeop&B5&fTU^rC~$MTIF< z83S%!Oj<7BoAmoqZVYj0e~&oT-noeyqbq0LfA~L)y>(PpU(_uuf`pVHogy95-H1p? zcPNdNv>@G`(k0#9-7VeS-Q9gRzQ6k3@!c`*`9m3w2cLb;*?YxYYt0#vGAcb~_e1dO zn*Cb0iz$njVSI);0seDg1`PzMKyL*|;dO_cLa!HPiFrfckHU+~t5vS>yY-3Ug6`n= zaN~$ciC_`C&Rq*F5FMr{c84a%5w5W%>@U4Udt81_ORId9#{G@4^bWU8aiY#MALG$; z*VT=FunthM5wELi^1(~43NEe9V{HpZnv6&CqJbH51_DDcC^%JR zMp#9x91tckUi0zI9OpBL3sr-DmLAMl!1&3Hn${%C6f{S! zd7ZlrYeW`DKK5Rx;I4td`&#FH@m_9rvhhQ%$_MuRTBv6AYjX_iSA@YeX&>{f(OSxi z4Ii+srYMTS)9Qn>Po7AaBedjH6|#0hrm<)iG5uZ1dMe`u2;e`fdaz0j(%3A@N*1*; z>m`~lei%)JOhF9s(09$U3?we;OyheS6x?)>?5Q(t;}B>+027DzCG=ti#}na~n|V#) z2o%xxexI13X%!WbAG~s{ZK2p$&rCo=v_MRS7DQ)x)#Sd%$@92h2H$S0G0EO3U080b zdqUT4t52E}_9_?VDh#q5dJkz->bx)0@#=4SLD#a70qJ^9w8hd8L4Ewx*F3B#arh8J zRJ5I<{BZjmip96Nw98wwFhAXa&XyqFtx!gXN|CSqb^ODxXZ<(oJ$54vm)^AZ`0(xt zC?#`{f(y|?wU_yu41HTTvX&D&dlKwy;xz;9x6+?sYAkvjYBAp{Qs`T3kkQz-z+9xN ze7<&;5@@d)rPqzBJuJ23e%HFngEAzhqR#P1aQ`--v1@#n@u8XVn+g3(o%%=z_foQ; zSd36U&tw+^6(yr%37Uaf6fZXmBPRO})2={=c=UI>jj0-g5+wxd=37-(`y}fX=bN*L zucMp;wp)6viyF<=D()ZPW6}?^O8PFVaXV>lFj73=C*3|R`+ft$0&STP0d-00^WHUd zlC4zd>f5aLaE(q5&*u8ZCuI*XmodM*T2klf_g}y%$xAM3IW3x`1I=#12HNH4S`HZ?iaK}w0~u>P=-jaOtoZ$V*+=zp3r{MLTf@hpzyf~I_D0p>ELme&}*@Y-C@ z*yCf1-1MnK5mVZwkX_-Iv|Z7K=+O|Z>4?x6>LhGnsmip5)$<8{x+^&OXl6bzsq$RV zYK;zAuY9b?HZ}XY_JY~UE2_iph}B+t z!}ibf`h}lq{~`>x{Pn4RF#XM5F1h;*&KL(hCUF;SxI}y{rS(OyXN&%OnNb&BpYHxv z28o(Xw%p105+;gc>HYT1I9m|M#Fi#|qUi~|2qxh0B5Nm$S%F!@9*E7bgI!9wR+4KBrGX5{H#3Y zaO#mKhKpHfZ_;DzX`VH;bSwU--tDT0&*y5xcx4Q^(#b>1%nJ91GhRTT^0AX4)=rQU zCSpRl2wwv>rO#kn`RE7cBNN!usV~*XZN|UNim@bhAhi;#A%9fnfB35UNty2)4{sMT zhYN;y`z&asiMT=oxvG(%dHme>f#qc!tCQAb9puh3YuE*zz(j#{&t+BH5CR_@=8uv> zBoY6_=Mr^~g9{1GLNZM*&mObi_*lZazg%(ieH&*Ru;P@Fkr}0;7$vM{q`W~_rr~m` z?-LmnrME7l`c>ttk>P>?S)4vqqA!f^%a_l4h_WB;8oA)%X^Y=bY;E2fX>V{X#wH~2 z%q8e2ZO*eaK4fSs4!Er7&*WN3Ki?4lCpn=+sBGJQ*^v| zViqQGoe}Ssc(iF-@wv3;HeYM07WU@l;J(+`PrmsMtL`Qe%^!GGRI)e6-{*2@c-3Cm zJXJWee`S|;NuE+{$cy)y4`J*Utss?8e^JZ8flvIAT&B=cr`CoKQJ`#D`AqBLc4E1J zMa1BUnKy=Ms5oZ@_VK19CL=-E?C{_>o=k2g-?zp?M6><7AF%2kB2|D{H^H0ZzT&iC z-*~H3Wa`SM)z{hnksHdH9i=UP_RZPrwuiN2gn|j?+10VL20yH=c<-M%-d#OK2h#a| z=kG(vGjp96gNA05dWu?GOSn&YH=4f4P$zCWk}Sm6;w`hf+1f{;nU5weu5z{Rp1l_YKdo;^YGtshr&2rR$N>Gv)gBgpgiZhqrU+Zss3>#LH|w6JT_ zoPG{>M0f(R!IxXfY<}kB(noW4F_D-@rgLj|J*$~wuWr*k#S&@`j}zS3Z8cO^xO`o_ zQjX|Y8#uJc<*IH0RP^ZVX7S}$ao3u4+1nm` z9`(fhdH3Qa7T)hvo#&RqYmBQk`#~zv<+Ikz`K(8+?So}aNx7Fjxjgg-4a@dP%QIG` zFmq|*2cwuJM`jTw!a_Y*SZH=HpuM*3NB1pB9~(UlHa|EZDEv&jmKVoc^C)jxVERRF z7ovs^SwsNIpm1xcnqK7bo+9xwfrj@B7tuuk-eB3WT!kZA1R!mVA|!G+sftZ zwaIgw%&VQ9M=8Pv6FDFgkhC{);^PNBlFjJV_)sFcFH@7 zCQ-C?=riN6=8)nC{v5@^)K#8u8^!nKbX))W+(Y}uPo%kkb7rfTbh^JS4W(|GK1>cG z-Y95!#tDjBUG+uCW>ib30-bS&vwdMr%K4;zndm2`yOFutdi9+i3Jk-%Xd+6)Y%FG! z$_{CDd3QHdG&EF_2+d>^NPzc$_zl8c+J;?KeGYjr*04%Ojg<<~9qkBuRHDY}$*$JJ^COkh?uK zkNiyW1O_a69Cj8+H+}2cM#rjS;@*9(FvJ9VRv|Fu z4|jFv%51<|?-L#6)siV794L!vg^2pY*{6gWF_s{dy6f#(L?tfWJ>w)bB+3?sA4_R{mc;N{9fsecIO{v`FjkDaE|{Y=qHs*@h3r6P8IzCB4kJ5~~!57*9A;PkWd zk_%ztGK*la=zUq_{47%m*WI0}RyG3@8qpMf&U|(}rv28t4K$m&R;tP_vt1~0RScv{ zg4YZ>BkX7AK`n7VI(McuWL0TzYxYN}hhE)r^I&StSj{w5ESJ_RC2<~!Aqf2@!o6Z< zYSR=;<j!F)`Yue}E!5d^h4=&q1M_4XZqT*4sH zv_Oqc_U92Z*zCM-W5uZN9Ipv_*^=I8l{Y`oz7E@)Pnrf7=SzTCJ~>jQatL{%&S5A> zg17sFG4PnOY8}h(=eJ8k_Y@j!hEN24;%);#A*4r zx=q~CbITcxs~C6I(h>gmpy#HytclMhrGbx&wZo&65Ml0Z(IzeZ4})j*xWI%7dh7jC zcc<7#TpXSkHlwdzUra0*MX`VH5Lrnd+`Z}5T~IOEvfXgiEuE1qf<9=s55cy-*ik;V zH`wO3s;}93mT!1+N(ND{wjj5mZNOx9#q+K2*+imS(?=rcVDr2pHj0_u#{e~raNdH7 zK@o4VplzKDo)CQ>qsJfa@kK_iA$4gs#c&w%&nOTFR&E{ys+sFBQ#blry$T-RY%@wv zOyeGe435wdZ1)%)qThUDRVBAhX`fRY7_SOFQi2-kwM{*79h8wYqZQkD?)iuIOJ?|I zUke<2Ugo96@)pa~eQ;X0h#PmBnn^wExY=sMDKQ`IO_(FOT;rSvEoIve?`00RSe@PbMed1tDdq+Dg zALOqRZG^=Tx%PVS$>@>VJo=eyjilZ>vvfD5rrmZXe8Hx_Yd_>AFj)zblXfP*vBTl{ z=<;*FHB0=pf_w{MaPZ8kIh8PNKOMtw=aBkWS9kI>s*M<27lt8i%dp}Izw{f&I7J976+sZKui z&Nmt)cjv^~tp|7Pzp-H+gmN#cwC7P~7{b`GQ7L!DqsMgM_-Y(IJsFpG=_`)*@7%;zb+$w z6(Z~SIrb^^z{86GvNJE_)K|4evvqIE00+K^Rke=GL6BkZ!LfxUIz1 zIs5oPJ@lJXq7O5-$=gE~2CCGE%XJ%XEj!>o)Q$@bCTA@dRd|^s6kgKWx_rBb^GQXB z^;(U)!s=O1P!E1BW12lmD*XbBG{#`=?c%08HV0igW>Wp2UMOYmWu&7zTU34LJFY4} z*u|f#wn~Owb>9##ws;QKZvBdR8YGh-AIwY`D-&gjmlog8=rx3H+h90+XLVL#M{#m; z%^u=oxJ;X5I188F&yS&4+D)cFzih&-Wc5bPQ9;ldMGwX#qkViKmxS!Onjr{#ZHJ*w z$c8ne7AW+V+$VRWOG4PLWp_IBXi}ZQ!Se1^b~f6eUC;;J&v6$c=aapUIO03T6v#W1 z=A2`EGLsU5-#Ny9`9^-q)Rs>s*1q)7?A|QW*<+$MMf`1qEIR;FzK_m_CN;$YaQqcJ zwnJF;CX9ID>oE8ph?{z!@%PQXp;hK&)OBS>-&s0Q3D`xEzMrw=mE{e)N8@_*@p zs8>oQ&vem!keU1CoLDxvyQT=C%akzfm*I_O1&6r_Eosik&vL#hr4v4pTPt+biZ9BT zH!NX%qfeyxPv9|4k8SF&?akPj0IH?0UzTx3GCZ^5cm+En<>%Pzkg#XEIxQ2&$FBxN zaS4U*a#2L)FL?{&Z-pW=^AnD_yvg(Dteh9CB`_72jegl+a__X26teX!y)8T#yvXC| zfqClB_&%GOnyP7H5`@EIwDry|+<8Q!vhE%3TNFq-`RG23*KQJdZO8T`t@0cn;6ISP z?eE0!%j?wMtIjtZ$X%r0EU4)S%Q5d7m=0AYnQ>@Y{NBgfPm#psltL%2Cu2KqPwz0% zhBdl`IW*RVXy~w+s<4=X#bv?SsD=^tu8xS!Yre49|MVD_T_5WCep|_!@qR2OJC0n^ z;KSX(_{2Cn$}Viu1OBqk>tLQFtl4_$%}D+$elsR21DE~C;u`}RJg1vf9eiBR!^nV4 zZ`LCF)mO^!_G-%_8)5_S+cQk)yyF#FJ2_k~qBHZO%=)(M^)GLDGDQ}YCf+bk^zCj8 zTf{Ip{aXI4a)c8S*u)~@mh7Ev8i)FW1_KUNo1Kkk_E_?9o$c;y`@7)Bthp>TQ)=m; z0>#gJ#EQ)~vWgTHw{s-ovte;6@8utQO3QIYU8W10RVUokW(fLB#&HF^B%04&P`|S5 z#T7knL^_e3do-;cHwwSEV;v(@Uq?l8_@F`ili;Yx(Bn4?@vzg8NMOPp2N+%tZeyQN zYg`cg{lI)x9^>mL@E|fv=q_qM-IuEPdDHra(BUV=>X|cz&hM|A8DeK33ezvFKyjs= zxvuhSj~kw6usu^2k81!5xum-Bf*e1tbR8t@QzYK)BT_5QDw=gmZ4Ju4og;Kw9Q{;t zFuvfBYtw!Nk|@6h{WPi9xa|jzW&Dv){(|<7sQD)NOLNvlc<#JDZA^pB(-_ru+pr_@ zXf7DCNMy@ocuOZ&jMWz!&{>VW(uPx;=HVKxprFn2{w6`_rq*jm>12Z7i?qp^;`pT9 zk)kd40&1n6>zGrSIcbsY_nBD{Wf!asmqO|9fe`QiaJ*$3*rujlT#N7$bDS?eyBzjd z(k*aGtaZf7ku_XyeNK`%(Fj!om2#41rHMK)VulihitNYWl@Ds8-^1V7 z>0`@EeIDZ-x^5A5Ub8vSNXJ+-Yd>UAG(R%xdn$RO2LZb8R?z9S7+_qgek1xgYjb0j zKOGPKC~!)@DkFGI^GH<2P*I18Dj2=WGp_A681;sE0ueu}udABBEkkB{5VLGUXE=3* zg38ETcwqXD12$;nU=}yv>~_P8_woJ(aUA3_?#5gTyi-a{BN2ijBDD6x_XZl(G#TYH z`O$Bfoa;(gtQB$E5jgP!@NPvkt-etl&yhD#L!p0M1s;0venAMS6PiUY(YCv*?d!~@ zHTC^`PCzD};Cgs5^XAAa2P3NTi`(KwS8IVAAD)!g_PVW-rkd?r$GEGujjcpHQhWFr z4YfKdgc8$-qaO&uF^!f&2JEQ2%wA0rSQl$^$!ma5&SfWRPurUMtSeJW=RyQK#2oGGT@JpmK$)QbniDB%k{N5GDKw546zfRv?z+s@ z=-4NW@$p5e279S?a?5(F zESw%hoWpP%wa!V^r0wuw;-vP@+4ZwQhw08&5eO|eqqJ=gO%^*vhMmc0;SXMK%}Bx| zxIQ*Lx~&!)C|{JOrm}0mTvJZCuo<2AJGv-dIz`wl>Rf8pWbl=DlR+EKY=1AhtX3Br zBZOSMea;gYYlsm;kjisue8C^WX_%XCU_lji%IWg_t5;^r=J51Xy#Zt50lIH9trNY` zjcUGQ4yCy^$JccQXI5T`do`u3q~patx0suni&_P03B#i9Qx_hXc|p*fy0G`T1Ae}gSygZ zQ%}kFeZwT5=`^qh-nlRB8F`$+KQ6V7$i%Lv6+W^+U|uAQ4=|M zqWE4LmfNdSvFR`OR2>qNy@g}z;mB@8IzXau;DLjSUl88Q^s?{b#>4gbq}7R!K?wKi zsoen`ai1yde@@{^up$JC}Ln=87f>l-d}y_|?9n>gG( z%FL}-wbJLy-4ZTT`lhoY7ffq#Z$p}|Opba=2vg?q*1LKz8@d|3;OLNapLj3*KWb~g z1q_jd@<#-EcN?Z3OcY76K0nr6{=rk)^Y! zwa4^=@>MmIAo)N?VjzE@YB|TO^MjNz9qo^eUtXGP+1s!+GxAMl@eDe?KqYancKVYdbeJy$`&Sy$!?H3T2eJtk= zrM_xiGvG4gQ?9lL2@)1`r|$bJ5A!+WGpsi8ETLCGhj)4z^v;~#hOfg`A-8V{*|Q4s z%DcY5#kKoxw;{A#gWD>vc9l|7^_ha!z=dYk+gt_P`gw1V3il}+k@$?Hm)60)?!`AO zzi3`Kf%l^_%H^UCcx?U6NA_^A*Sc6_y11)_S2>$P>-HLaJo!7<&5(H~q9VC?4U!=S!I@a)BIe($W-)rIRWU$G4H1|E9T~FEM zmEYyZ1|Rgz26|~1zIkpd_PZi)gTu1dXR~3q5%(3W#1t5#N-_9$g};?M2)%YYqf7N( z#S!mjB%RSk{K#CbgXCYLzPX=N|6#i9Jt@fAan1Q#*y5oMrE!Cc#D<}s&rF^9r5m;b z{f`xC!3hJmg64EPBHx?^7^byzyb@HoIudOufq{N~7wr%{=M{oG5CF2rQ6-+@_|s;Ogq)PzV1HWt4Ru5Jmd%Qavtz&J+=+t$ZPBDC zczA~;Cqduj@dPqFdZ8vmKk@wo6GG7-vXD`N8y4Fa=XUy+64W4=H)gZ=KKo8D8b2Ok za)D5y(_}mo`6H&m+Qj=Qf8#v&S3Fiw0|W7{*(yO6%RVR~Z1{W%yWx#FnA%^@-jDr) zi@i?;J(1;~IA~Qf9(~K#XCA(C2U8R*P8U@)CA}cBSPZd;@z{-be|0UY!vxV*CZaLR z7;O!9>j%>A+3I|!uc3qQrZchMSsYKwO!G<2Gdq6drP zv&d*yn8?V6F8$k9MeH{x%(hJ$liRXW=w;P**!CWihnva;;o0$F0q;Q*jS&7Z zOF@U3B5$3#d?z+J+O64sCTMyI5+R~5vS?cH`I5aQpC15Lt%P1487YAr(6%}Z?w1A?NTsrEq_ z9=eC1Woa65n-T*o@yI#o98LZ>8UHhL z9ueLf-vC^R7_MpxH zP)|ObCOv9`Hc)$N6!ge2v_BnxRCt2?!&$us;(PiYEQ8;hr?`Icd^U=KhB+sD>IY19 zNL<}C2NK^7CKoea1=Z!YXpCag5xbJmFbxe2GIcg4PTg;Kc?ldY_J*Uy?b051+lIsm zxjgiQ0t8NB=A>H|?hI~67Aoz=KTl$|Z;xgvBuiuh9#F*>mmfn2f*5oI35ah-=AD4$9H>r2z^&GiysxRaPYAp4}Zr(k9(3z`CQD)4G zS51<;%7Nl${$9}-k)Vs@??YfOa*rM+$_^U80q1K9AgQ*`OPL=Wl@C1^uq@6Ga+D6B;#^FTgZJu0{fqY+68oMU(dKm)+Rz3b(>I2 z8ZA~oR?af@(E8c!sZPr@8rnm9Omba$n6p z`IDLy9*+g~VBoCp@gU4niMn;MsWAzw*T*z{VY+e?bwv0mf{w!b5_3z6kO33!an`1M zAX-u!ARbZ3aNB-R8*!|xbta0n-O;q+k!15=ie%Uf<-Z&0zot@C+ zlE0*@h#*gU_a&2fzr1)hIyx$oDULmU2xxtkVuMieBAQbp_*kHk^$1-a@7bO@ct1D9 znUL7MrF!#cz~rw!UGTh6@R*^YNhz)XV7(50F19q+R~dE}tFyuHolI!$vbtOyI<}R! zDe2H@s6Xa+Qo;+W4vb#7`J{&mE%kuwa>yCN$&xTsBy19C5tC?v4-?Xvv%i>Fg8Q0x zDwrjnSmBxUOyOqxrJvr@y#*AW_EzTrLmX7&OYsr8gwR^mLO&8eKrYV~hj{$7L}>XVhnxn1EK~ zsaoqioFiFx_pl0*X+LloHAK9Q+$Z6ZF;x@k9sz9eLhpJRx*OLjNwWVI75Q^3*VN*g zL%uC7&y6O2BRV|VqMh>X!Cv;*$cI6knXVux^7*Yd4Fxcnb<->Tz3JR@+aMrwTAXTJ%)dQIq5fjpt8H(XJWwNSSt znaG_Z=G^l{MxLtO;crC4C&%cVtc!}1WxYF*gPIz4tRx*~L7~Slaar}XAE%;eG)pQ^ zoZs&K!zSNji-ya6M(}2&lDbT6Kqkcdzt{ZqHx+x%hAj}yicD5eMnJ;&Y0)PT8%QdU zp}X}!94$RKi>)DU=mWuHth13`X)s$)CHYITxs-)`JjN3h50CdZvQyo-te$AET6CLN zK#mb%)vgbrvvdZh9t|J%q15jwXT6>Xne~sPn&hKhgf4;Wz0vw#F;&G%@1JzNI$tp# ze98o*(b*@dj8Q32&%pRfKoBmQHXs7uT4<s>o zCv_Oo=-9R;O_W$}E4GIjJIP3VCo@Ot@9??7Y2>u49(0#E7Orc>Dwvy2T(f2{0;Q0r*x~YctKoRu zfeDL*r07IL3ef@hsFzZF2wHy<3Cho=h4A_Vsj&|d6-MK-5CYSeU=|_&xz{_jO8F}4 zby2X*@+$v7Lm(@oO)f6zRiXT;90*9N2Dc0F27KlmiB2Zr3t{uuQ@Zu^7VtPW8tyGR zY{^248Cdj|?;ft%J{CmpwI&W00;=hU4@YZF!`I!BSj=B}TBY=Yb}u)|UB)h$nmCfH z(E8|_?owq%_3i|^-$Voo7=m#vhKH+FWOSMcYigxJ&<>v*fpEX%fh=#63WXa&z~c`F zonR;_DPtIPylcN)Q|k#QIo}wbdx8Mt@JR^r`gC)(*{yY+{J(pK@vvf2eRLB+_lgZW znts#PGqdOF=4N4R^Aj2y8=FE;nEyw>MgJt?(TNkmzqtSN8$TE!Lx07LdB#*IB_{S> zM8tPN>_bQY!h*Wq&YyPsKNAPT3FL5cKTdE8pdd)G*iB}bD`-yN7Bwe7(dldv{C5yx zc;1T5!y^hB`b96GI{nWTDfu#qE#CjG9;|oR>3_?v+(JEJv;Vm+;r`cc9K8P1yZ!Io&XfOl$OA0s|79UEos*N7 znYv)Hd`=5uDdYeEZ z`@2F81_s7@AB^M4XoRyt!S3paP_Rt*!n|yKANOWoVMP+~9M(u+- zfH0_^)C@hK5l7T~eJxjgAX>FRpePF4(JW-eB}^xhM3(Xm0Nv7)(!nDY(p8 z_cY_($)4GCF}S*2uiKaZc@%QZ!*prPDSEqqa(pasxX>_8a=IbHs`oM%S3ukC3sx zLL~LghJ=TT8q5qKI$Kj|?G~QeT78!*H`{jm0;7H0aj8}9d{3szY$JTnIdG*jY8Z&O z7jm#){}j<~(C`MHOy~_)+Oa4bySS*JyEQ#<`0TQorhc`Cp}D??YP>ziV)g#GDlZ@A z3^k2Nz^#0LzwARereXB}f?BPSbkVK38m3yCeShGg@W9(?140gC_8eVFP8Znf4*M+M zw}u2>T%{L5!GO`FkVWTPiSu4FJ`lS-aeNoMJURmzoSe!h=^vfWz!o4)G+b?=gMiN| zKc5&Kjj3As4GhRiK9M%((gC0ioUHVWjO|Z$R_5mXvSHVk(RG~-_=)%ns0aG*>8+-< zs&6Y?^?Qi+xSXmU-|@t4EPL!LmvNvH&88{LM&@nr zu&%rw87nQvjDp&D8ejb@Zl-!|4ip=xP7gsmt>pAE7%yj{K(#{bejmisKqw>-2xR1* zw}#!XZ35TY4hHzr+#8x6AGm;qp4hmp--qu$?RQ=Z0WOMeEvOlmEVj$A??ZNaH`Ye7 z9y}73iYn+5s-9~Yj&d>!!$>)0ghE}ryY|~B6>XTjPgf!jw}2ZYI+I4_Hqs~TEpDv* zWxEB-g#M56Og29j9t{a4lWK#}i_a30!uFkrQ`4$BG);Nk*!IXv=C<5DM*35;y(ns6 z#~E+49qk--PTk27ieq8BPJPN@H)obS{8Byxf*PRl)6!snzr?#wgmAD=8UybF0A>WH?Y2He z?fdv{EszRSTTS7{P2M`vI#F>YzYTkpWK1b5gA$4NEF_uNRx73(ObzJ=%chkxILD|ioYDB*7|0>9XG8|SGD+vvLQ+ks zZSz3zC5csAK>GTMx97DHHm@R2wp=#h3ooL$tfUoPw9Mqv)K>PZXcTTm&}pbA^?s2# zCwg0pseqJ^98xA@7j;mcF6EqBh4aZjPI9^oF66`4NDKv1q0{cK|9X1OyDK&ZOWh+A ziAx-482I1p8_D9GVac+L-ycIiWpC~W(q)#n0ej3~C94J!Y;jk~btsU|eA*p28t_r#G0{r~03(rBjJ^_$z0elL9s!_ZwMq|=Ch&b0b zH?70NG8(1d_)-BDbaZqy6rEgIQdv0x#<#_YVa6_>x7s9(M)!B84R(-x9-dIL9FOj= zb-yA>P7Sbd6!_ABL8gO*qZ^5#Co1!|qkK!n4Gk0Udo8x^cyhohcW=vKRV_tL+WHAB zAatye3KC>@=|=g*54dMB*E^2!)H|= zBBZlXWnF;!HdVCJ)56KI1-c(4Vmb%M{*%h^ufPl;Lf!w~YyA_T$##B?D%4pPo?kJN zeGO>}z@Z{{caG~ZOLr*=;XSVJaGN^e=M(O?z{$%O(`FqVnWHVy4P*|akv0H87J@U9#bEn?5=n%GhAF%CH(%qdt(G!_gPSI@IlJ-nJf>6H!>q&cZ|UM&Kr%8F+MKfshU5IXAo#!tu2j>Y$Q$J7}@ zSQJJ2Y^qFO>U@m{NQ4*>~@^5 zNDE!*G~4N-;ZLK^=~-EMVaeLSbzrfX{(1?EDzn}4-$0$F505#dMc_TqH(J`?FHpzx zK_*mO#Q+~``%m02g8>cGucIQ<>IMl@?09XN|G6gYPZ!YNhb7ekD3AT~7@vOlD=N2q z0<4^9U0!Ve3&DJ^ddd}29iY1KXgF;y(6x*;Ab@})h0=hSS^w<$E;bmB7B)IjNGH)4 zR{O`eZJ92|cx*6Ofoj)p&w>OVyo4`cx?SHwQ(8o0`lCtSzQ;dLA)Dk$)e(H`%L|x@ zcWPHI1bS-IF#qHOGNMlbGD;|1_e0$mp%Uc3Z{lt0${()3e?ADZkJP}TqC*KMkXMT_ zI5;>2z|>WIe>Q(BQ?XNV#?hZ#Ra`8L=ma6Mz=laTFqcBNzW;fQ(kb|#l^j6VJnbmE zxoQhRGfKQqMOmC294d}M7dCbd4rw;~GuaAxQE?!G7yj_Uv-UomTq^f^?kP$79#X9Y z1RfvQ2ziWm;NwP(y;mNchcFMGjV@`%FU8tI^C{!KV($3&9SzT0(?P>fE981U+~4Lk zX@h7LprbIP(iHohn#(}6YHaaWPfcxYW5M8S6dB5|psfXLW+zHBBqSseF|iSFoY1kp z&$~?%KOmPms|7D==V>pkrVaHtbFktMaiKH82DpNVnSV^x|ZVrXkS?gmA|!Gp%6!A08T+Apg1Z6T?QO$!umRlpZH&?Ls2t z&3E@=jHHxUhPe@2mHS^a2onJC=$MiU3;>{0)jjc8fFI-%_`m@~P&Iu=Q5Ascz zs#d-Sy$Li)JB?DVx&Stf{U8w^6P?NI>(Y7EL0KStjFS z(4S7}u)KZvEoml*Wv-Ad#DDkuB__6xw7YxF3uutf2c!u4?0lLQb(O9Rcf$IguODl> zT0AXqZP1AAC!>)xao5*gX0t*FUqs<%+K~G;I{D8-M46}j19`gCM53M_9X(Cw?~LW7 zZS+r<8;1ArGJi$>lXsCy&0^9!2)JnWO9%e4*ervt>PP5g8VsTr_u181)~BKVSC#HZ zBGkFf;X(o3JQXJ=4v>bI4eyI5)_Em%p$QlP#u=Z^t$Zmr2MT;*QOHq|&(l7e{rh?N z`W^^MN=n|$6$DPZ0#z_}pj*6Pw2&j0C7q}Ej%9F3lYrA^&sQI$08x~0-tZp+a%>^P zp~np!0c6edpGpU|lrpCTZDQRx4qe5rN(Ag-HY5*7Vf!th}Bb-8~V{eU3rbdb;5B9Lvj z0gJKQ`|s=cF$3_k^O`-@Z&R*-V})t3H0>jRFk@R<{&=}@JUwD;cT@xfIJjZ8(%*1+ zTsAZp2lD{{Lsv5Em#idB2Fi`**48Wz1b*2D(|@J>J@E+Q@oM+mw_hrDyvOW^$!y6I zTaaxnHjo-REH_iH4xjz~5{KtWCItqQ_(E{mOt;>7=>Shc31PI&qWVcxF}eL0$*Y+7 zKWDV*;U@3KIM@)7RbaS(FwpOdaU+w6o0GL1V;4OdQm$j63rn~H;*Xk-5BKc$XB5GB z9PZ$E;E6v50*8_b+`jErijO>fVfvEYw>tiL{NR409I2h!~~PJl~a%vLGO^uKZjghA}zw_fc`6yzDT%}h@}NnhF@)&tb&1u$XW1qJV(PG8l+ zmuT8AvM%d*v?`@g01+{Y_4W6us9+fx89B?S2fSba01?%AD~A+3aPwEo;8IvU0}ay}yq2#Cy@H z^9>Ns*oSq8GXUZ1t`NdW2UQzx#tj{y(#RCz<0h1P2N<@POJBg433^{R$Aq?A(*EtF zQtQ@1OyNIMVVoBe)E+7>+V{2D6@qHwZ8#JP=|}66HPHqiw+J$T3Uz^E$e5)cmetVc z=<7wNOZ-HDSpMQM=A{43py1e3Ate(wlAKE4BA_LH9Py3cisb4NMf#rMcp25Y-DZ-Id>6vF<7j802Ob+dCZ!m z6OxBRm&bVhXT0EHJ241q1dpbgT$x zx`wl`o+F2oZu0RHfV?S0B|#B({0=1^29m<)@1mLj<&GS7xa`iDL0=5R)@T;;MB$gb z8xc(_5VjfNwE(sr^}`p{wY9mJvAS$H9&VX590WCdrAd@>nc3nWYBWyLUCxGu$L-&y zjL3NL@v-e#|V01J)Y>nXq1be0Z@NT?Hzf``|ix})t`ucy-0+*0EOS;2;MLb3OAwY15h%Rck(pcNG9!iVirS3i&#pAV)y%P z*@s7i6N2anb=%e&8ly?kFaF_!3aF0+8ygymNYwa8tmXZE!!q69i*%7*>P$=fMeZ*& z-~vuFSph+-bTeQ|70jidd*HHu8=Az5i0Ko6gBFvP#$tj!RMb3@{AqEK&YeA$RPg~k zdQhWB$k%962SvRj@#heB7T>?i3sfDicIBA_hBq}e*}IEDCr7-E#Pl}29{W3^_g1Y1 zy7SXL_C56xuOge1LdQxX^V{Z>ExAFROtI>ISeS4bY>m!e99Hr}e{_=$8bPHvr_Vqi zlWl5RY3T2WH@jN&jkLStXr_c*3tu;Egs8hKDszNr>B|fWv7cgu+wn~F6k?!C`3s`e zfdvTSJR{dR5FMMq!xonAybfo$BH5KJg(tPOS^JIR2$;o;>Ra=aP9G~OBXA;7lTqcF zCBwc{g9;cr8X9AvhBM8!j^ACd@B|Mi<6QwgUW>gc1_ev`#QLy`KQJ$;PXYcv5&n-j zC^(n~wO)2y(=TjBsDd4UmOd3nsA6>OG|n>$rFmc*vh@?K|5{tBt6WS1$=lOxi_}} ziHHiwPQFdsfee+ZcTnU;L`8;@)QCjj6Q!^{pe<@3b&0|YnVSTAFpmK<$>D&5`+Q8! z*UwJ?wAqYRK7|GHj1g5O!<&Bxd6Hqa0f9sm$Doy2?2R;;Uxi3!^7fVcMnv^eGCefx z;dpcM@Y6XZo6jq1%@&*H z76Bsg?h|y8!3OR;4R?(VEV=~cC_uvpzv%MF12kW=Z@SqXxor0Mi_{zB(QHAb83gB< zFKKW@pP2#6N0ogAioVOh;47{^7h95GL;&tE7`&1dP=r@R(Sd9B%lH(%;(^R74Iz>v zIGZI!$l|*W{%OpfsHzHx!vf#<%;oMF#`$KOe5^oCsiOBHs&vhk_x?Usq^Mi=* zVs&{r#oaekcaN7NvCRjWn49~v84LYHGD}zqqMo=Q+)TF}eOP`6Fy{c0M!%`YTDRtY zA1oji+rzMCqv1!v)lC+)_xaQB+Yh4szt0cZP`?;&!N++z@vYAGW1eTMTuwC$7xU5J z`N1ijMWMcbu4b}Y?AV8N<$Uq>*W-cvIN#3hZ^j=dcw*9>blC8U9VvE2FiW|T6RMwyf9aam!nseGpjZ__l|$x8%3deeS)JKSdDazda*gs z@tV-uMyS2>J_bLl3Y`IfYRA>-Jc;@xa%R-%FORutvaMuPl8FA=Nn$wvmlV~MswCFq z64%aBOi|s`O@K&%8Pw#Jip4L&f#uP~oo3a4L;L>&S3pHEph$??ECWE=l#8Cil8bvV6Qr2DzMwR$lPMm6{2U@gi(jw-5@p_--SMawDX{Vly+PDVgy*iMV=_4t6*WC)Ww{HcA>3z39U>FOmwwm_HV6htdaRLq1?&L?xfR#S_7pc!J5*R5<1hwj zZrb&6!ZX3lLJhVDKwSI{8&qLPH)5-K=d-&wU1@eV&u(1t2a7lCIhCu!_D13B|AuNm zz`GqlSlJff4=BAq;UnlKISXR8QrmHk(;Zu{ZupJYrB6#dTrQ!veZ3|-z|65TvDa|N z2y@CoK$^r`^%V(cP-&p6{rQekop4{VN{5Vm z1J;B6qrKNG=Jv;Lzx7}+)9{kAvd18Qa`&Lp+_d6WlkUfA??rf(`v$l8ye5S`69)l; zyXZ*G!^Ha@LTRN^Q#ANln#Fw0(P4?I2^$hm)Aoz47D1veOsMcB-GN!)A;?^zZfq)B zo5^?HitZPAR~B7Ve?uU_Sc-Xf+`h)KMVVnTnBTz^{<5)wlmu%cLtF7p7uG8##JL<^ zdN{ls*HFFWw2WGcCr(WpSuJ;a}j2(gk#k` z1Sqy^pIJB-4@&MT;rn$ctB>RTU6{@$(J>$5jzaJ608UN8T&fd+rcXZZxySpSA7a>p z^XsoY63DAo8)CX-Z{Xhfp&qow$jUQ`{xq zH8DZBw~{OThF!2IQPEWDO>(e;@`ILoR?^Dwt44TVOV_KZO0t0h2I%SbLD>6SW~!TV z_dL)#Ve##EtX<4D`$IRvfJB!c6F*Cn#m$LMb$RBei~J74Hgm~3^#8-!TSryBMgO8m zN{1pH5(1kP1VLKq?v{`g>23rRP)g|rk?!tBKte*gyE`@=Z*Ak8^Skff_r`eR?SB{u zZuYm-`w&n6It~)kbh$`YM``5YU>yO1FFt|}2&TA;`oYnS~qS$B1P*?@!%LlY~ zNu@)xQae3Je1v6#hzpB@c&zZYWm>jXd5cBdEeSQ;_-w}?wS23-uQN;@V>scP`xgvw z{S}ui6&>5OUtrtYBKTIfg?eu?)=zB(qlN$cO&^rRKQ%RqD~cgOI#A+GG_*8~-BskX zRdh`bl=16{y3Q@P-lQw3y7_VIfHhZk&KjksXeO~u;awHr-A>_=tm*s6vWj5I;~O%u zj3LqyXJU90EImb&FmPPy_9eb?)b2g^DwTqmJKqZIY&Fvo>TD|zF-Y_ti5oGD=dd4Z z8K|uqeIM<4#Day}#j?*CdZ|8zuiF(n|`=sxY>x z_y|Lxp)h6E#x!FNE`3o*%zyTiAL6A^gUnOwSZv&x>O#vR*)eES&1bKl;_#ua&^qQR z-L~+xTKz^D`;%5->}*U7FPS}k$|dAnfr&>$z4d978G`OD26Hiws!Gt-jw_HHO+$Ht z_~@1&%J;9-*k01SD6lf|Pd0cKD&c7veSiC-oKH;5!=&Prlc%)LSU3=h*C)Q1uM&Pf zC34>(rI__WT9`byQX8Yu{>#N>I~c&ATq%LIZksXFz4T)TN*?^`Xlc0hRoOPTxI;9& zjLbU>laUk~5otSl#gN+XLaqc3`h(_ujDRDHT^Nz4gGa>OQnJyWTt0#q%A#`0(Yo~x>Gj< zgpDG7=(@0w>*@;pY5G3tYt2qjJZ-1p`D1DxG!l7Y>B8Dn=_214sSqiduC+#jd6&Oi z7upAyr5i#-e4@C7Au#o&bT-x2I^Y54+w3Io1r|(R4Rcan58~_vY&}mR%gl$A+W88s z3p^9tt0_K3da@CRDHj@^cjOTrCM5%=QhpE4f&gq<46l_RC^ETYi`S zTcy##sx;<(1s+h6AO6zPw3G_BfoxnHGO_~JC>k$9oax6?)mn-qCWafro(otm7W35O z6c0kby@MCe*?l%Pzp_q}I_6PdN)WIV-^{ox%@h|Gm9)m|ir_2b=dabYVyN3AU^Sn5 z?*I7GL8;Up8g}6ebZS&ry;0G8WoSoqvg&1<8akCmEJ4~+H2QIzeW}xZf~pv&!ZWLJ zuL-$ZkuFtS6*jiQ?!_JL*aB_IJFB6meMhnAs~uYvA5kO@tDDhK((W)UWKM0FkG1EU zbj(NO+<#{|9X8>{_PA;3Gt{z_OpnEGTDQ*-zhgo3pW)aAiw3PQJ8CXb$8DXc z2}Kf8XM`SwV?B9H>E0M9@g!}Yta6K4cYXYBlH5tU6Bj(S5oB@+3R81;cZd!l95N2K1z$XBqu}pn)hpfZKz1r~09Bs+C{Hm~v8L zB2%N7`%@Tn4S0yBzJAVnud%T3@EP$V?Lg>l6{&lF_SEcVQ1C%{{@huRUqL3|n>6^(c1$^4>d?Pv^FKeK z3d+dLqPGe68|Z)G4g>-7?!FnwEbR7jsq~9+zxkA5WL2q5v<{B~}qH?seD}`yizWrv`AdhKCWJ`Y%68@#d zA>_YBX^I~{$0vGBHLX(r`RHlWzbFF0QHZ%+aQ<_kfgeE(_OIUcl}=Ogm%kSaSJC#D zWG?#&;S-7%f(gj#eE!Y-T&Zi64N1L+N%eOS{3wQE96&EIS{S6+z&8l*L^zR$uUk}5 zMIaRP7KJUZA*fO1w}J0yk%dKu)H*XB-DwZ_t~P(?W2bI&P`}s0^WB;4**qxk!c|1+v3|$Z%ZQ z1^Zw_H&W44dtoD)#72vn2X{skc{~KgZc7o+TXzQ9V~y7rKXC2Zju+F$cuMIjSlORq z1<%E#J=J;+@8`IHZ%<0{>iC!c19l7$NAUTPjq|&|)JHTls?<-GzeZ43SLf#CrKYEs zu&xM3Jb<;jeCNv%+_sDF(9#>OPp0kycuTkuaM?{lK8>KA$F*)e&qULRz7K<7y{-<# z0n;l6PVvv?COvT#!F#?LolxZNm^b@&7)gA6`=<$*{*qAxPmJla;%aUZR_l(fhrXauPZ65!Xhn(6}X+6)u?zQ|OP`y=c2Mq+vi$ z0OTJ92K;M(ly5rm*PlZ9?B++5Tb~_g(XbinR2{2-cXubU34cdr)u73L#MbuImPz@I zoz1~FaX0;azX-PkS|eV5HtuItsnmZ_#3(eNhI#0YZCZY1#8%5h5rie!_)bo`GqrEX zQZdtlXuMiQWU8iZz!LgqB2x=NJFWeg&gylHA95#N zcILCYES+`X6LCPPsd^DaY+B+qVbHL!TLM9e9J)HMh!R#BH4lZ|n$` ztNc~f)FPB(PJ6+;x8#|^f^D9vmvhcYHm}2cybR*1Uh|=BdKp-+9#}Lh-({cnaEeZR zAuCJJhV8Kpz0{Y}yteI!9z1g;{i>eSE|;!|Z0HV|=VG(1SXzRy{R4Yu8U1g+MX%W{= z>0oE4)MKaZeREFNc(#Zh_3{i11(nsuDBwF=fgmoC8Qm7pBpP*21+_0H`T;5E2lU$v95!P> zWa_8`hL|L89vu(Kx6RE_0D!-{G6ght@SlM3BBPrt5(=}Ep~aRmF$^Xt5hanE2c}~( z;$&7$%i^7tlp$GI9{ZEhuw{?N^z(CTR9X;4R&gDF);F|b+KI{H$SXF=BzK8`8=uSa zA--|j-+Qd1HG~AKM5MdJ47gF$t5FOlv$tbi0FFueOve_%^6j(z6q}* zK#GzrG-Wt>h_53+okadZe=454%7i|&D~+8jZ!A%)qLPP$JS5ccMc-00_wb;T=dLyC z1=05s3)Lz`?jX95W{&>XLo`b@^-+9JmrEci+BR%@U{81!hS4MwQ~bE>*pxK19Zpx* z|L_a%sc4S=7o+=F2a+xR%nbgXG!UHgI*Qt}kCKdZp^Z_Kqrs$iBr{|=xy??0;@B|pYatH5zl~ZtHyx4WN)=$F z(Pon-75Eg~I%6wj$DXE-BJSRt7Z*ucfZo(0nj!> zNaUo2;kjcyP_e2Bb5CSNQb#d0dtRR82!xL~9~zC0`~-t@vYXS5&WJ8O0DlD0 zRw_jZp%p9AYbvzrbkXL~wBtKDIf1Ol#l~ij1_T7;?OdGhg&nQ+=W$U%9_{W7FjD4- zMBd}<{tl;9Uez`Hq~RgTj^$kOO?*AdMhFiO-rO52hyJ9ajuChcmF{oSTj;9xXqYeF z>**~`RO;YxA2j|^Iad6w+N)2O`yTPNIj{Z12Osm?{0 z{R{HEH<5$VKZ1-?3Lq<#ocXddXg)e*ZqD5pGpprb#KgzS$|@ozmS(%u0a=oTHwR9e z2T>3BZRX($bsNyMwY3{)t;0E=dR@8XYm~r)U?i0mVQXt^&jMFqcZ2NHEj`$sD5JCA z1QKmhQquX24OHMUz)yXGiQH`~IX?(klc^TJ3FQwgI@O=z?l91Bo7KLQ1H4Hj&I}j< z(rpqc^BuUK@PW2Kq3VT5d(TV}a^n1lLZG;}NUU`+w}!_&c*k{X5zy_{&nxchfCmTL zEal)uYmiVxYhin3=TEN(c?-TDzbEI!@XV&r1`9WHW+@J4MV(s+lzDn}(0*_q$wo$r z+M(+yv>`Lnd4MOR!chg0fKx2JU*W!yc)9nqc+7T(J$`$woLvoVHCqCB6pk zWaP0(!tM7b*)b`TBMaWNXk|;=3aaiNtd9uU(Vfk`cVr+0=^~vQM1i*BgvszlCKDX! zf6(o~^&2oy3HP&7s&RMJd&8G6Qa9(zRqqmUqpQp5efzQXR5hX6gA%Py_f}H&^3iRy z^~S)oL`M>0c{)>8xNdh=gWTl1RYOkh_L2$? zuw_#8z1uLnAo8`vQY~eN^Q5Z^cu@(Lr0e8hr`Bb%u$8q#$B_**g4tktL`u-8N%m=+ z{RH=;R~6(((8sv%EBDAb%R(q(n>M(=?66O9zXy=RJeTkLKboX{V;jbX46~hS)9<@I zTsc2e6*W?SgjKo72ocoJ_F@^J(BdWd9!(l*f(io1;>)#cmzpow6g)d|qb(Zi&4S?C z2>p@J6#jaR6mwd^+5a#@9=g2Vlg*#aX?|jjwT7I$?+q0OHN^AYIscy0w8R2@(k+#) z#C$TQo@owR;}^7WE@%4&&?+#DC@uoAk(kRO+t>dbDBr#3K`I^?j~V_L(YT%;h-y`R zRoL+|?q?z11?BZi)sJN|arG#JA45XgLCY~5>xpNkF%AtLebQucvPhU+5v8ETcF*U4lFV3OapU+AaChcq^Bz0 zWbJ(j%zpRGp46pPVbOm5DQhdM75=Jxd|}ZQ(HBFthYa(gp4Z63Jktaut#_JmJ8TiM z459Wfi}5v=P`mFhmlE`FoEl0}_?dH>o0vd!Yi%T%O^=oodi4+xjd!yMiZjvGZnKNj zGZZklE|66aWjc7CV9Jpvq?5_(+&kth9JOdgZt~_t%B9fcbT8eBT-Blbqc>33yNa_+eFi3~dDH=Z+mGUg2TTK$7}IlYagsp98JJbWoyV{b{gfu>O^U zTD@A;#|`go@z&LRhv{iLUzF9<+Tq1vyI9v`d(u5HcWW&i7mM?kyr{i;LU zWSNNYKG`#eW?+vPiFM(zoUJE1I5+@Qm}sLh8|^sV9ZrV42~gg8fLIF1-LZ-{>iE;( zu1-X|kra~Yn2kuCloz~Cw|W8p@z9sO!eW9QnohxK9*Ne`bt8B-k1!%{wFY`{m$fA4 zPvPOdL>wmBo;|=!O#|zvUe-FafFG)|*#JSsg{}{ff>)#fJ*f=vsfXO77v}E@kDO1* z0Oiv;<7E_vWKGgu{@?HfAfC_Cq=pSlBUbRWbzZP;iB|D<%u-og!k{K`#OX- z#E>vJLU0|1=D$RuL644lFu3A#wJIRt;o+q-nMQnW?(TV%OF)!RS(*V_M&%< zU@>B(l@f{m`&pCdi2NATBR<84=L7fL@7IjLFD?#dAoK;ploboym_1pn@xDpaxFO}_ zV3_>_8WbU;E^RtFZz3k06JOuV|4{9=KZpN zr2E*|*dpTMThg?F?!0`LA}_c%g2YfSy*jEASU08H^R%E^7l}TIXeob$l}OwKj#4Rq zkus{ZaH(II8#!2;2Y$P;fH?J!8w;lL4RELBrX~Nj7+3aq$f#D?N7&xHc6`hJ?*#)O zAH{FEt4?Deq36l2J3u89TTCMI|6^VK84QE#sminrrcGyjIF*YvtpAbhQ$coq$$;_N zW=8Iy+Lr7Cs=uY>Vz^&k?_YVlNLA1;z+W*Dp8Uo2QpW+ZcZb(ns5665HNsG5aPz|^ z9*wgQgA4ZRsK$Sl;@J+6rL8S@u+13#HkAuyGsAOUi2WVy{)ScN?
- - - + <> + + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} + - + ); } diff --git a/apps/react-app/src/common/utils/getErrorMessage.tsx b/apps/react-app/src/common/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/common/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/common/utils/index.ts b/apps/react-app/src/common/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/common/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/common/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/common/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/common/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/common/utils/shorten.tsx b/apps/react-app/src/common/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/common/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/common/utils/sortTable.tsx b/apps/react-app/src/common/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/common/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx deleted file mode 100644 index 156d3193..00000000 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ /dev/null @@ -1,6 +0,0 @@ -function AddCommentForm() { - // Activity 8 - Place the code to create new comments here - return
AddCommentForm
; -} - -export default AddCommentForm; diff --git a/apps/react-app/src/components/AddCommentForm/index.ts b/apps/react-app/src/components/AddCommentForm/index.ts deleted file mode 100644 index 13ea9aa0..00000000 --- a/apps/react-app/src/components/AddCommentForm/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {default} from "./AddCommentForm" \ No newline at end of file diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index e991bf20..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 973428b1..c321f8f2 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,6 +1,6 @@ import { Title, Container, FormContainer } from "./Comments.styles"; -import CommentCard from "../CommentCard"; -import AddCommentForm from "../AddCommentForm"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -8,12 +8,11 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} - + {/* ACT 8 - Create a form to add comments */} ); diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9ee6e67a..ca36df4b 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -6,18 +6,45 @@ import { DialogActions, DialogContent, DialogTitle, - InputLabel, MenuItem, - FormControl, - Select, SelectChangeEvent, - FormHelperText, } from "@mui/material"; -import { Post } from "../../types"; -import { validator } from "../../utils"; +import { NewPost, Post } from "../../types"; +import { validator } from "../../common/utils"; import { PostContext } from "../../context"; -import { FormInputs } from "../../types"; +import { FormInputs, Inputs } from "../../types"; + +const inputs: Inputs = [ + { + id: "title-id", + name: "title", + label: "Title", + type: "text", + }, + { + id: "description-id", + name: "description", + label: "Description", + type: "text", + }, + { + id: "category-label", + name: "category", + label: "Category", + type: "menu", + options: [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, + ], + }, + { + id: "url-id", + name: "image", + label: "URL of the image", + type: "url", + }, +]; const emptyInputs: FormInputs = { title: { value: "", error: "" }, @@ -29,30 +56,20 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; post?: Post | null; - // categorySelected: string; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } -const Form = ({ - open, - post, - // categorySelected, - setOpen, - setSelectedPost, -}: FormProps) => { +const Form = ({ open, post, setOpen, setSelectedPost }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { - // getPosts, - createOrUpdatePost, - } = React.useContext(PostContext); + const { createOrUpdatePost } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; const existingPost = { title: { value: post.title, error: "" }, description: { value: post.description, error: "" }, - category: { value: post.category, error: "" }, + category: { value: post.category?._id || "", error: "" }, image: { value: post.image, error: "" }, }; setFormData(existingPost); @@ -71,17 +88,18 @@ const Form = ({ const containError = inputs.map((input) => input.error).some((v) => !!v); if (containError) return; - const newPost: Post = { - id: post?.id ?? Math.random().toString(), + const newPost: NewPost = { title: formData.title.value, image: formData.image.value, description: formData.description.value, category: formData.category.value, - comments: post?.comments ?? [], }; - createOrUpdatePost({ method: post ? "patch" : "post", newPost }); - // getPosts(categorySelected); + createOrUpdatePost({ + method: post ? "patch" : "post", + newPost, + postID: post?.id, + }); handleClose(); }; @@ -123,75 +141,50 @@ const Form = ({ Create Post - - - - Category - - {formData.category.error} - - + {inputs.map((input, idx) => ( + + {(input.type === "text" || input.type === "url") && ( + + )} + {input.type === "menu" && ( + + {input.options?.map((option, idx) => ( + + {option.name} + + ))} + + )} + + ))} diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index 67f292c6..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,48 +0,0 @@ -import { useContext, useState } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; -import Form from "../Form"; - -function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - const [selectedPost, setSelectedPost] = useState(null); - const [open, setOpen] = useState(false); - - const handleOpenForm = (defaultValues?: Post) => { - setOpen(true); - if (defaultValues) setSelectedPost(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; - - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time - - if (!posts) return ; - - return ( - <> - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..015d89e9 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,79 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..a54caca1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,30 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +// const categories: Category[] = [ +// { id: "663fef70d513515319551d1f", name: "Travel" }, +// { id: "663fef70d513515319546d1f", name: "Food" }, +// ]; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + + //ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + return ( + + Categories Page + + {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..545110c8 --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,61 @@ +import { useCallback, useContext, useEffect, useState } from "react"; + +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import CreatePostButton from "../../CreatePostButton"; +import { Category, Post } from "../../../types"; +import { PostContext } from "../../../context"; +import Loading from "../../Loading"; +import Form from "../../Form"; + +const categories: Category[] = [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, +]; + +function HomePage() { + const [openForm, setOpenForm] = useState(false); + const { posts, getPosts } = useContext(PostContext); + const [selectedPost, setSelectedPost] = useState(null); + const [selectedCategory, setSelectedCategory] = useState( + null + ); + + const handleOpenForm = (defaultValues?: Post) => { + setOpenForm(true); + if (defaultValues) setSelectedPost(defaultValues); + }; + + const handleSelectCategory = useCallback( + (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + getPosts(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPosts] + ); + + useEffect(getPosts, [getPosts]); + + if (!posts) return ; + + return ( + <> + + + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..20512000 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,15 @@ +import { PageContainer } from "./LoginPage.styles"; +import { Grid } from "@mui/material"; + +const LoginPage = () => { + return ( + + Login Page + + {/* ACT 8 - Create a form to Login and SignUp */} + + + ); +}; + +export default LoginPage; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..fbe967a0 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,44 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const post = { +// image: "", +// title: "", +// postID: "", +// comments: [ +// { +// _id: "", +// author: "", +// content: "", +// createdAt: "", +// updatedAt: "", +// __v: "", +// }, +// ], +// description: "", +// }; // ACT 1 - Fill all this properties with random data + +function PostPage() { + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 8e3ce6e1..b8d10727 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -2,14 +2,16 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; import { CardActions, CardContainer, CardContent, PostCard, } from "./PostList.styles"; +import { Post } from "../../types"; +import { PostContext } from "../../context"; +import { useContext } from "react"; interface PostListProps { posts: Post[]; @@ -17,9 +19,11 @@ interface PostListProps { } function PostList({ posts, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
- + { + e.stopPropagation(); + removePost(post.id); + }} + > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 777b35d3..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -function PostPage() { - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 0abbf253..7a632565 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,17 +1,19 @@ -import React, { createContext, useState, useCallback, useEffect } from "react"; +import React, { createContext, useCallback, useEffect, useState } from "react"; -import { Post } from "../types"; +import { NewPost, Post } from "../types"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + getPosts: (categoryID?: string) => void; + removePost: (postID: string) => void; createOrUpdatePost: ({ method, newPost, + postID }: { method: "post" | "patch"; - newPost: Post; + newPost: NewPost; + postID?:string }) => void; } @@ -22,49 +24,47 @@ interface PostProviderProps { export const PostContext = createContext({ posts: [] || null, getPosts: () => {}, - deletePost: () => {}, + removePost: () => {}, createOrUpdatePost: () => {}, }); -const postList = [ +const postList: Post[] = [ { - id: "1.23", - title: "A good place to camp", + id: "664128a212f505651c18d676", + title: "A nice place to camp", image: "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319551d1f", + name: "Travel", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, { - id: "1.24", - title: "The average path a grandparent took to get to school", + id: "664128a212f505651c18d6kf6", + title: "Favorite food ;)", image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", + "https://th.bing.com/th/id/R.2d66d3ce21d052726c2c527a03da4f4c?rik=3FedcY2H7LDtBw&riu=http%3a%2f%2ftheartofplating.com%2fwp-content%2fuploads%2f2015%2f06%2fEvan_Feature.jpg&ehk=KCxZkONbpjuAYhfpKxoeHgIizR%2fy1U0LM6olKn1d8go%3d&risl=&pid=ImgRaw&r=0", + description: "Post 2.0 description", + category: { + _id: "663fef70d513515319546d1f", + name: "Food", + createdAt: "2024-05-11T22:21:36.759Z", + updatedAt: "2024-05-14T13:47:54.653Z", + __v: 0, + }, comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, + "6641f7d912f505651c18d68e", + "66424d2c12f505651c18d91c", + "66424d3812f505651c18d923", ], }, ]; @@ -72,58 +72,69 @@ const postList = [ export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { - const [serverData, setServerData] = useState(postList); + const [serverData, setServerData] = useState(postList); const [posts, setPosts] = useState(postList); - const [updateData, setUpdateData] = useState(false); - - const createOrUpdatePost = useCallback( - ({ method, newPost }: { method: "post" | "patch"; newPost: Post }) => { - if (method === "post") setServerData((prev) => [...prev, newPost]); - if (method === "patch") { - setServerData((prev) => - prev.map((post) => (post.id === newPost.id ? newPost : post)) - ); - } - setUpdateData(true); - }, - [setUpdateData] - ); const getPosts = useCallback( - (category: string) => { + (categoryID?: string) => { const selectedCategory = serverData.filter( - (post: Post) => post.category === category + (post: Post) => post.category?._id === categoryID ); - const newPosts = category === "All" ? serverData : selectedCategory; + const newPosts = categoryID ? selectedCategory : serverData; setPosts(newPosts); - // Activity 7 - Call to the createAlert function here. Include message and severity. }, [serverData] ); - const deletePost = useCallback( - (postId: string) => { - setServerData((prev) => { - const filteredList = prev.filter((post: Post) => post.id !== postId); - return filteredList; - }); - setUpdateData(true); + const createOrUpdatePost = useCallback( + ({ + method, + newPost, + postID, + }: { + method: "post" | "patch"; + newPost: NewPost; + postID?: string; + }) => { + const { category: postCategory, ...rest } = newPost; + const selectedCategory = postList + ?.map((post) => post.category) + .filter((category) => category?._id === postCategory)[0]; + if (method === "post") { + const post: Post = { + id: Math.random().toString(), + category: selectedCategory, + comments: [], + ...rest, + }; + setServerData((prev) => [...prev, post]); + } + if (method === "patch") { + setServerData((prev) => + prev.map((post) => + post.id === postID + ? { ...post, ...newPost, category: selectedCategory } + : post + ) + ); + } }, - [setUpdateData] + [] ); - useEffect(() => { - if (!updateData) return; - setUpdateData(false); - getPosts("All"); - }, [updateData, getPosts]); + const removePost = useCallback((postID: string) => { + setServerData((prev) => prev.filter((post: Post) => post.id !== postID)); + // ACT 7 - Use createAlert function to notify the user that the item was successfully deleted + }, []); + + useEffect(() => setPosts(serverData), [serverData]); return ( diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..56933391 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,2 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9f8ec72a 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: keyof FormInputs; + label: string; + type: string; + options?: { id?: string; name: string }[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} From b9fa7ba7bb71f438d574137d45a453223447b411 Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:15:53 -0600 Subject: [PATCH 09/21] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 36 +- apps/react-app/src/api/axios.ts | 6 +- apps/react-app/src/api/endpoints/auth.ts | 121 ++++ .../react-app/src/api/endpoints/categories.ts | 36 ++ apps/react-app/src/api/endpoints/comments.ts | 35 ++ apps/react-app/src/api/endpoints/index.ts | 4 + apps/react-app/src/api/endpoints/posts.ts | 173 ++++++ apps/react-app/src/api/index.ts | 1 + .../src/common/utils/getErrorMessage.tsx | 8 + apps/react-app/src/common/utils/index.ts | 4 + .../utils/inputsValidator.tsx} | 7 +- apps/react-app/src/common/utils/shorten.tsx | 4 + apps/react-app/src/common/utils/sortTable.tsx | 52 ++ .../AddCommentForm/AddCommentForm.tsx | 7 - .../src/components/AddCommentForm/index.ts | 1 - .../src/components/Banner/Banner.tsx | 10 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 13 +- .../CreatePostButton.styles.tsx | 3 +- apps/react-app/src/components/Form/Form.tsx | 200 +++--- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/HomePage/HomePage.tsx | 50 -- .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 79 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 26 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 101 +++ .../components/{ => Page}/HomePage/index.ts | 0 .../LoginPage/LoginPage.styles.tsx} | 9 +- .../components/Page/LoginPage/LoginPage.tsx | 16 + .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 30 + .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 4 + .../src/components/PostList/PostList.tsx | 28 +- .../src/components/PostPage/PostPage.tsx | 60 -- apps/react-app/src/context/PostProvider.tsx | 179 ++++-- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 2 +- apps/react-app/src/types/index.ts | 119 +++- 51 files changed, 1791 insertions(+), 388 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png create mode 100644 apps/react-app/src/api/endpoints/auth.ts create mode 100644 apps/react-app/src/api/endpoints/categories.ts create mode 100644 apps/react-app/src/api/endpoints/comments.ts create mode 100644 apps/react-app/src/api/endpoints/index.ts create mode 100644 apps/react-app/src/api/endpoints/posts.ts create mode 100644 apps/react-app/src/api/index.ts create mode 100644 apps/react-app/src/common/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/common/utils/index.ts rename apps/react-app/src/{utils/index.tsx => common/utils/inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/common/utils/shorten.tsx create mode 100644 apps/react-app/src/common/utils/sortTable.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/index.ts delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts delete mode 100644 apps/react-app/src/components/HomePage/HomePage.tsx create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts create mode 100644 apps/react-app/src/components/Page/HomePage/HomePage.tsx rename apps/react-app/src/components/{ => Page}/HomePage/index.ts (100%) rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) create mode 100644 apps/react-app/src/components/Page/index.ts delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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
- - - + + + {page === "HomePage" && } + {/* ACT 1 - Render PostPage and CategoriesPage components */} + {/* ACT 2 - Move the following content to a new component called LoginPage and render it*/} + {/* ACT 4 - Add conditions to render PostPage, LoginPage and CategoriesPage components */} - + + ); } diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 2946fd6a..9d2ab0d9 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -1,9 +1,13 @@ import axios from "axios"; const axiosInstance = axios.create(); +const token = + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1Nzk4NTc2LCJleHAiOjE3MTU4MDIxNzZ9.EgW4AcErd_fwDVwZa-pzJCw12xKBzGJ32B8Ry92XRs8"; axiosInstance.interceptors.request.use((config) => { - config.baseURL = "http://localhost:3000/posts"; + config.baseURL = "https://test.neuraac.com/api"; + config.headers.Authorization = `Bearer ${token}`; + config.signal = AbortSignal.timeout(5000); return config; }); diff --git a/apps/react-app/src/api/endpoints/auth.ts b/apps/react-app/src/api/endpoints/auth.ts new file mode 100644 index 00000000..8fe82a11 --- /dev/null +++ b/apps/react-app/src/api/endpoints/auth.ts @@ -0,0 +1,121 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { User, AuthResponse, AuthLoginResponse, NewUser } from "../../types"; + +export const createUser = async ({ + newUser, + onSuccess, + onError, + onLoading, +}: { + newUser: NewUser; + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/register`, + data: newUser, + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const login = async ({ + user, + onSuccess, + onError, + onLoading, +}: { + user: User; + onSuccess?: (data: AuthLoginResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/login`, + data: user, + }) + .then((response: AxiosResponse) => { + const data: AuthLoginResponse = response.data; + if (response.status === 200 && onSuccess) { + const token = data.accessToken; + localStorage.setItem("apiToken", token); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const logout = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/logout`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) { + localStorage.removeItem("apiToken"); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const refreshToken = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/refresh`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/categories.ts b/apps/react-app/src/api/endpoints/categories.ts new file mode 100644 index 00000000..6d15b977 --- /dev/null +++ b/apps/react-app/src/api/endpoints/categories.ts @@ -0,0 +1,36 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { + // Category, + CategoriesResponse, + // NewCategory +} from "../../types"; + +export const getCategories = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: CategoriesResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/categories", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +// ACT 9 - Create callbacks fuctions to call create, update and delete APIs diff --git a/apps/react-app/src/api/endpoints/comments.ts b/apps/react-app/src/api/endpoints/comments.ts new file mode 100644 index 00000000..218636cd --- /dev/null +++ b/apps/react-app/src/api/endpoints/comments.ts @@ -0,0 +1,35 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { NewComment, CommentResponse } from "../../types"; + +export const createComment = async ({ + postID, + newComment, + onSuccess, + onError, + onLoading, +}: { + postID: string; + newComment: NewComment; + onSuccess?: (data: CommentResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts/${postID}/comments`, + data: newComment, + }) + .then((response: AxiosResponse) => { + const data: CommentResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/index.ts b/apps/react-app/src/api/endpoints/index.ts new file mode 100644 index 00000000..efbe5817 --- /dev/null +++ b/apps/react-app/src/api/endpoints/index.ts @@ -0,0 +1,4 @@ +export * from "./categories"; +export * from "./comments"; +export * from "./posts"; +export * from "./auth"; diff --git a/apps/react-app/src/api/endpoints/posts.ts b/apps/react-app/src/api/endpoints/posts.ts new file mode 100644 index 00000000..574451d8 --- /dev/null +++ b/apps/react-app/src/api/endpoints/posts.ts @@ -0,0 +1,173 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { PostsResponse, PostResponse, NewPost } from "../../types"; + +export const getPosts = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/posts", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPostsByCategory = async ({ + selectedCategoryID, + onSuccess, + onError, + onLoading, +}: { + selectedCategoryID: string; + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/category/${selectedCategoryID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: (data: PostResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const createPost = async ({ + newPost, + onSuccess, + onError, + onLoading, +}: { + newPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts`, + data: newPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const updatePost = async ({ + postID, + updatedPost, + onSuccess, + onError, + onLoading, +}: { + postID: string; + updatedPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "patch", + data: updatedPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const deletePost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: () => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "delete", + }) + .then((response: AxiosResponse) => { + if (response.status === 204 && onSuccess) onSuccess(); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/index.ts b/apps/react-app/src/api/index.ts new file mode 100644 index 00000000..c9cd5154 --- /dev/null +++ b/apps/react-app/src/api/index.ts @@ -0,0 +1 @@ +export * from "./endpoints" \ No newline at end of file diff --git a/apps/react-app/src/common/utils/getErrorMessage.tsx b/apps/react-app/src/common/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/common/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

{error}

; +}; + diff --git a/apps/react-app/src/common/utils/index.ts b/apps/react-app/src/common/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/common/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/common/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/common/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/common/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/common/utils/shorten.tsx b/apps/react-app/src/common/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/common/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/common/utils/sortTable.tsx b/apps/react-app/src/common/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/common/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx deleted file mode 100644 index b130c473..00000000 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ /dev/null @@ -1,7 +0,0 @@ -function AddCommentForm() { - // Activity 8 - Place the code to create new comments here - // Activity 9 - Call the API to create a new comment when submitting the form - return
AddCommentForm
; -} - -export default AddCommentForm; diff --git a/apps/react-app/src/components/AddCommentForm/index.ts b/apps/react-app/src/components/AddCommentForm/index.ts deleted file mode 100644 index 13ea9aa0..00000000 --- a/apps/react-app/src/components/AddCommentForm/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {default} from "./AddCommentForm" \ No newline at end of file diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..ba5148a7 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,18 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 20c18b09..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All" +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index 083ae108..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 973428b1..c321f8f2 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,6 +1,6 @@ import { Title, Container, FormContainer } from "./Comments.styles"; -import CommentCard from "../CommentCard"; -import AddCommentForm from "../AddCommentForm"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -8,12 +8,11 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} - + {/* ACT 8 - Create a form to add comments */} ); diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9cc590d3..8e12cdcb 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -6,20 +6,45 @@ import { DialogActions, DialogContent, DialogTitle, - InputLabel, MenuItem, - FormControl, - Select, SelectChangeEvent, - FormHelperText, } from "@mui/material"; -import { AxiosError, AxiosResponse } from "axios"; -import axios from "../../api/axios"; -import { Post } from "../../types"; -import { validator } from "../../utils"; +import { Category, NewPost, Post } from "../../types"; +import { validator } from "../../common/utils"; import { PostContext } from "../../context"; -import { FormInputs } from "../../types"; +import { FormInputs, Inputs } from "../../types"; + +const inputs: Inputs = [ + { + id: "title-id", + name: "title", + label: "Title", + type: "text", + }, + { + id: "description-id", + name: "description", + label: "Description", + type: "text", + }, + { + id: "category-label", + name: "category", + label: "Category", + type: "menu", + options: [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, + ], + }, + { + id: "url-id", + name: "image", + label: "URL of the image", + type: "url", + }, +]; const emptyInputs: FormInputs = { title: { value: "", error: "" }, @@ -30,8 +55,9 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; - post?: Post | null; - categorySelected: string; + post: Post | null; + categories: Category[] | null; + selectedCategory: Category | null; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -39,19 +65,20 @@ interface FormProps { const Form = ({ open, post, - categorySelected, + categories, + selectedCategory, setOpen, setSelectedPost, }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { getPosts } = React.useContext(PostContext); + const { addPost, updatePostData } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; const existingPost = { title: { value: post.title, error: "" }, description: { value: post.description, error: "" }, - category: { value: post.category, error: "" }, + category: { value: post.category?._id ?? "", error: "" }, image: { value: post.image, error: "" }, }; setFormData(existingPost); @@ -63,39 +90,29 @@ const Form = ({ setSelectedPost(null); }; - const hanldeSubmit = (event: React.FormEvent) => { + const hanldeSubmit = async (event: React.FormEvent) => { event.preventDefault(); const inputs = Object.values(formData); const containError = inputs.map((input) => input.error).some((v) => !!v); if (containError) return; - const newPost: Post = { - id: post?.id ?? Math.random().toString(), + const newPost: NewPost = { title: formData.title.value, image: formData.image.value, description: formData.description.value, category: formData.category.value, - comments: post?.comments ?? [], }; - axios({ - method: post ? "patch" : "post", - url: post ? `/${post.id}` : undefined, - signal: AbortSignal.timeout(5000), - data: newPost, - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts(categorySelected); - handleClose(); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + handleClose(); + + post + ? await updatePostData({ + postID: post.id, + updatedPost: newPost, + selectedCategoryID: selectedCategory?.id, + }) + : await addPost(newPost); }; const handleChange = ( @@ -136,75 +153,50 @@ const Form = ({ Create Post - - - - Category - - {formData.category.error} - - + {inputs.map((input, idx) => ( + + {(input.type === "text" || input.type === "url") && ( + + )} + {input.type === "menu" && ( + + {categories?.map((option, idx) => ( + + {option.name} + + ))} + + )} + + ))} diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx deleted file mode 100644 index 0410073f..00000000 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { useContext, useState } from "react"; -import CategoryButtonGroup from "../CategoryButtonGroup"; -import CreatePostButton from "../CreatePostButton"; -import PostList from "../PostList"; -import { Post } from "../../types"; -import { PostContext } from "../../context"; -import Loading from "../Loading"; -import Form from "../Form"; - -function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - const [selectedPost, setSelectedPost] = useState(null); - const [open, setOpen] = useState(false); - const categorySelected = "All"; - - const handleOpenForm = (defaultValues?: Post) => { - setOpen(true); - if (defaultValues) setSelectedPost(defaultValues); - }; - - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; - - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time - - if (!posts) return ; - - return ( - <> - - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - - - - ); -} - -export default HomePage; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..015d89e9 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,79 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..6d5defcf --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,26 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + // ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + // ACT 9 - Use the getList, create, edit, delete and update categories APIs + + return ( + + Categories Page + + {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx new file mode 100644 index 00000000..eba5b28a --- /dev/null +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -0,0 +1,101 @@ +import { useState, useContext, useEffect, useCallback } from "react"; + +import Form from "../../Form"; +import PostList from "../../PostList"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import { + PostContext, + // SnackbarContext +} from "../../../context"; +import { CategoriesResponse, Category, Post } from "../../../types"; +import Loading from "../../Loading"; +import CreatePostButton from "../../CreatePostButton"; +import { getCategories } from "../../../api"; + +function HomePage() { + // const createAlert = useContext(SnackbarContext); + const { posts, loadingPosts, getPostList } = useContext(PostContext); + const [open, setOpen] = useState(false); + const [loadingCategories, setLoadingCategories] = useState(false); + const [selectedPost, setSelectedPost] = useState(null); + const [categories, setCategories] = useState(null); + const [selectedCategory, setSelectedCategory] = useState( + null + ); + + const handleOpenForm = (defaultValues?: Post) => { + setOpen(true); + if (defaultValues) setSelectedPost(defaultValues); + }; + + const handleSelectCategory = useCallback( + async (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + await getPostList(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPostList] + ); + + const getCategoriesList = useCallback(async () => { + const onSuccess = (data: CategoriesResponse[]) => { + const newRows = data.map((category) => ({ + id: category._id, + name: category.name, + })); + setCategories(newRows); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + setLoadingCategories(isLoading); + }; + + await getCategories({ onSuccess, onError, onLoading }); + }, []); + + useEffect(() => { + getPostList(); + getCategoriesList(); + }, [getPostList, getCategoriesList]); + + if (!categories || loadingCategories) return ; + + return ( + <> + + + + {!posts || loadingPosts ? ( + + ) : ( + + )} + + + + ); +} + +export default HomePage; diff --git a/apps/react-app/src/components/HomePage/index.ts b/apps/react-app/src/components/Page/HomePage/index.ts similarity index 100% rename from apps/react-app/src/components/HomePage/index.ts rename to apps/react-app/src/components/Page/HomePage/index.ts diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..284a5168 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,16 @@ +import { PageContainer } from "./LoginPage.styles"; +import { Grid } from "@mui/material"; + +const LoginPage = () => { + // ACT 9 - Use the login and register APIs + return ( + + Login Page + + {/* ACT 8 - Create a form to Login and SignUp */} + + + ); +}; + +export default LoginPage; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..a22c8b67 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ + // ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..e3eba149 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,30 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const postID = "664128a212f505651c18d676" + +function PostPage() { + // ACT 9 - Use postID variable to fetch the post data + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts new file mode 100644 index 00000000..4351b1ab --- /dev/null +++ b/apps/react-app/src/components/Page/index.ts @@ -0,0 +1,4 @@ +export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +// ACT 2 - Export LoginPage component diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index b13fe13c..31cbc21f 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -3,8 +3,8 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; +import { Category, Post } from "../../types"; import { PostContext } from "../../context"; import { CardActions, @@ -15,14 +15,16 @@ import { interface PostListProps { posts: Post[]; + selectedCategory: Category | null; handleOpenForm: (defaultValues?: Post) => void; } -function PostList({ posts, handleOpenForm }: PostListProps) { - const { deletePost } = useContext(PostContext); +function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
{ e.stopPropagation(); - deletePost(post.id); + removePost({ + postID: post.id, + selectedCategoryID: selectedCategory?.id, + }); }} > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 405ef03d..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import Loading from "../Loading"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -const postId = "1.23" - -function PostPage() { - // Activity 9 - Call the API "/:postId" to get the post. To save the result use useState - - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }; - - if (!post || !postId) return ; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 03e1e61f..e5121b50 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,13 +1,41 @@ -import React, { createContext, useState, useCallback } from "react"; -import { AxiosError, AxiosResponse } from "axios"; +import React, { + createContext, + useState, + // useContext, + useCallback, +} from "react"; -import axios from "../api/axios"; -import { Post } from "../types"; +import { NewPost, Post, PostsResponse } from "../types"; +// import { SnackbarContext } from "../context"; +import { + createPost, + deletePost, + getPosts, + getPostsByCategory, + updatePost, +} from "../api"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + loadingPosts: boolean; + addPost: (newPost: NewPost) => void; + removePost: ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => void; + getPostList: (selectedCategoryID?: string) => void; + updatePostData: ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => void; } interface PostProviderProps { @@ -15,61 +43,122 @@ interface PostProviderProps { } export const PostContext = createContext({ - posts: [] || null, - getPosts: () => {}, - deletePost: () => {}, + posts: null, + loadingPosts: false, + addPost: () => {}, + removePost: () => {}, + getPostList: () => {}, + updatePostData: () => {}, }); export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { + // const createAlert = useContext(SnackbarContext); const [posts, setPosts] = useState(null); + const [loadingPosts, setLoadingPosts] = useState(false); - const getPosts = useCallback((category: string) => { - axios({ - method: "get", - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - const selectedCategory = response.data.filter( - (post: Post) => post.category === category - ); - const newPosts = category === "All" ? response.data : selectedCategory; - setPosts(newPosts); - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + const onLoading = (isLoading: boolean) => { + setLoadingPosts(isLoading); + }; + + const onError = useCallback(() => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); }, []); - const deletePost = useCallback( - (postId: string) => { - axios({ - method: "delete", - url: `/${postId}`, - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts("All"); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with success message - console.error(`${error}`); - }); + const getPostList = useCallback( + async (selectedCategoryID?: string) => { + const onSuccess = async (data: PostsResponse[]) => { + const newList = data.map((post) => ({ + id: post._id, + title: post.title, + image: post.image, + description: post.description, + category: post.category, + comments: post.comments, + })); + setPosts(newList); + }; + + const params = { onSuccess, onError, onLoading }; + selectedCategoryID + ? await getPostsByCategory({ selectedCategoryID, ...params }) + : await getPosts(params); + }, + [onError] + ); + + const addPost = useCallback( + async (newPost: NewPost) => { + const onSuccess = async () => { + await getPostList(); + // createAlert({ + // message: "Post successfully created.", + // severity: "success", + // }); + }; + + await createPost({ newPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const updatePostData = useCallback( + async ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully updated.", + // severity: "success", + // }); + }; + + await updatePost({ postID, updatedPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const removePost = useCallback( + async ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully deleted.", + // severity: "success", + // }); + }; + setLoadingPosts(true); + await deletePost({ postID, onSuccess, onError }); }, - [getPosts] + [onError, getPostList] ); return ( {children} diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..56933391 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,2 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9f8ec72a 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: keyof FormInputs; + label: string; + type: string; + options?: { id?: string; name: string }[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} From fafc72514595a93d72643d491c82a230d04cb08b Mon Sep 17 00:00:00 2001 From: React Mentorship Date: Wed, 15 May 2024 19:17:41 -0600 Subject: [PATCH 10/21] Wave 5 update --- apps/react-app/README.md | 54 ++ .../Capstone-Project.postman_collection.json | 579 ++++++++++++++++++ apps/react-app/assets/generate-token.png | Bin 0 -> 114798 bytes apps/react-app/assets/postman-variables.png | Bin 0 -> 57639 bytes apps/react-app/assets/register-user.png | Bin 0 -> 75569 bytes apps/react-app/src/App.tsx | 14 +- apps/react-app/src/Router/PrivateRoute.tsx | 37 ++ apps/react-app/src/Router/Router.tsx | 16 + .../src/{components => }/Router/index.ts | 0 apps/react-app/src/api/axios.ts | 7 +- apps/react-app/src/api/endpoints/auth.ts | 121 ++++ .../react-app/src/api/endpoints/categories.ts | 36 ++ apps/react-app/src/api/endpoints/comments.ts | 35 ++ apps/react-app/src/api/endpoints/index.ts | 4 + apps/react-app/src/api/endpoints/posts.ts | 173 ++++++ apps/react-app/src/api/index.ts | 1 + .../src/common/utils/getErrorMessage.tsx | 8 + apps/react-app/src/common/utils/index.ts | 4 + .../utils/inputsValidator.tsx} | 7 +- apps/react-app/src/common/utils/shorten.tsx | 4 + apps/react-app/src/common/utils/sortTable.tsx | 52 ++ .../AddCommentForm/AddCommentForm.tsx | 7 - .../src/components/AddCommentForm/index.ts | 1 - .../src/components/Banner/Banner.tsx | 14 +- .../CategoryButtonGroup.styles.tsx | 1 - .../CategoryButtonGroup.tsx | 54 +- .../components/CommentCard/CommentCard.tsx | 6 +- .../src/components/Comments/Comments.tsx | 13 +- .../CreatePostButton.styles.tsx | 3 +- apps/react-app/src/components/Form/Form.tsx | 200 +++--- .../src/components/Header/Header.tsx | 23 - apps/react-app/src/components/Header/index.ts | 1 - .../src/components/Loading/Loading.tsx | 18 +- .../src/components/NavBar/NavBar.tsx | 77 +++ apps/react-app/src/components/NavBar/index.ts | 1 + .../CategoriesPage/CategoriesPage.styles.tsx | 11 + .../Page/CategoriesPage/CategoriesPage.tsx | 26 + .../components/Page/CategoriesPage/index.ts | 1 + .../src/components/Page/HomePage/HomePage.tsx | 95 ++- .../LoginPage/LoginPage.styles.tsx} | 9 +- .../components/Page/LoginPage/LoginPage.tsx | 24 + .../src/components/Page/LoginPage/index.ts | 1 + .../{ => Page}/NotFoundPage/NotFoundPage.tsx | 0 .../{ => Page}/NotFoundPage/index.ts | 0 apps/react-app/src/components/Page/Page.tsx | 23 +- .../{ => Page}/PostPage/PostPage.styles.tsx | 3 +- .../src/components/Page/PostPage/PostPage.tsx | 31 + .../components/{ => Page}/PostPage/index.ts | 0 apps/react-app/src/components/Page/index.ts | 5 + .../src/components/PostList/PostList.tsx | 30 +- .../src/components/PostPage/PostPage.tsx | 60 -- .../src/components/Router/Router.tsx | 12 - apps/react-app/src/context/AuthProvider.tsx | 54 ++ apps/react-app/src/context/PostProvider.tsx | 179 ++++-- .../src/context/SnackbarProvider.tsx | 2 +- apps/react-app/src/context/index.ts | 3 +- apps/react-app/src/types/index.ts | 119 +++- 57 files changed, 1881 insertions(+), 378 deletions(-) create mode 100644 apps/react-app/README.md create mode 100644 apps/react-app/assets/Capstone-Project.postman_collection.json create mode 100644 apps/react-app/assets/generate-token.png create mode 100644 apps/react-app/assets/postman-variables.png create mode 100644 apps/react-app/assets/register-user.png create mode 100644 apps/react-app/src/Router/PrivateRoute.tsx create mode 100644 apps/react-app/src/Router/Router.tsx rename apps/react-app/src/{components => }/Router/index.ts (100%) create mode 100644 apps/react-app/src/api/endpoints/auth.ts create mode 100644 apps/react-app/src/api/endpoints/categories.ts create mode 100644 apps/react-app/src/api/endpoints/comments.ts create mode 100644 apps/react-app/src/api/endpoints/index.ts create mode 100644 apps/react-app/src/api/endpoints/posts.ts create mode 100644 apps/react-app/src/api/index.ts create mode 100644 apps/react-app/src/common/utils/getErrorMessage.tsx create mode 100644 apps/react-app/src/common/utils/index.ts rename apps/react-app/src/{utils/index.tsx => common/utils/inputsValidator.tsx} (83%) create mode 100644 apps/react-app/src/common/utils/shorten.tsx create mode 100644 apps/react-app/src/common/utils/sortTable.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx delete mode 100644 apps/react-app/src/components/AddCommentForm/index.ts delete mode 100644 apps/react-app/src/components/Header/Header.tsx delete mode 100644 apps/react-app/src/components/Header/index.ts create mode 100644 apps/react-app/src/components/NavBar/NavBar.tsx create mode 100644 apps/react-app/src/components/NavBar/index.ts create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx create mode 100644 apps/react-app/src/components/Page/CategoriesPage/index.ts rename apps/react-app/src/components/{Header/Header.styles.tsx => Page/LoginPage/LoginPage.styles.tsx} (57%) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx create mode 100644 apps/react-app/src/components/Page/LoginPage/index.ts rename apps/react-app/src/components/{ => Page}/NotFoundPage/NotFoundPage.tsx (100%) rename apps/react-app/src/components/{ => Page}/NotFoundPage/index.ts (100%) rename apps/react-app/src/components/{ => Page}/PostPage/PostPage.styles.tsx (92%) create mode 100644 apps/react-app/src/components/Page/PostPage/PostPage.tsx rename apps/react-app/src/components/{ => Page}/PostPage/index.ts (100%) delete mode 100644 apps/react-app/src/components/PostPage/PostPage.tsx delete mode 100644 apps/react-app/src/components/Router/Router.tsx create mode 100644 apps/react-app/src/context/AuthProvider.tsx diff --git a/apps/react-app/README.md b/apps/react-app/README.md new file mode 100644 index 00000000..ff7bfc51 --- /dev/null +++ b/apps/react-app/README.md @@ -0,0 +1,54 @@ +# React - Discovering the World App + +## Instructions + +1. Fork [mfee-project repository](https://github.com/gus-code/mfee-project). +2. Make sure to fork all the branches (You need to unselect the checkbox of fork only main branch). +3. You can clone the repository to your local or you can create a codespace in github. +4. Checkout to branch `` this is the starter boilerplate + - `git checkout ` +5. We will be working with some examples during the sessions in this same repository, once we finish with the session you can get the example from the branch `react/session-*` and merge it to your branch (We will provide the branch after each session) + - `git merge react/session-*` +6. Each session branch will have the challenges to accomplish and the expected results. +7. After finish the challenges you need to create a pull request to the base repository, you will have a branch with your EID (``). If you don't know how to do it you can check this [quick guide](#create-pull-request) + +## Recommendations + +- Before make your commit format your files with prettier + +### Recommended extensions + +- Name: Error Lens + Id: usernamehw.errorlens + Description: Improve highlighting of errors, warnings and other language diagnostics. + Version: 3.17.0 + Publisher: Alexander + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=usernamehw.errorlens + +- Name: Pretty TypeScript Errors + Id: YoavBls.pretty-ts-errors + Description: Make TypeScript errors prettier and more human-readable in VSCode + Version: 0.5.4 + Publisher: yoavbls + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=yoavbls.pretty-ts-errors + +- Name: ES7+ React/Redux/React-Native snippets + Id: dsznajder.es7-react-js-snippets + Description: Extensions for React, React-Native and Redux in JS/TS with ES7+ syntax. Customizable. Built-in integration with prettier. + Version: 4.4.3 + Publisher: dsznajder + VS Marketplace Link: https://marketplace.visualstudio.com/items?itemName=dsznajder.es7-react-js-snippets + + +## How to + +### Run postman collection + +1. Download postman collection from `apps/react/assets/Capstone-Project.postman_collection` +2. Import collection to postman +3. Register a new user using the "register" API, inside the "Auth" folder + ![Register User](assets/register-user.png) +4. Use the credentials to generate a token using the "login" API + ![Generate token](assets/generate-token.png) +5. Configure accestoken variable. After updating the value you need to save it with `Ctrl + S` + ![Postman Variables](/assets/postman-variables.png) diff --git a/apps/react-app/assets/Capstone-Project.postman_collection.json b/apps/react-app/assets/Capstone-Project.postman_collection.json new file mode 100644 index 00000000..a188c5e8 --- /dev/null +++ b/apps/react-app/assets/Capstone-Project.postman_collection.json @@ -0,0 +1,579 @@ +{ + "info": { + "_postman_id": "973fac89-18c9-4051-a1a1-a481d1a292f1", + "name": "Capstone Project", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "30322992" + }, + "item": [ + { + "name": "Auth", + "item": [ + { + "name": "Register", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/register", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "register" + ] + } + }, + "response": [] + }, + { + "name": "Login", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"username\": \"david@outlook.com\",\n \"password\": \"4h%K.1\"\n}\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/auth/login", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "login" + ] + } + }, + "response": [] + }, + { + "name": "Refresh", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/refresh", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "refresh" + ] + } + }, + "response": [] + }, + { + "name": "Logout", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/auth/logout", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "auth", + "logout" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Categories", + "item": [ + { + "name": "AllCategories", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "Category", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "CreateCategory", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Travel\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories" + ] + } + }, + "response": [] + }, + { + "name": "UpdateCategory", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"name\":\"Sports\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/categories/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "DeleteCategory", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/categories/663e796bd513515319551c24", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "categories", + "663e796bd513515319551c24" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Posts", + "item": [ + { + "name": "AllPosts", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "PostByCategory", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/category/663e7932d513515319551c1d", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "category", + "663e7932d513515319551c1d" + ] + } + }, + "response": [] + }, + { + "name": "Post", + "request": { + "method": "GET", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b" + ] + } + }, + "response": [] + }, + { + "name": "CreatePost", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"Other post\",\r\n \"image\": \"Image url\",\r\n \"description\": \"Post description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts" + ] + } + }, + "response": [] + }, + { + "name": "UpdatePost", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"title\": \"New Title\",\r\n \"image\": \"New image URL\",\r\n \"description\": \"New Description\",\r\n \"category\": \"663e7932d513515319551c1d\"\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7b50d513515319551c31", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b50d513515319551c31" + ] + } + }, + "response": [] + }, + { + "name": "DeletePost", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "url": { + "raw": "https://{{dev}}/api/posts/663e7b96d513515319551c36", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7b96d513515319551c36" + ] + } + }, + "response": [] + } + ] + }, + { + "name": "Comments", + "item": [ + { + "name": "CreateComment", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "apitoken", + "value": "{{token}}" + } + ], + "body": { + "mode": "raw", + "raw": "{\r\n \"author\": \"David\",\r\n \"content\": \"Hi\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "https://{{dev}}/api/posts/663e7af3d513515319551c2b/comments", + "protocol": "https", + "host": [ + "{{dev}}" + ], + "path": [ + "api", + "posts", + "663e7af3d513515319551c2b", + "comments" + ] + } + }, + "response": [] + } + ] + } + ], + "auth": { + "type": "bearer", + "bearer": [ + { + "key": "token", + "value": "{{accessToken}}", + "type": "string" + } + ] + }, + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "packages": {}, + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "key": "accessToken", + "value": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IjRoJUsuMSIsImlhdCI6MTcxNTczODE5NiwiZXhwIjoxNzE1NzQxNzk2fQ.5Eb8YtIVfJI1lvFMIsTQsUUDxc9-TmOkpCrmrhmuN-I", + "type": "string" + }, + { + "key": "dev", + "value": "test.neuraac.com", + "type": "string" + } + ] +} \ No newline at end of file diff --git a/apps/react-app/assets/generate-token.png b/apps/react-app/assets/generate-token.png new file mode 100644 index 0000000000000000000000000000000000000000..75f31db63d77d6f632b47491f94798c36e825eb8 GIT binary patch literal 114798 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

{error}

; +}; + diff --git a/apps/react-app/src/common/utils/index.ts b/apps/react-app/src/common/utils/index.ts new file mode 100644 index 00000000..ed85ce09 --- /dev/null +++ b/apps/react-app/src/common/utils/index.ts @@ -0,0 +1,4 @@ +export { validator } from "./inputsValidator"; +export { errorMessage } from "./getErrorMessage"; +export { shorten } from "./shorten"; +export { stableSort } from "./sortTable"; diff --git a/apps/react-app/src/utils/index.tsx b/apps/react-app/src/common/utils/inputsValidator.tsx similarity index 83% rename from apps/react-app/src/utils/index.tsx rename to apps/react-app/src/common/utils/inputsValidator.tsx index 3ace28f5..507751d3 100644 --- a/apps/react-app/src/utils/index.tsx +++ b/apps/react-app/src/common/utils/inputsValidator.tsx @@ -1,8 +1,3 @@ -export function shorten(str: string, maxLen: number) { - if (str.length <= maxLen) return str; - return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; -} - function validateUrl(url: string) { const re = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/; @@ -35,3 +30,5 @@ export const validator = ({ name, value }: { name: string; value: string }) => { return error; }; + + diff --git a/apps/react-app/src/common/utils/shorten.tsx b/apps/react-app/src/common/utils/shorten.tsx new file mode 100644 index 00000000..6c4177d8 --- /dev/null +++ b/apps/react-app/src/common/utils/shorten.tsx @@ -0,0 +1,4 @@ +export function shorten(str: string, maxLen: number) { + if (str.length <= maxLen) return str; + return `${str.substr(0, str.lastIndexOf(" ", maxLen))}...`; + } \ No newline at end of file diff --git a/apps/react-app/src/common/utils/sortTable.tsx b/apps/react-app/src/common/utils/sortTable.tsx new file mode 100644 index 00000000..a2f15c5c --- /dev/null +++ b/apps/react-app/src/common/utils/sortTable.tsx @@ -0,0 +1,52 @@ +import { Order, TableData } from "../../types"; + +function descendingComparator( + a: TableData, + b: TableData, + orderBy: string +) { + if (b[orderBy] < a[orderBy]) return -1; + if (b[orderBy] > a[orderBy]) return 1; + return 0; +} + +function comparator({ + a, + b, + order, + orderBy, +}: { + a: TableData; + b: TableData; + order: Order; + orderBy: string; +}) { + return order === "desc" + ? descendingComparator(a, b, orderBy) + : -descendingComparator(a, b, orderBy); +} + +export function stableSort({ + rows, + order: selectedOrder, + orderBy, +}: { + rows: TableData[]; + order: Order; + orderBy: string; +}) { + const stabilizedThis = rows.map( + (el, index) => [el, index] as [TableData, number] + ); + stabilizedThis.sort((a, b) => { + const order = comparator({ + a: a[0], + b: b[0], + order: selectedOrder, + orderBy, + }); + if (order !== 0) return order; + return a[1] - b[1]; + }); + return stabilizedThis.map((el) => el[0]); +} diff --git a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx b/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx deleted file mode 100644 index b130c473..00000000 --- a/apps/react-app/src/components/AddCommentForm/AddCommentForm.tsx +++ /dev/null @@ -1,7 +0,0 @@ -function AddCommentForm() { - // Activity 8 - Place the code to create new comments here - // Activity 9 - Call the API to create a new comment when submitting the form - return
AddCommentForm
; -} - -export default AddCommentForm; diff --git a/apps/react-app/src/components/AddCommentForm/index.ts b/apps/react-app/src/components/AddCommentForm/index.ts deleted file mode 100644 index 13ea9aa0..00000000 --- a/apps/react-app/src/components/AddCommentForm/index.ts +++ /dev/null @@ -1 +0,0 @@ -export {default} from "./AddCommentForm" \ No newline at end of file diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index bada1252..615b527e 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,18 +1,20 @@ import Button from "@mui/material/Button"; import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; + import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +// ACT 3 - Receive postImage and postTitle props function Banner() { return ( - + + {/* ACT 3 - Send postImage as image prop to Container component */} - - {/* Activity 1 - Render post title */} + {/* ACT 1 - Render postTitle */} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx index ceee193f..c00d86d1 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: center; padding-bottom: 16px; `; diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index cd6ac296..45295e55 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,44 +1,32 @@ import { ButtonGroup } from "@mui/material"; import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Category } from "../../types"; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; - -const categorySelected = "All"; +interface CategoryButtonGroupProps { + categories: Category[]; + selectedCategory: Category | null; + handleSelectCategory: (category: Category) => void; +} -function CategoryButtonGroup() { +function CategoryButtonGroup({ + categories, + selectedCategory, + handleSelectCategory, +}: CategoryButtonGroupProps) { return ( - {/* Activity 5 - Iterate categoryOptions */} - { - // Activity 5 - After you have iterated the "categoryOptions" array, send the "name" property as a parameter to the "handleSelectCategory" function - }} - > - {/* Activity 5 - Render category name */} - + {categories.map((category) => ( + handleSelectCategory(category)} + > + {category.name} + + ))} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index 083ae108..a130d6da 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,13 +3,15 @@ import AccountCircleIcon from "@mui/icons-material/AccountCircle"; import { Container, Content, Author } from "./CommentCard.styles"; +// ACT 3 - Receive comment prop + function CommentCard() { return ( - {/* Activity 1 - Render comment author */} - {/* Activity 1 - Render comment content */} + {/* ACT 1 - Render comment author */} + {/* ACT 1 - Render comment content */} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index 973428b1..c321f8f2 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,6 +1,6 @@ import { Title, Container, FormContainer } from "./Comments.styles"; -import CommentCard from "../CommentCard"; -import AddCommentForm from "../AddCommentForm"; + +// ACT 3 - Receive comments prop function Comments() { return ( @@ -8,12 +8,11 @@ function Comments() { <h4>Comments</h4> - {/* Activity 4 - Render CommentCard only if comments array is greater than zero */} - {/* Activity 5 - Iterate comments */} - {/* Activity 3 - Send comment prop */} - + {/* ACT 1 = Render CommentCard component */} + {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} - + {/* ACT 8 - Create a form to add comments */} ); diff --git a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx index c09e2ab1..222cef80 100644 --- a/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx +++ b/apps/react-app/src/components/CreatePostButton/CreatePostButton.styles.tsx @@ -3,7 +3,6 @@ import { styled } from "@mui/system"; export const Container = styled(Grid)` display: flex; - flex-grow: 1; justify-content: end; - padding-right: 16px; + padding: 8px 16px; `; diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 9cc590d3..8e12cdcb 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -6,20 +6,45 @@ import { DialogActions, DialogContent, DialogTitle, - InputLabel, MenuItem, - FormControl, - Select, SelectChangeEvent, - FormHelperText, } from "@mui/material"; -import { AxiosError, AxiosResponse } from "axios"; -import axios from "../../api/axios"; -import { Post } from "../../types"; -import { validator } from "../../utils"; +import { Category, NewPost, Post } from "../../types"; +import { validator } from "../../common/utils"; import { PostContext } from "../../context"; -import { FormInputs } from "../../types"; +import { FormInputs, Inputs } from "../../types"; + +const inputs: Inputs = [ + { + id: "title-id", + name: "title", + label: "Title", + type: "text", + }, + { + id: "description-id", + name: "description", + label: "Description", + type: "text", + }, + { + id: "category-label", + name: "category", + label: "Category", + type: "menu", + options: [ + { id: "663fef70d513515319551d1f", name: "Travel" }, + { id: "663fef70d513515319546d1f", name: "Food" }, + ], + }, + { + id: "url-id", + name: "image", + label: "URL of the image", + type: "url", + }, +]; const emptyInputs: FormInputs = { title: { value: "", error: "" }, @@ -30,8 +55,9 @@ const emptyInputs: FormInputs = { interface FormProps { open: boolean; - post?: Post | null; - categorySelected: string; + post: Post | null; + categories: Category[] | null; + selectedCategory: Category | null; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -39,19 +65,20 @@ interface FormProps { const Form = ({ open, post, - categorySelected, + categories, + selectedCategory, setOpen, setSelectedPost, }: FormProps) => { const [formData, setFormData] = React.useState(emptyInputs); - const { getPosts } = React.useContext(PostContext); + const { addPost, updatePostData } = React.useContext(PostContext); React.useEffect(() => { if (!post) return; const existingPost = { title: { value: post.title, error: "" }, description: { value: post.description, error: "" }, - category: { value: post.category, error: "" }, + category: { value: post.category?._id ?? "", error: "" }, image: { value: post.image, error: "" }, }; setFormData(existingPost); @@ -63,39 +90,29 @@ const Form = ({ setSelectedPost(null); }; - const hanldeSubmit = (event: React.FormEvent) => { + const hanldeSubmit = async (event: React.FormEvent) => { event.preventDefault(); const inputs = Object.values(formData); const containError = inputs.map((input) => input.error).some((v) => !!v); if (containError) return; - const newPost: Post = { - id: post?.id ?? Math.random().toString(), + const newPost: NewPost = { title: formData.title.value, image: formData.image.value, description: formData.description.value, category: formData.category.value, - comments: post?.comments ?? [], }; - axios({ - method: post ? "patch" : "post", - url: post ? `/${post.id}` : undefined, - signal: AbortSignal.timeout(5000), - data: newPost, - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts(categorySelected); - handleClose(); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + handleClose(); + + post + ? await updatePostData({ + postID: post.id, + updatedPost: newPost, + selectedCategoryID: selectedCategory?.id, + }) + : await addPost(newPost); }; const handleChange = ( @@ -136,75 +153,50 @@ const Form = ({ Create Post - - - - Category - - {formData.category.error} - - + {inputs.map((input, idx) => ( + + {(input.type === "text" || input.type === "url") && ( + + )} + {input.type === "menu" && ( + + {categories?.map((option, idx) => ( + + {option.name} + + ))} + + )} + + ))} diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx deleted file mode 100644 index c053e93f..00000000 --- a/apps/react-app/src/components/Header/Header.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import { Grid, Typography } from "@mui/material"; -import { Container } from "./Header.styles" - -function Header() { - return ( - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - - ); -} - -export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts deleted file mode 100644 index 579f1ac2..00000000 --- a/apps/react-app/src/components/Header/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Header'; diff --git a/apps/react-app/src/components/Loading/Loading.tsx b/apps/react-app/src/components/Loading/Loading.tsx index 5ea16a52..196f107a 100644 --- a/apps/react-app/src/components/Loading/Loading.tsx +++ b/apps/react-app/src/components/Loading/Loading.tsx @@ -1,6 +1,6 @@ -import React from 'react'; -import CircularProgress from '@mui/material/CircularProgress'; -import Grid from '@mui/material/Grid'; +import React from "react"; +import CircularProgress from "@mui/material/CircularProgress"; +import Grid from "@mui/material/Grid"; /** * This shows a horizontally and vertically centred loading spinner to use when a component is loading content to display @@ -9,11 +9,15 @@ export default function Loading(): React.JSX.Element { return ( - + ); } diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx new file mode 100644 index 00000000..953e23c0 --- /dev/null +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -0,0 +1,77 @@ +import React from "react"; +import Grid from "@mui/material/Grid"; +import { NavLink } from "react-router-dom"; +import { Box, Button, Typography } from "@mui/material"; +import TravelExploreIcon from "@mui/icons-material/TravelExplore"; + +export default function NavBar(): React.JSX.Element { + return ( + + + + + + Discovering the World + + + Making your Life Easier + + + + + {/* ACT 10 - Use NavLink to navigate to categories page and change the backgroundcolor when is active */} + + {/* ACT 10 - Use NavLink to navigate to login page and change the backgroundcolor when is active*/} + + + + ); +} diff --git a/apps/react-app/src/components/NavBar/index.ts b/apps/react-app/src/components/NavBar/index.ts new file mode 100644 index 00000000..7d65d872 --- /dev/null +++ b/apps/react-app/src/components/NavBar/index.ts @@ -0,0 +1 @@ +export {default} from "./NavBar" \ No newline at end of file diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx new file mode 100644 index 00000000..13b701e6 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.styles.tsx @@ -0,0 +1,11 @@ +import { Grid } from "@mui/material"; +import { styled } from "@mui/system"; + +export const PageContainer = styled(Grid)` + gap: 16px; + display: flex; + padding: 32px; + flex-wrap: nowrap; + flex-direction: column; + flex-grow: 1; +`; diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx new file mode 100644 index 00000000..b168bf2e --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -0,0 +1,26 @@ +import { Grid } from "@mui/material"; + +import { PageContainer } from "./CategoriesPage.styles"; +// import { Category } from "../../../types"; + +function CategoriesPage() { + // ACT 6 - Create a state called "rows" + // ACT 6 - Call setRows when the component is mounted for first time, use "categories" variable as new value. + // ACT 6 - Create two empty functions called "handleEditItem" and "handleDeleteItem" + // ACT 9 - Use the getList, create, edit, delete and update categories endpoints + + return ( + + Categories Page + + {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + + + {/* ACT 6 - Create a component called "Table" to display category names */} + + {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + ); +} + +export default CategoriesPage; diff --git a/apps/react-app/src/components/Page/CategoriesPage/index.ts b/apps/react-app/src/components/Page/CategoriesPage/index.ts new file mode 100644 index 00000000..b90633e1 --- /dev/null +++ b/apps/react-app/src/components/Page/CategoriesPage/index.ts @@ -0,0 +1 @@ +export { default } from './CategoriesPage'; diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx index fd03a30e..eba5b28a 100644 --- a/apps/react-app/src/components/Page/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -1,45 +1,96 @@ -import { useContext, useState } from "react"; -import CategoryButtonGroup from "../../CategoryButtonGroup"; -import CreatePostButton from "../../CreatePostButton"; +import { useState, useContext, useEffect, useCallback } from "react"; + +import Form from "../../Form"; import PostList from "../../PostList"; -import { Post } from "../../../types"; -import { PostContext } from "../../../context"; +import CategoryButtonGroup from "../../CategoryButtonGroup"; +import { + PostContext, + // SnackbarContext +} from "../../../context"; +import { CategoriesResponse, Category, Post } from "../../../types"; import Loading from "../../Loading"; -import Form from "../../Form"; +import CreatePostButton from "../../CreatePostButton"; +import { getCategories } from "../../../api"; function HomePage() { - const { - posts, - // getPosts - } = useContext(PostContext); - const [selectedPost, setSelectedPost] = useState(null); + // const createAlert = useContext(SnackbarContext); + const { posts, loadingPosts, getPostList } = useContext(PostContext); const [open, setOpen] = useState(false); - const categorySelected = "All"; + const [loadingCategories, setLoadingCategories] = useState(false); + const [selectedPost, setSelectedPost] = useState(null); + const [categories, setCategories] = useState(null); + const [selectedCategory, setSelectedCategory] = useState( + null + ); const handleOpenForm = (defaultValues?: Post) => { setOpen(true); if (defaultValues) setSelectedPost(defaultValues); }; - // const handleSelectCategory = (category: string) => { - // getPosts(category) - // Activity 6 - Use the useState hook to handle the state of categorySelected - // }; + const handleSelectCategory = useCallback( + async (category: Category) => { + const isCategoryAlreadySelected = category.id === selectedCategory?.id; + await getPostList(isCategoryAlreadySelected ? undefined : category.id); + setSelectedCategory(isCategoryAlreadySelected ? null : category); + }, + [selectedCategory, getPostList] + ); + + const getCategoriesList = useCallback(async () => { + const onSuccess = (data: CategoriesResponse[]) => { + const newRows = data.map((category) => ({ + id: category._id, + name: category.name, + })); + setCategories(newRows); + }; + + const onError = () => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); + }; + + const onLoading = (isLoading: boolean) => { + setLoadingCategories(isLoading); + }; - // Activity 6 - Use the useEffect hook to call the getPosts function only when the component is rendered for the first time + await getCategories({ onSuccess, onError, onLoading }); + }, []); - if (!posts) return ; + useEffect(() => { + getPostList(); + getCategoriesList(); + }, [getPostList, getCategoriesList]); + + if (!categories || loadingCategories) return ; return ( <> - {/* Activity 3 - Send categorySelected and handleSelectCategory props */} - - + + + {!posts || loadingPosts ? ( + + ) : ( + + )} + diff --git a/apps/react-app/src/components/Header/Header.styles.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx similarity index 57% rename from apps/react-app/src/components/Header/Header.styles.tsx rename to apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx index a96059ce..ac273bf3 100644 --- a/apps/react-app/src/components/Header/Header.styles.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.styles.tsx @@ -1,9 +1,12 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; -export const Container = styled(Grid)` +export const PageContainer = styled(Grid)` + display: flex; + padding: 32px; + flex-wrap: nowrap; + align-items: center; flex-direction: column; justify-content: center; - align-items: center; - padding: 2; + flex-grow: 1; `; diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..9241a302 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,24 @@ +import { PageContainer } from "./LoginPage.styles"; +import { Grid } from "@mui/material"; + +const LoginPage = () => { + // ACT 9 - Use the login and register endpoints + + // ACT 11 - After the login is successful, use the following to direct the user to the home page: + // const { protocol, host } = window.location; + // const signInUrl = `${protocol}//${host}/`; + // if (window.location.href !== signInUrl) { + // window.location.assign(signInUrl); + // } + + return ( + + Login Page + + {/* ACT 8 - Create a form to Login and SignUp */} + + + ); +}; + +export default LoginPage; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts new file mode 100644 index 00000000..b00ddde9 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -0,0 +1 @@ +export {default} from "./LoginPage" \ No newline at end of file diff --git a/apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx b/apps/react-app/src/components/Page/NotFoundPage/NotFoundPage.tsx similarity index 100% rename from apps/react-app/src/components/NotFoundPage/NotFoundPage.tsx rename to apps/react-app/src/components/Page/NotFoundPage/NotFoundPage.tsx diff --git a/apps/react-app/src/components/NotFoundPage/index.ts b/apps/react-app/src/components/Page/NotFoundPage/index.ts similarity index 100% rename from apps/react-app/src/components/NotFoundPage/index.ts rename to apps/react-app/src/components/Page/NotFoundPage/index.ts diff --git a/apps/react-app/src/components/Page/Page.tsx b/apps/react-app/src/components/Page/Page.tsx index 787ebf10..2a7ef145 100644 --- a/apps/react-app/src/components/Page/Page.tsx +++ b/apps/react-app/src/components/Page/Page.tsx @@ -1,6 +1,6 @@ import React from "react"; import Grid from "@mui/material/Grid"; -import Header from "../Header"; +import NavBar from "../NavBar"; interface PageProps { /** @@ -14,15 +14,18 @@ interface PageProps { */ export default function Page({ page }: PageProps): React.JSX.Element { return ( - -
- + + + {page} diff --git a/apps/react-app/src/components/PostPage/PostPage.styles.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx similarity index 92% rename from apps/react-app/src/components/PostPage/PostPage.styles.tsx rename to apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx index 5e0a4d5f..a3713f83 100644 --- a/apps/react-app/src/components/PostPage/PostPage.styles.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.styles.tsx @@ -2,7 +2,8 @@ import { Grid } from "@mui/material"; import { styled } from "@mui/system"; export const Container = styled(Grid)` - height: 100%; + flex-grow: 1; + flex-wrap: nowrap; flex-direction: column; background-color: #f0f0ff; `; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx new file mode 100644 index 00000000..f97a6dc4 --- /dev/null +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -0,0 +1,31 @@ +import { + Container, + BannerContainer, + CommentsContainer, + DescriptionContainer, +} from "./PostPage.styles"; + +// const postID = "664128a212f505651c18d676" + +function PostPage() { + // ACT 9 - Use postID variable to fetch the post data + // ACT 10 - Get postID from route params + return ( + + Post page + + {/* ACT 1 - Render Banner component */} + {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + + +

{/* ACT 1 - Render post description */}

+
+ + {/* ACT 1 - Render Comments component */} + {/* ACT 3 - Send comments as prop to Comments component */} + +
+ ); +} + +export default PostPage; diff --git a/apps/react-app/src/components/PostPage/index.ts b/apps/react-app/src/components/Page/PostPage/index.ts similarity index 100% rename from apps/react-app/src/components/PostPage/index.ts rename to apps/react-app/src/components/Page/PostPage/index.ts diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts index 456c3975..99868e3c 100644 --- a/apps/react-app/src/components/Page/index.ts +++ b/apps/react-app/src/components/Page/index.ts @@ -1,2 +1,7 @@ export { default as HomePage } from "./HomePage"; +export { default as PostPage } from "./PostPage"; +export { default as CategoriesPage } from "./CategoriesPage"; +export { default as LoginPage } from "./LoginPage"; +// ACT 10 - export NotFoundPage componenet + export { default } from "./Page"; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index cc2abbed..4ef101d6 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -3,8 +3,8 @@ import EditIcon from "@mui/icons-material/Edit"; import DeleteIcon from "@mui/icons-material/Delete"; import { Grid, IconButton, Typography } from "@mui/material"; -import { shorten } from "../../utils/index"; -import { Post } from "../../types"; +import { shorten } from "../../common/utils"; +import { Category, Post } from "../../types"; import { PostContext } from "../../context"; import { CardActions, @@ -15,34 +15,33 @@ import { interface PostListProps { posts: Post[]; + selectedCategory: Category | null; handleOpenForm: (defaultValues?: Post) => void; } -function PostList({ posts, handleOpenForm }: PostListProps) { - const { deletePost } = useContext(PostContext); +function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { + const { removePost } = useContext(PostContext); + return ( - {posts?.map((post) => ( + {posts.map((post) => ( -

{/* Activity 1 - Render post title */}

+

{post.title}

- {/* Activity 1 - Render comments length */} - {/* Activity 4 - Render the word "Comments" if it contains more than one comment and "Comment" if there is only one */} - {" Comment"} + {post.comments.length} + {post.comments.length > 1 ? " Comments" : " Comment"}

{shorten(post.description, 70)}

- - {/* Activity 1 - Render post category */} - + {post.category?.name}
{ e.stopPropagation(); - deletePost(post.id); + removePost({ + postID: post.id, + selectedCategoryID: selectedCategory?.id, + }); }} > diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx deleted file mode 100644 index 405ef03d..00000000 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ /dev/null @@ -1,60 +0,0 @@ -import Banner from "../Banner"; -import Comments from "../Comments"; -import { Post } from "../../types"; -import Loading from "../Loading"; -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; - -const postId = "1.23" - -function PostPage() { - // Activity 9 - Call the API "/:postId" to get the post. To save the result use useState - - const post: Post = { - id: "1.23", - title: "A good place to camp", - image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", - comments: [ - { - id: "2.1", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - { - id: "2.2", - author: "Anonymus", - content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }; - - if (!post || !postId) return ; - - return ( - - - {/* Activity 3 - Send postImage and postTitle props*/} - - - -

{post.description}

-
- - {/* Activity 3 - Send postComments prop*/} - - -
- ); -} - -export default PostPage; diff --git a/apps/react-app/src/components/Router/Router.tsx b/apps/react-app/src/components/Router/Router.tsx deleted file mode 100644 index 07d55ecf..00000000 --- a/apps/react-app/src/components/Router/Router.tsx +++ /dev/null @@ -1,12 +0,0 @@ -import { createBrowserRouter } from "react-router-dom"; -import Page, { HomePage } from "../Page"; - -const Router = createBrowserRouter([ - { - path: "/", - element: } />, - }, - // Activity 10 - Render the PostPage component with the dynamic postId and the NotFoundPage component as the default page in case of route errors -]); - -export default Router; diff --git a/apps/react-app/src/context/AuthProvider.tsx b/apps/react-app/src/context/AuthProvider.tsx new file mode 100644 index 00000000..32df0424 --- /dev/null +++ b/apps/react-app/src/context/AuthProvider.tsx @@ -0,0 +1,54 @@ +import axios, { AxiosResponse } from "axios"; +import React, { createContext, useCallback, useState } from "react"; + +interface AuthContextProps { + authLoading: boolean; + isAuthenticated: boolean | null; + validateToken: () => void; +} + +export const AuthContext = createContext({ + authLoading: false, + isAuthenticated: null, + validateToken: () => {}, +}); + +interface AuthProviderProps { + children: React.JSX.Element; +} + +export function AuthProvider({ + children, +}: AuthProviderProps): React.JSX.Element { + const [authLoading, setAuthLoading] = useState(false); + const [isAuthenticated, setIsAuthenticated] = useState(null); + + const validateToken = useCallback(async () => { + const token = + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1ODA1MTQzLCJleHAiOjE3MTU4MDg3NDN9.hsVhN9KdKhGeKZi7-ti-bAkGPS1vahx-qnCrpWMg0Bg"; + // ACT 11 - Get the token from localStorage + const onLoading = (isLoading: boolean) => setAuthLoading(isLoading); + + onLoading(true); + await axios({ + url: "https://test.neuraac.com/api/posts", + method: "get", + headers: { Authorization: `Bearer ${token}` }, + }) + .then((response: AxiosResponse) => { + if (response.status === 200) { + setIsAuthenticated(true); + } + }) + .catch(() => setIsAuthenticated(false)) + .finally(() => onLoading(false)); + }, []); + + return ( + + {children} + + ); +} diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 03e1e61f..e5121b50 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,13 +1,41 @@ -import React, { createContext, useState, useCallback } from "react"; -import { AxiosError, AxiosResponse } from "axios"; +import React, { + createContext, + useState, + // useContext, + useCallback, +} from "react"; -import axios from "../api/axios"; -import { Post } from "../types"; +import { NewPost, Post, PostsResponse } from "../types"; +// import { SnackbarContext } from "../context"; +import { + createPost, + deletePost, + getPosts, + getPostsByCategory, + updatePost, +} from "../api"; interface PostContextProps { posts: Post[] | null; - getPosts: (category: string) => void; - deletePost: (postId: string) => void; + loadingPosts: boolean; + addPost: (newPost: NewPost) => void; + removePost: ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => void; + getPostList: (selectedCategoryID?: string) => void; + updatePostData: ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => void; } interface PostProviderProps { @@ -15,61 +43,122 @@ interface PostProviderProps { } export const PostContext = createContext({ - posts: [] || null, - getPosts: () => {}, - deletePost: () => {}, + posts: null, + loadingPosts: false, + addPost: () => {}, + removePost: () => {}, + getPostList: () => {}, + updatePostData: () => {}, }); export function PostProvider({ children, }: PostProviderProps): React.JSX.Element { + // const createAlert = useContext(SnackbarContext); const [posts, setPosts] = useState(null); + const [loadingPosts, setLoadingPosts] = useState(false); - const getPosts = useCallback((category: string) => { - axios({ - method: "get", - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - const selectedCategory = response.data.filter( - (post: Post) => post.category === category - ); - const newPosts = category === "All" ? response.data : selectedCategory; - setPosts(newPosts); - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with error message - console.error(`${error}`); - }); + const onLoading = (isLoading: boolean) => { + setLoadingPosts(isLoading); + }; + + const onError = useCallback(() => { + // createAlert({ + // message: "Something went wrong.", + // severity: "error", + // }); }, []); - const deletePost = useCallback( - (postId: string) => { - axios({ - method: "delete", - url: `/${postId}`, - signal: AbortSignal.timeout(5000), - }) - .then((response: AxiosResponse) => { - if (response.status === 200 || response.status === 201) { - getPosts("All"); - // Activity 9 - Use createAlert function to show a notification with success message - } - }) - .catch((error: AxiosError) => { - // Activity 9 - Use createAlert function to show a notification with success message - console.error(`${error}`); - }); + const getPostList = useCallback( + async (selectedCategoryID?: string) => { + const onSuccess = async (data: PostsResponse[]) => { + const newList = data.map((post) => ({ + id: post._id, + title: post.title, + image: post.image, + description: post.description, + category: post.category, + comments: post.comments, + })); + setPosts(newList); + }; + + const params = { onSuccess, onError, onLoading }; + selectedCategoryID + ? await getPostsByCategory({ selectedCategoryID, ...params }) + : await getPosts(params); + }, + [onError] + ); + + const addPost = useCallback( + async (newPost: NewPost) => { + const onSuccess = async () => { + await getPostList(); + // createAlert({ + // message: "Post successfully created.", + // severity: "success", + // }); + }; + + await createPost({ newPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const updatePostData = useCallback( + async ({ + postID, + updatedPost, + selectedCategoryID, + }: { + postID: string; + updatedPost: NewPost; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully updated.", + // severity: "success", + // }); + }; + + await updatePost({ postID, updatedPost, onSuccess, onError, onLoading }); + }, + [onError, getPostList] + ); + + const removePost = useCallback( + async ({ + postID, + selectedCategoryID, + }: { + postID: string; + selectedCategoryID?: string; + }) => { + const onSuccess = async () => { + await getPostList(selectedCategoryID); + // createAlert({ + // message: "Post successfully deleted.", + // severity: "success", + // }); + }; + setLoadingPosts(true); + await deletePost({ postID, onSuccess, onError }); }, - [getPosts] + [onError, getPostList] ); return ( {children} diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 85818a1b..01029cad 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -1 +1 @@ -// Activity 7 - SnackbarProvider code here \ No newline at end of file + // ACT 7 - Create SnackbarProvider \ No newline at end of file diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index d760a4c6..28a329a1 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,3 @@ export { PostProvider, PostContext } from "./PostProvider"; -// Activity 7 - Export SnackbarProvider and SnackbarContext +export { AuthProvider, AuthContext } from "./AuthProvider"; +// ACT 7 - Export SnackbarProvider component diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index c4d5fea4..9f8ec72a 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -10,13 +10,11 @@ export type FormInputs = { image: Input; }; -export type Post = { - id: string; +export type NewPost = { title: string; image: string; description: string; category: string; - comments: Comment[]; }; export type Comment = { @@ -25,3 +23,118 @@ export type Comment = { content: string; }; +export interface Alert { + severity?: "error" | "warning" | "info" | "success"; + message: string; +} + +export type Order = "asc" | "desc"; + +export interface TableData { + [key: string]: string; +} + +export interface HeadCell { + id: string; + label: string; +} + +export type FormData = { [key: string]: string }; + +export type Inputs = { + id: string; + name: keyof FormInputs; + label: string; + type: string; + options?: { id?: string; name: string }[]; +}[]; + +export interface Category { + id: string; + name: string; +} + +export interface NewCategory { + name: string; +} + +export interface CategoriesResponse { + _id: string; + name: string; + createdAt: string; + updatedAt: string; + __v: number; +} + +export type Post = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; +}; + +export type SelectedPost = { + id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; +}; + +export interface PostsResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: string[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface CommentResponse { + _id: string; + author: string; + content: string; + createdAt: string; + updatedAt: string; + __v: number; +} +export interface PostResponse { + _id: string; + title: string; + image: string; + description: string; + category: CategoriesResponse | null; + comments: CommentResponse[]; + createdAt: string; + updatedAt: string; + __v: number; +} + +export interface NewComment { + author: string; + content: string; +} + +export interface User { + username: string; + password: string; +} + +export interface NewUser extends User { + firstame: string; + lastname: string; +} + +export interface AuthResponse { + message: string; +} + +export interface AuthLoginResponse { + accessToken: string; +} From 565d085fb4f7af6ae89955c7797f18a7e0435cd5 Mon Sep 17 00:00:00 2001 From: Eduardo de Leon Date: Fri, 2 Aug 2024 14:33:28 -0600 Subject: [PATCH 11/21] Activities 1 and 2 --- apps/react-app/src/App.tsx | 25 +--- .../src/components/Banner/Banner.tsx | 14 +- .../CategoryButtonGroup.tsx | 64 ++++---- .../components/CommentCard/CommentCard.tsx | 22 +-- .../src/components/Comments/Comments.tsx | 5 +- .../src/components/Header/Header.tsx | 22 +++ apps/react-app/src/components/Header/index.ts | 2 +- .../src/components/HomePage/HomePage.tsx | 12 +- .../src/components/PostList/PostList.tsx | 139 +++++++----------- .../src/components/PostPage/PostPage.tsx | 64 ++++---- 10 files changed, 182 insertions(+), 187 deletions(-) diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 3fe215a7..608ec438 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,17 @@ -import { Grid, Typography } from '@mui/material'; +import { Grid } from '@mui/material'; -import { Container } from './components/Header/Header.styles'; +import Header from './components/Header'; +import HomePage from './components/HomePage'; +import PostPage from './components/PostPage'; function App() { return ( - {/* Activity 2 - Move all Container content to Header component */} - - - - [ - Making your Life Easier - ] - - - - - Discovering the World - - - +
- {/* Activity 1 - Render HomePage and PostPage */} + + ); diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 4033c6d9..003a8cd4 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,19 +1,19 @@ -import Button from "@mui/material/Button"; -import ArrowBackIosIcon from "@mui/icons-material/ArrowBackIos"; -import { BannerContent, BannerTitle, Container } from "./Banner.styles"; +import Button from '@mui/material/Button'; +import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'; +import { BannerContent, BannerTitle, Container } from './Banner.styles'; -// const postTitle = "A good place to camp"; +const postTitle = 'A good place to camp'; const postImage = - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0"; + 'https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0'; function Banner() { return ( - - {/* Activity 1 - Render post title */} + {postTitle} ); diff --git a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx index 2f94d5ec..1f26c3ef 100644 --- a/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx +++ b/apps/react-app/src/components/CategoryButtonGroup/CategoryButtonGroup.tsx @@ -1,42 +1,42 @@ -import { ButtonGroup } from "@mui/material"; +import { ButtonGroup } from '@mui/material'; -import { Container, StyledButton } from "./CategoryButtonGroup.styles"; +import { Container, StyledButton } from './CategoryButtonGroup.styles'; +import { ReactNode } from 'react'; -// const categoryOptions = [ -// { -// key: "all", -// name: "All", -// }, -// { -// key: "healt", -// name: "Health", -// }, -// { -// key: "travel", -// name: "Travel", -// }, -// { -// key: "sports", -// name: "Sports", -// }, -// ]; +const categoryOptions = [ + { + key: 'all', + name: 'All' + }, + { + key: 'healt', + name: 'Health' + }, + { + key: 'travel', + name: 'Travel' + }, + { + key: 'sports', + name: 'Sports' + } +]; + +const buttons: ReactNode[] = []; + +categoryOptions.forEach((category) => { + buttons.push( + + {category.name} + + ); +}); function CategoryButtonGroup() { return ( - - {/* Activity 1 - Render category name */} - - - {/* Activity 1 - Render category name */} - - - {/* Activity 1 - Render category name */} - - - {/* Activity 1 - Render category name */} - + {buttons} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index 2f6c2187..f36573e1 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -1,22 +1,22 @@ -import { Typography } from "@mui/material"; -import AccountCircleIcon from "@mui/icons-material/AccountCircle"; +import { Typography } from '@mui/material'; +import AccountCircleIcon from '@mui/icons-material/AccountCircle'; -import { Container, Content, Author } from "./CommentCard.styles"; +import { Container, Content, Author } from './CommentCard.styles'; -// const comment = { -// id: "2.1", -// author: "Anonymus", -// content: -// "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", -// }; +const comment = { + id: '2.1', + author: 'Anonymus', + content: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' +}; function CommentCard() { return ( - {/* Activity 1 - Render author */} - {/* Activity 1 - Render comment content */} + {comment.author} + {comment.content} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index e7e711db..8f0abd25 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,4 +1,5 @@ -import { Title, Container } from "./Comments.styles"; +import { Title, Container } from './Comments.styles'; +import CommentCard from '../CommentCard/CommentCard'; function Comments() { return ( @@ -6,7 +7,7 @@ function Comments() { <h4>Comments</h4> - {/* Activity 1 - Render CommentCard */} + ); } diff --git a/apps/react-app/src/components/Header/Header.tsx b/apps/react-app/src/components/Header/Header.tsx index 8b137891..e9fa6cd8 100644 --- a/apps/react-app/src/components/Header/Header.tsx +++ b/apps/react-app/src/components/Header/Header.tsx @@ -1 +1,23 @@ +import { Grid, Typography } from '@mui/material'; +import { Container } from './Header.styles'; +function Header() { + return ( + + + + [ + Making your Life Easier + ] + + + + + Discovering the World + + + + ); +} + +export default Header; diff --git a/apps/react-app/src/components/Header/index.ts b/apps/react-app/src/components/Header/index.ts index 6df4c0d6..579f1ac2 100644 --- a/apps/react-app/src/components/Header/index.ts +++ b/apps/react-app/src/components/Header/index.ts @@ -1 +1 @@ -// export { default } from './Header'; +export { default } from './Header'; diff --git a/apps/react-app/src/components/HomePage/HomePage.tsx b/apps/react-app/src/components/HomePage/HomePage.tsx index 8c747833..b5f4c49e 100644 --- a/apps/react-app/src/components/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/HomePage/HomePage.tsx @@ -1,5 +1,15 @@ +import CreatePostButton from '../CreatePostButton'; +import CategoryButtonGroup from '../CategoryButtonGroup'; +import PostList from '../PostList'; + function HomePage() { - return <>{/* Activity 1 - Render CreatePostButton, CategoryButtonGroup and PostList */}; + return ( + <> + + + + + ); } export default HomePage; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 24c61238..6708e16b 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -1,107 +1,80 @@ -import EditIcon from "@mui/icons-material/Edit"; -import DeleteIcon from "@mui/icons-material/Delete"; -import { Grid, IconButton, Typography } from "@mui/material"; +import EditIcon from '@mui/icons-material/Edit'; +import DeleteIcon from '@mui/icons-material/Delete'; +import { Grid, IconButton, Typography } from '@mui/material'; -import { shorten } from "../../utils/index"; -import { - CardActions, - CardContainer, - CardContent, - PostCard, -} from "./PostList.styles"; +import { shorten } from '../../utils/index'; +import { CardActions, CardContainer, CardContent, PostCard } from './PostList.styles'; +import { ReactNode } from 'react'; const posts = [ { - id: "1.23", - title: "A good place to camp", + id: '1.23', + title: 'A good place to camp', image: - "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", - description: - "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", - category: "Travel", + 'https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0', + description: 'Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.', + category: 'Travel', comments: [ { - id: "2.1", - author: "Anonymus", + id: '2.1', + author: 'Anonymus', content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' }, { - id: "2.2", - author: "Anonymus", + id: '2.2', + author: 'Anonymus', content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' + } + ] }, { - id: "1.24", - title: "The average path a grandparent took to get to school", - image: - "https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0", - description: - "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", - category: "Travel", + id: '1.24', + title: 'The average path a grandparent took to get to school', + image: 'https://th.bing.com/th/id/R.df8ba69a16ad146c6e8cc769fa900ab0?rik=qYqjcnEnWzdXug&pid=ImgRaw&r=0', + description: "Don't forget to bring your machete in case you encounter the devil or some stones in case witches appear. ", + category: 'Travel', comments: [ { - id: "2.1", - author: "Anonymus", + id: '2.1', + author: 'Anonymus', content: - "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", - }, - ], - }, + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' + } + ] + } ]; +const postCards: ReactNode[] = []; + +posts.forEach((post) => { + postCards.push( + + + +

{post.title}

+

{`${post.comments.length} Comment${post.comments.length > 1 ? 's' : ''}`}

+

{shorten(post.description, 70)}

+ {post.category} +
+ + + + + + + + +
+
+ ); +}); + function PostList() { return ( - - - -

{/* Activity 1 - Render post title */}

-

- {/* Activity 1 - Render comments length */} - {" Comment"} -

-

{shorten(posts[0].description, 70)}

- - {/* Activity 1 - Render post category */} - -
- - - - - - - - -
-
- - - -

{/* Activity 1 - Render post title */}

-

- {/* Activity 1 - Render comments length */} - {" Comment"} -

-

{shorten(posts[1].description, 70)}

- - {/* Activity 1 - Render post category */} - -
- - - - - - - - -
-
+ {postCards}
); } diff --git a/apps/react-app/src/components/PostPage/PostPage.tsx b/apps/react-app/src/components/PostPage/PostPage.tsx index d0cd4fb7..038da767 100644 --- a/apps/react-app/src/components/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/PostPage/PostPage.tsx @@ -1,42 +1,42 @@ -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; +import { Container, BannerContainer, CommentsContainer, DescriptionContainer } from './PostPage.styles'; +import Banner from '../Banner'; +import CommentCard from '../CommentCard'; -// const post = { -// id: "1.23", -// title: "A good place to camp", -// image: -// "https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0", -// description: -// "Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.", -// category: "Travel", -// comments: [ -// { -// id: "2.1", -// author: "Anonymus", -// content: -// "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", -// }, -// { -// id: "2.2", -// author: "Anonymus", -// content: -// "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.", -// }, -// ], -// }; +const post = { + id: '1.23', + title: 'A good place to camp', + image: + 'https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0', + description: 'Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.', + category: 'Travel', + comments: [ + { + id: '2.1', + author: 'Anonymus', + content: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' + }, + { + id: '2.2', + author: 'Anonymus', + content: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' + } + ] +}; function PostPage() { return ( - {/* Activity 1 - Render Banner */} + + + -

{/* Activity 1 - Render post description */}

+

{post.description}

- {/* Activity 1 - Render Comments */} + + +
); } From 34eb81cb8a3e687804056916bfb257c4ee27a90e Mon Sep 17 00:00:00 2001 From: Eduardo de Leon Date: Fri, 2 Aug 2024 17:54:18 -0600 Subject: [PATCH 12/21] Actividades 1, 2 y 3 --- .../src/components/Banner/Banner.tsx | 8 ++- .../components/CommentCard/CommentCard.tsx | 11 ++-- .../src/components/Comments/Comments.tsx | 15 +++-- .../components/Page/LoginPage/LoginPage.tsx | 15 +++++ .../src/components/Page/LoginPage/index.ts | 2 +- .../src/components/Page/PostPage/PostPage.tsx | 55 ++++++++++--------- apps/react-app/src/components/Page/index.ts | 2 +- 7 files changed, 69 insertions(+), 39 deletions(-) create mode 100644 apps/react-app/src/components/Page/LoginPage/LoginPage.tsx diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 15e7d600..e11d0a14 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -3,8 +3,12 @@ import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'; import { BannerContent, BannerTitle, Container } from './Banner.styles'; +interface BannerProps { + postTitle: string; +} + // ACT 3 - Receive postImage and postTitle props -function Banner() { +function Banner({ postTitle }: BannerProps) { return ( {/* ACT 3 - Send postImage as image prop to Container component */} @@ -12,7 +16,7 @@ function Banner() { - {/* ACT 1 - Render postTitle */} + {postTitle} ); diff --git a/apps/react-app/src/components/CommentCard/CommentCard.tsx b/apps/react-app/src/components/CommentCard/CommentCard.tsx index 0dfd0bcb..4531c886 100644 --- a/apps/react-app/src/components/CommentCard/CommentCard.tsx +++ b/apps/react-app/src/components/CommentCard/CommentCard.tsx @@ -3,15 +3,18 @@ import AccountCircleIcon from '@mui/icons-material/AccountCircle'; import { Container, Content, Author } from './CommentCard.styles'; -// ACT 3 - Receive comment prop +interface CommentCardProps { + author: string; + content: string; +} -function CommentCard() { +function CommentCard({ author, content }: CommentCardProps) { return ( - {/* ACT 1 - Render comment author */} - {/* ACT 1 - Render comment content */} + {author} + {content} ); diff --git a/apps/react-app/src/components/Comments/Comments.tsx b/apps/react-app/src/components/Comments/Comments.tsx index d15cb5f2..93045252 100644 --- a/apps/react-app/src/components/Comments/Comments.tsx +++ b/apps/react-app/src/components/Comments/Comments.tsx @@ -1,15 +1,22 @@ import { Title, Container, FormContainer } from './Comments.styles'; +import CommentCard from '../CommentCard/CommentCard'; -// ACT 3 - Receive comments prop +interface CommentsProps { + comments: [ + { + author: string; + content: string; + } + ]; +} -function Comments() { +function Comments({ comments }: CommentsProps) { return ( <h4>Comments</h4> - {/* ACT 1 = Render CommentCard component */} - {/* ACT 3 - Send one comment (comments[0]) as prop to CommentCard component */} + {/* ACT 5 - Iterate comments to render CommentCard component for each comment */} Form diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx new file mode 100644 index 00000000..d0c3b421 --- /dev/null +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -0,0 +1,15 @@ +import { Grid } from '@mui/material'; +import { PageContainer } from './LoginPage.styles'; + +function LoginPage() { + return ( + + Login Page + + Form + + + ); +} + +export default LoginPage; diff --git a/apps/react-app/src/components/Page/LoginPage/index.ts b/apps/react-app/src/components/Page/LoginPage/index.ts index a22c8b67..bcf79128 100644 --- a/apps/react-app/src/components/Page/LoginPage/index.ts +++ b/apps/react-app/src/components/Page/LoginPage/index.ts @@ -1 +1 @@ - // ACT 2 - Export LoginPage component +export { default } from './LoginPage'; diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx index fbe967a0..cad0bc28 100644 --- a/apps/react-app/src/components/Page/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -1,41 +1,42 @@ -import { - Container, - BannerContainer, - CommentsContainer, - DescriptionContainer, -} from "./PostPage.styles"; +import Banner from '../../Banner'; +import CommentCard from '../../CommentCard'; +import { Container, BannerContainer, CommentsContainer, DescriptionContainer } from './PostPage.styles'; -// const post = { -// image: "", -// title: "", -// postID: "", -// comments: [ -// { -// _id: "", -// author: "", -// content: "", -// createdAt: "", -// updatedAt: "", -// __v: "", -// }, -// ], -// description: "", -// }; // ACT 1 - Fill all this properties with random data +const post = { + id: '1.23', + title: 'A good place to camp', + image: + 'https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0', + description: 'Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.', + category: 'Travel', + comments: [ + { + id: '2.1', + author: 'Anonymus', + content: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' + }, + { + id: '2.2', + author: 'Anonymus', + content: + 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' + } + ] +}; function PostPage() { return ( Post page - {/* ACT 1 - Render Banner component */} - {/* ACT 3 - Send postImage and postTitle as props to Banner component */} + -

{/* ACT 1 - Render post description */}

+

{post.description}

- {/* ACT 1 - Render Comments component */} - {/* ACT 3 - Send comments as prop to Comments component */} +
); diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts index 4351b1ab..29a1434c 100644 --- a/apps/react-app/src/components/Page/index.ts +++ b/apps/react-app/src/components/Page/index.ts @@ -1,4 +1,4 @@ export { default as HomePage } from "./HomePage"; export { default as PostPage } from "./PostPage"; export { default as CategoriesPage } from "./CategoriesPage"; -// ACT 2 - Export LoginPage component +export { default as LoginPage } from './LoginPage'; From 938ee55985390def4dc1f584bfa4249e3db905ef Mon Sep 17 00:00:00 2001 From: Eduardo de Leon Date: Fri, 2 Aug 2024 18:02:45 -0600 Subject: [PATCH 13/21] Actividad 4 --- apps/react-app/src/App.tsx | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 608ec438..d2aaca4e 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,17 +1,16 @@ import { Grid } from '@mui/material'; -import Header from './components/Header'; -import HomePage from './components/HomePage'; -import PostPage from './components/PostPage'; +import { CategoriesPage, HomePage, LoginPage, PostPage } from './components/Page'; function App() { + const page: string = 'HomePage'; return ( -
- - - + {page === 'HomePage' && } + {page === 'PostPage' && } + {page === 'LoginPage' && } + {page === 'CategoriesPage' && } ); From f6310fc5d36ef422ff3da7d821797f206505a718 Mon Sep 17 00:00:00 2001 From: Eduardo de Leon Date: Fri, 2 Aug 2024 18:45:32 -0600 Subject: [PATCH 14/21] Correcciones Actividad 1 --- .../src/components/Banner/Banner.tsx | 7 +-- .../CategoryButtonGroup.tsx | 22 +++---- .../src/components/Comments/Comments.tsx | 9 ++- .../src/components/NavBar/NavBar.tsx | 62 +++++++++---------- .../src/components/PostList/PostList.tsx | 2 +- 5 files changed, 53 insertions(+), 49 deletions(-) diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index e11d0a14..a09a3844 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -4,14 +4,13 @@ import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'; import { BannerContent, BannerTitle, Container } from './Banner.styles'; interface BannerProps { + postImage: string; postTitle: string; } -// ACT 3 - Receive postImage and postTitle props -function Banner({ postTitle }: BannerProps) { +function Banner({ postImage, postTitle }: BannerProps) { return ( - - {/* ACT 3 - Send postImage as image prop to Container component */} + ); diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index ca36df4b..49d8103e 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -1,56 +1,47 @@ -import * as React from "react"; -import { - Button, - TextField, - Dialog, - DialogActions, - DialogContent, - DialogTitle, - MenuItem, - SelectChangeEvent, -} from "@mui/material"; +import * as React from 'react'; +import { Button, TextField, Dialog, DialogActions, DialogContent, DialogTitle, MenuItem, SelectChangeEvent } from '@mui/material'; -import { NewPost, Post } from "../../types"; -import { validator } from "../../common/utils"; -import { PostContext } from "../../context"; -import { FormInputs, Inputs } from "../../types"; +import { NewPost, Post } from '../../types'; +import { validator } from '../../common/utils'; +import { PostContext } from '../../context'; +import { FormInputs, Inputs } from '../../types'; const inputs: Inputs = [ { - id: "title-id", - name: "title", - label: "Title", - type: "text", + id: 'title-id', + name: 'title', + label: 'Title', + type: 'text' }, { - id: "description-id", - name: "description", - label: "Description", - type: "text", + id: 'description-id', + name: 'description', + label: 'Description', + type: 'text' }, { - id: "category-label", - name: "category", - label: "Category", - type: "menu", + id: 'category-label', + name: 'category', + label: 'Category', + type: 'menu', options: [ - { id: "663fef70d513515319551d1f", name: "Travel" }, - { id: "663fef70d513515319546d1f", name: "Food" }, - ], + { id: '663fef70d513515319551d1f', name: 'Travel' }, + { id: '663fef70d513515319546d1f', name: 'Food' } + ] }, { - id: "url-id", - name: "image", - label: "URL of the image", - type: "url", - }, + id: 'url-id', + name: 'image', + label: 'URL of the image', + type: 'url' + } ]; const emptyInputs: FormInputs = { - title: { value: "", error: "" }, - description: { value: "", error: "" }, - category: { value: "", error: "" }, - image: { value: "", error: "" }, + title: { value: '', error: '' }, + description: { value: '', error: '' }, + category: { value: '', error: '' }, + image: { value: '', error: '' } }; interface FormProps { @@ -67,10 +58,10 @@ const Form = ({ open, post, setOpen, setSelectedPost }: FormProps) => { React.useEffect(() => { if (!post) return; const existingPost = { - title: { value: post.title, error: "" }, - description: { value: post.description, error: "" }, - category: { value: post.category?._id || "", error: "" }, - image: { value: post.image, error: "" }, + title: { value: post.title, error: '' }, + description: { value: post.description, error: '' }, + category: { value: post.category?._id || '', error: '' }, + image: { value: post.image, error: '' } }; setFormData(existingPost); }, [post]); @@ -81,7 +72,7 @@ const Form = ({ open, post, setOpen, setSelectedPost }: FormProps) => { setSelectedPost(null); }; - const hanldeSubmit = (event: React.FormEvent) => { + const handleSubmit = (event: React.FormEvent) => { event.preventDefault(); const inputs = Object.values(formData); @@ -92,39 +83,31 @@ const Form = ({ open, post, setOpen, setSelectedPost }: FormProps) => { title: formData.title.value, image: formData.image.value, description: formData.description.value, - category: formData.category.value, + category: formData.category.value }; createOrUpdatePost({ - method: post ? "patch" : "post", + method: post ? 'patch' : 'post', newPost, - postID: post?.id, + postID: post?.id }); handleClose(); }; - const handleChange = ( - e: - | React.ChangeEvent - | SelectChangeEvent - ) => { + const handleChange = (e: React.ChangeEvent | SelectChangeEvent) => { const { name, value } = e.target; setFormData((prevFormData) => ({ ...prevFormData, - [name]: { value, error: "" }, + [name]: { value, error: '' } })); }; - const handleBlur = ( - e: - | React.ChangeEvent - | SelectChangeEvent - ) => { + const handleBlur = (e: React.ChangeEvent | SelectChangeEvent) => { const { name, value } = e.target; const error = validator({ name, value }); setFormData((prevFormData) => ({ ...prevFormData, - [name]: { ...prevFormData[name as keyof FormInputs], error }, + [name]: { ...prevFormData[name as keyof FormInputs], error } })); }; @@ -133,8 +116,8 @@ const Form = ({ open, post, setOpen, setSelectedPost }: FormProps) => { open={open} onClose={handleClose} PaperProps={{ - component: "form", - onSubmit: hanldeSubmit, + component: 'form', + onSubmit: handleSubmit }} > @@ -143,7 +126,7 @@ const Form = ({ open, post, setOpen, setSelectedPost }: FormProps) => { {inputs.map((input, idx) => ( - {(input.type === "text" || input.type === "url") && ( + {(input.type === 'text' || input.type === 'url') && ( { sx={{ paddingBottom: 2 }} value={formData[input.name].value} error={!!formData[input.name].error} - helperText={formData[input.name].error ?? " "} + helperText={formData[input.name].error ?? ' '} /> )} - {input.type === "menu" && ( + {input.type === 'menu' && ( { onChange={handleChange} value={`${formData[input.name].value}`} error={!!formData[input.name].error} - helperText={formData[input.name].error ?? " "} + helperText={formData[input.name].error ?? ' '} > {input.options?.map((option, idx) => ( diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx index 03682cc1..a0f4748c 100644 --- a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -1,5 +1,21 @@ import { useState } from 'react'; -import { Grid, IconButton, Paper, Table, TableBody, TableCell, TableContainer, TableHead, TableRow } from '@mui/material'; +import { + Box, + Button, + Grid, + IconButton, + Modal, + Paper, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TextField, + Typography +} from '@mui/material'; +import AddIcon from '@mui/icons-material/Add'; import DeleteIcon from '@mui/icons-material/Delete'; import EditIcon from '@mui/icons-material/Edit'; @@ -11,16 +27,49 @@ const categories: Category[] = [ { id: '663fef70d513515319546d1f', name: 'Food' } ]; +const style = { + position: 'absolute' as const, + top: '50%', + left: '50%', + transform: 'translate(-50%, -50%)', + width: 400, + bgcolor: 'background.paper', + border: '2px solid #000', + boxShadow: 24, + p: 4 +}; + function CategoriesPage() { - const [rows] = useState(categories); + const [category, setCategory] = useState(''); + const [open, setOpen] = useState(false); + const [rows, setRows] = useState(categories); + + const handleAdd = (categoryName: string) => { + categories.push({ + id: categories[categories.length - 1].id, + name: categoryName + }); + setRows(categories); + handleClose(); + }; + + const handleClose = () => setOpen(false); + const handleOpen = () => setOpen(true); + + function handleCategory(str: string) { + setCategory(str); + } function handleEditItem() {} function handleDeleteItem() {} + return ( Categories Page - {/* ACT 8 - Use the IconButton component (from MUI) to open the Modal */} + + + @@ -31,16 +80,19 @@ function CategoriesPage() { Actions + {rows.map((row) => ( {row.name} + + @@ -51,7 +103,18 @@ function CategoriesPage() { - {/* ACT 8 - Create a Modal to add new categories and update existing ones */} + + + + Add a category + + + handleCategory(e.target.value)} /> + + + ); } diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx index e3024ef5..68a7a993 100644 --- a/apps/react-app/src/components/Page/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -41,7 +41,7 @@ function HomePage() { <> - + ); diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx index 7139dea0..964248e9 100644 --- a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -1,12 +1,106 @@ +import { useContext, useState } from 'react'; +import { SnackbarContext } from '../../../context/SnackbarProvider'; +import { FieldValues, useForm } from 'react-hook-form'; +import { Button, Card, CardActions, CardContent, Grid, TextField, Typography } from '@mui/material'; + import { PageContainer } from './LoginPage.styles'; -import { Grid } from '@mui/material'; +import { NewUser } from '../../../types'; const LoginPage = () => { + const [username, setUsername] = useState(''); + const [password, setPassword] = useState(''); + const { createAlert } = useContext(SnackbarContext); + const { register, handleSubmit } = useForm(); + + const onSubmit = (data: FieldValues) => { + const isUser = localStorage.getItem(username) ? true : false; + + if (isUser) { + const userData = JSON.parse(localStorage.getItem(username) || ''); + if (userData.password === password) { + createAlert('You are successfully logged in!', 'success'); + } else { + createAlert('Email or password is not matching with our record.', 'error'); + } + } else { + createAlert('Email or password is not matching with our record.', 'error'); + } + }; + + const handleSignUp = ({ username, password }: NewUser) => { + localStorage.setItem( + username, + JSON.stringify({ + username: username, + password: password + }) + ); + createAlert('User successfully signed up!', 'success'); + }; + + function handleUsername(str: string) { + setUsername(str); + console.log(username); + } + + function handlePassword(str: string) { + setPassword(str); + console.log(password); + } + return ( - Login Page - - {/* ACT 8 - Create a form to Login and SignUp */} + + + + + Login + + + handleUsername(e.target.value)} + /> + + handlePassword(e.target.value)} + /> + + + + + + + + ); diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx index cad0bc28..09104b8e 100644 --- a/apps/react-app/src/components/Page/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -1,5 +1,7 @@ +import { useCallback, useEffect, useState } from 'react'; import Banner from '../../Banner'; -import CommentCard from '../../CommentCard'; +import Comments from '../../Comments'; +import { Comment } from '../../../types/index'; import { Container, BannerContainer, CommentsContainer, DescriptionContainer } from './PostPage.styles'; const post = { @@ -26,6 +28,18 @@ const post = { }; function PostPage() { + const [comments, setComment] = useState(post.comments); + + const handleCommentSubmition = useCallback( + (comment: Comment) => { + console.log(comments); + setComment([...comments, comment]); + }, + [comments] + ); + + useEffect(() => {}, [comments]); + return ( Post page @@ -36,7 +50,8 @@ function PostPage() {

{post.description}

- + {/* */} +
); diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index ee6413bf..9164590a 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -4,7 +4,7 @@ import { Grid, IconButton, Typography } from '@mui/material'; import { shorten } from '../../common/utils'; import { CardActions, CardContainer, CardContent, PostCard } from './PostList.styles'; -import { Post } from '../../types'; +import { Category, Post } from '../../types'; import { PostContext } from '../../context'; import { useContext } from 'react'; diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index 9f8ec72a..598c4cd6 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -127,7 +127,7 @@ export interface User { } export interface NewUser extends User { - firstame: string; + firstname: string; lastname: string; } From ccfc7393ba33b126ec7b46e37a4980d2a2411a96 Mon Sep 17 00:00:00 2001 From: Eduardo de Leon Date: Mon, 2 Sep 2024 13:31:03 -0600 Subject: [PATCH 19/21] Activity 9 --- apps/react-app/src/api/axios.ts | 4 +- .../react-app/src/api/endpoints/categories.ts | 95 +++++++- apps/react-app/src/components/Form/Form.tsx | 2 +- .../Page/CategoriesPage/CategoriesPage.tsx | 218 ++++++++++++++---- .../src/components/Page/HomePage/HomePage.tsx | 17 +- .../components/Page/LoginPage/LoginPage.tsx | 1 - .../src/components/Page/PostPage/PostPage.tsx | 73 +++--- apps/react-app/src/context/PostProvider.tsx | 52 +---- .../src/context/SnackbarProvider.tsx | 3 +- package.json | 2 +- 10 files changed, 332 insertions(+), 135 deletions(-) diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 9d2ab0d9..d05d435b 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -2,12 +2,12 @@ import axios from "axios"; const axiosInstance = axios.create(); const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1Nzk4NTc2LCJleHAiOjE3MTU4MDIxNzZ9.EgW4AcErd_fwDVwZa-pzJCw12xKBzGJ32B8Ry92XRs8"; + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzI1MzAzNTQxLCJleHAiOjE3MjUzMDcxNDF9.6GL2aAqGFsjfB3WhuP2vWQEApx9yC1wLy-LG29FDbyk"; axiosInstance.interceptors.request.use((config) => { config.baseURL = "https://test.neuraac.com/api"; config.headers.Authorization = `Bearer ${token}`; - config.signal = AbortSignal.timeout(5000); + // config.signal = AbortSignal.timeout(5000); return config; }); diff --git a/apps/react-app/src/api/endpoints/categories.ts b/apps/react-app/src/api/endpoints/categories.ts index 6d15b977..fd54a3ed 100644 --- a/apps/react-app/src/api/endpoints/categories.ts +++ b/apps/react-app/src/api/endpoints/categories.ts @@ -1,11 +1,8 @@ import { AxiosError, AxiosResponse } from "axios"; +// import { SnackbarContext } from './SnackbarProvider'; import axios from "../axios"; -import { - // Category, - CategoriesResponse, - // NewCategory -} from "../../types"; +import { /* Category, */ CategoriesResponse, NewCategory } from "../../types"; export const getCategories = async ({ onSuccess, @@ -33,4 +30,90 @@ export const getCategories = async ({ .finally(() => onLoading && onLoading(false)); }; -// ACT 9 - Create callbacks fuctions to call create, update and delete APIs +export const createCategory = async ({ + newCategory, + onSuccess, + onError, + onLoading, +}: { + newCategory: NewCategory; + onSuccess?: (data: CategoriesResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/categories", + method: "post", + data: newCategory, + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const updateCategory = async ({ + categoryId, + updatedCategory, + onSuccess, + onError, + onLoading, +}: { + categoryId: string; + updatedCategory: NewCategory; + onSuccess?: (data: CategoriesResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/categories/${categoryId}`, + method: "patch", + data: updatedCategory, + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const deleteCategory = async ({ + categoryId, + onSuccess, + onError, + onLoading, +}: { + categoryId: string; + onSuccess?: (data: CategoriesResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/categories/${categoryId}`, + method: "delete", + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index cb8341d0..78a032f8 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -74,7 +74,7 @@ const Form = ({ open, post, categories, selectedCategory, setOpen, setSelectedPo setSelectedPost(null); }; - const hanldeSubmit = async (event: React.FormEvent) => { + const handleSubmit = async (event: React.FormEvent) => { event.preventDefault(); const inputs = Object.values(formData); diff --git a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx index 1fc8a591..1bbff9ce 100644 --- a/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx +++ b/apps/react-app/src/components/Page/CategoriesPage/CategoriesPage.tsx @@ -1,10 +1,10 @@ -import { useState } from 'react'; +import { useCallback, useContext, useEffect, useState } from 'react'; import { - Box, Button, + Dialog, + DialogTitle, Grid, IconButton, - Modal, Paper, Table, TableBody, @@ -12,20 +12,23 @@ import { TableContainer, TableHead, TableRow, - TextField, - Typography + TextField } from '@mui/material'; import AddIcon from '@mui/icons-material/Add'; import DeleteIcon from '@mui/icons-material/Delete'; import EditIcon from '@mui/icons-material/Edit'; +import { AxiosError, AxiosResponse } from 'axios'; import { PageContainer } from './CategoriesPage.styles'; -import { Category } from '../../../types'; +import { createCategory, deleteCategory, getCategories /* updateCategory */, updateCategory } from '../../../api'; +import axiosInstance from '../../../api/axios'; +import { /* CreateAlert, */ SnackbarContext } from '../../../context/SnackbarProvider'; +import { CategoriesResponse, Category, NewCategory } from '../../../types'; -const categories: Category[] = [ - { id: '663fef70d513515319551d1f', name: 'Travel' }, - { id: '663fef70d513515319546d1f', name: 'Food' } -]; +const emptyCategory = { id: '', name: '' }; +const emptyInput = { + name: { value: '', error: '' } +}; const style = { position: 'absolute' as const, @@ -33,45 +36,144 @@ const style = { left: '50%', transform: 'translate(-50%, -50%)', width: 400, + padding: '1em', bgcolor: 'background.paper', - border: '2px solid #000', - boxShadow: 24, + // boxShadow: 24, p: 4 }; function CategoriesPage() { - const [category, setCategory] = useState(''); + const [category, setCategory] = useState(emptyCategory); // The category to be edited. + const [formData, setFormData] = useState(emptyInput); const [open, setOpen] = useState(false); - const [rows, setRows] = useState(categories); - - const handleAdd = (categoryName: string) => { - categories.push({ - id: categories[categories.length - 1].id, - name: categoryName - }); - setRows(categories); + const [rows, setRows] = useState(null); + const { createAlert } = useContext(SnackbarContext); + + // const handleAdd = (categoryName: string) => { + // categories.push({ + // id: categories[categories.length - 1].id, + // name: categoryName + // }); + // setRows(categories); + // handleClose(); + // }; + + const onError = useCallback(() => { + createAlert('Something went wrong.', 'error'); + }, [createAlert]); + + const getCategoryList = useCallback(async () => { + const onSuccess = async (data: CategoriesResponse[]) => { + const newList = data.map((category) => ({ + id: category._id, + name: category.name, + createdAt: category.createdAt, + updatedAt: category.updatedAt, + __v: category.__v + })); + setRows(newList); + }; + + const params = { onSuccess, onError }; + await getCategories(params); + }, [onError]); + + const addCategory = useCallback( + async (newCategory: NewCategory) => { + const onSuccess = async () => { + await getCategoryList(); + createAlert('Category successfully created.', 'success'); + }; + + await createCategory({ newCategory, onSuccess, onError }); + }, + [createAlert, getCategoryList, onError] + ); + + const updateCategoryData = useCallback( + async ({ categoryId, updatedCategory }: { categoryId: string; updatedCategory: NewCategory }) => { + const onSuccess = async () => { + await getCategoryList(); + createAlert('Category successfully updated.', 'success'); + }; + + await updateCategory({ categoryId, updatedCategory, onSuccess, onError }); + }, + [createAlert, onError, getCategoryList] + ); + + const removeCategory = useCallback( + async ({ categoryId }: { categoryId: string }) => { + const onSuccess = async () => { + await getCategoryList(); + createAlert('Category successfully deleted.', 'success'); + }; + await deleteCategory({ categoryId, onSuccess, onError }); + }, + [createAlert, onError, getCategoryList] + ); + + const handleClose = () => { + setFormData(emptyInput); + setOpen(false); + }; + + const handleSubmit = async (event: React.FormEvent) => { + event.preventDefault(); + + const inputs = Object.values(formData); + const containError = inputs.map((input) => input.error).some((v) => !!v); + if (containError) return; + + const newCategory: NewCategory = { + name: formData.name.value + }; + handleClose(); + + category !== emptyCategory + ? await updateCategoryData({ + categoryId: category.id, + updatedCategory: newCategory + }) + : await addCategory(newCategory); + + setCategory(emptyCategory); }; - const handleClose = () => setOpen(false); const handleOpen = () => setOpen(true); - function handleCategory(str: string) { - setCategory(str); + const handleNew = () => { + handleOpen(); + setCategory(emptyCategory); + }; + + function handleEditItem(category: Category) { + handleOpen(); + setCategory(category); } - function handleEditItem() {} - function handleDeleteItem() {} - // ACT 9 - Use the getList, create, edit, delete and update categories APIs + useEffect(() => { + axiosInstance({ + url: '/categories', + method: 'get' + }) + .then((res: AxiosResponse) => { + getCategoryList(); + }) + .catch((res: AxiosError) => { + console.log(res); + }); + }); return ( - Categories Page - + + @@ -83,18 +185,29 @@ function CategoriesPage() { - {rows.map((row) => ( + {rows?.map((row) => ( {row.name} - + { + e.stopPropagation(); + removeCategory({ categoryId: row.id }); + }} + > - + { + handleEditItem(row); + }} + > @@ -104,18 +217,35 @@ function CategoriesPage() {
- - - - Add a category - - - handleCategory(e.target.value)} /> - - - + + + {category !== emptyCategory ? `Edit category ${category.id}` : 'Add a category'} + + setFormData({ name: { value: e.target.value, error: '' } })} + /> + +
); } diff --git a/apps/react-app/src/components/Page/HomePage/HomePage.tsx b/apps/react-app/src/components/Page/HomePage/HomePage.tsx index 68a7a993..b5a89ae5 100644 --- a/apps/react-app/src/components/Page/HomePage/HomePage.tsx +++ b/apps/react-app/src/components/Page/HomePage/HomePage.tsx @@ -15,7 +15,7 @@ const categories: Category[] = [ function HomePage() { const [openForm, setOpenForm] = useState(false); - const { posts, getPosts } = useContext(PostContext); + const { posts, getPostList } = useContext(PostContext); const [selectedPost, setSelectedPost] = useState(null); const [selectedCategory, setSelectedCategory] = useState(null); @@ -27,13 +27,13 @@ function HomePage() { const handleSelectCategory = useCallback( (category: Category) => { const isCategoryAlreadySelected = category.id === selectedCategory?.id; - getPosts(isCategoryAlreadySelected ? undefined : category.id); + getPostList(isCategoryAlreadySelected ? undefined : category.id); setSelectedCategory(isCategoryAlreadySelected ? null : category); }, - [selectedCategory, getPosts] + [selectedCategory, getPostList] ); - useEffect(getPosts, [getPosts]); + useEffect(getPostList, [getPostList]); if (!posts) return ; @@ -42,7 +42,14 @@ function HomePage() { - + ); } diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx index eb6eddbb..964248e9 100644 --- a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -47,7 +47,6 @@ const LoginPage = () => { setPassword(str); console.log(password); } - // ACT 9 - Use the login and register APIs return ( diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx index b9aafd85..222fe8db 100644 --- a/apps/react-app/src/components/Page/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -1,36 +1,46 @@ import { useCallback, useEffect, useState } from 'react'; + +import { Container, BannerContainer, CommentsContainer, DescriptionContainer } from './PostPage.styles'; import Banner from '../../Banner'; import Comments from '../../Comments'; -import { Comment } from '../../../types/index'; -import { Container, BannerContainer, CommentsContainer, DescriptionContainer } from './PostPage.styles'; +import { getPost } from '../../../api'; +import { Comment, Post } from '../../../types/index'; -// const postID = "664128a212f505651c18d676" - -const post = { - id: '1.23', - title: 'A good place to camp', - image: - 'https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0', - description: 'Beautiful water, incredible landscapes and huge bears everywhere. Everything your soul needs.', - category: 'Travel', - comments: [ - { - id: '2.1', - author: 'Anonymus', - content: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' - }, - { - id: '2.2', - author: 'Anonymus', - content: - 'Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.' - } - ] -}; +const postID = '66be3a9aa88f2cc7880ce2d8'; function PostPage() { - const [comments, setComment] = useState(post.comments); + const [post, setPost] = useState(); + const [comments, setComment] = useState([]); + + useEffect(() => { + getPost({ + postID, + onSuccess: async (res) => { + setPost({ + id: res._id, + title: res.title, + image: res.image, + description: res.description, + category: res.category, + comments: res.comments.map((comment) => comment.content) + }); + setComment( + res.comments.map((comment) => { + return { + id: comment._id, + author: comment.author, + content: comment.content + }; + }) + ); + console.log('Got post!'); + }, + onError: async () => { + console.log('Post not gotten!'); + }, + onLoading: async () => {} + }); + }, []); const handleCommentSubmition = useCallback( (comment: Comment) => { @@ -40,20 +50,15 @@ function PostPage() { [comments] ); - useEffect(() => {}, [comments]); - - // ACT 9 - Use postID variable to fetch the post data return ( - Post page - + -

{post.description}

+

{post?.description}

- {/* */}
diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index edb59894..92af2878 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -1,7 +1,12 @@ -import React, { createContext, useCallback, useContext, useEffect, useState } from 'react'; - -import { NewPost, NewPost, Post, PostsResponse } from '../types'; -import { SnackbarContext } from './SnackbarProvider'; +import React, { + createContext, + useCallback, + // useContext, useEffect, + useState +} from 'react'; + +import { NewPost, Post, PostsResponse } from '../types'; +// import { SnackbarContext } from './SnackbarProvider'; import { createPost, deletePost, getPosts, getPostsByCategory, updatePost } from '../api'; interface PostContextProps { @@ -34,41 +39,8 @@ export const PostContext = createContext({ updatePostData: () => {} }); -const postList: Post[] = [ - { - id: '664128a212f505651c18d676', - title: 'A nice place to camp', - image: - 'https://th.bing.com/th/id/R.e0bad63364a867fea652212c254bf869?rik=avtecz5aXVdevA&riu=http%3a%2f%2fwww.viajejet.com%2fwp-content%2fviajes%2fLago-Moraine-Parque-Nacional-Banff-Alberta-Canada.jpg&ehk=6qRhWDqqQAEkSFs%2bHP8p2Bl6XfPbjznSoORh%2bsEJ%2bQE%3d&risl=&pid=ImgRaw&r=0', - description: 'Post 2.0 description', - category: { - _id: '663fef70d513515319551d1f', - name: 'Travel', - createdAt: '2024-05-11T22:21:36.759Z', - updatedAt: '2024-05-14T13:47:54.653Z', - __v: 0 - }, - comments: ['6641f7d912f505651c18d68e', '66424d2c12f505651c18d91c', '66424d3812f505651c18d923'] - }, - { - id: '664128a212f505651c18d6kf6', - title: 'Favorite food ;)', - image: - 'https://th.bing.com/th/id/R.2d66d3ce21d052726c2c527a03da4f4c?rik=3FedcY2H7LDtBw&riu=http%3a%2f%2ftheartofplating.com%2fwp-content%2fuploads%2f2015%2f06%2fEvan_Feature.jpg&ehk=KCxZkONbpjuAYhfpKxoeHgIizR%2fy1U0LM6olKn1d8go%3d&risl=&pid=ImgRaw&r=0', - description: 'Post 2.0 description', - category: { - _id: '663fef70d513515319546d1f', - name: 'Food', - createdAt: '2024-05-11T22:21:36.759Z', - updatedAt: '2024-05-14T13:47:54.653Z', - __v: 0 - }, - comments: ['6641f7d912f505651c18d68e', '66424d2c12f505651c18d91c', '66424d3812f505651c18d923'] - } -]; - export function PostProvider({ children }: PostProviderProps): React.JSX.Element { - const createAlert = useContext(SnackbarContext); + // const createAlert = useContext(SnackbarContext); const [posts, setPosts] = useState(null); const [loadingPosts, setLoadingPosts] = useState(false); @@ -77,10 +49,10 @@ export function PostProvider({ children }: PostProviderProps): React.JSX.Element }; const onError = useCallback(() => { - // createAlert({ + // createAlert( // message: "Something went wrong.", // severity: "error", - // }); + // ); }, []); const getPostList = useCallback( diff --git a/apps/react-app/src/context/SnackbarProvider.tsx b/apps/react-app/src/context/SnackbarProvider.tsx index 9af233e9..ffa9946d 100644 --- a/apps/react-app/src/context/SnackbarProvider.tsx +++ b/apps/react-app/src/context/SnackbarProvider.tsx @@ -5,9 +5,10 @@ import Snackbar, { SnackbarCloseReason } from '@mui/material/Snackbar'; import { Alert } from '../types'; type Severity = 'error' | 'warning' | 'info' | 'success' | undefined; +type CreateAlert = (message: string, severity?: Severity) => void; interface SnackbarContextProps { - createAlert: (message: string, severity?: Severity) => void; + createAlert: CreateAlert; } interface SnackbarProviderProps { diff --git a/package.json b/package.json index 02839adc..1213ba42 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "normalize.css": "^8.0.1", "react": "18.2.0", "react-dom": "18.2.0", - "react-hook-form": "^7.51.0", + "react-hook-form": "^7.52.2", "react-router-dom": "6.11.2", "rxjs": "~7.8.0", "tslib": "^2.3.0", From d6295c6084a40f7f1fbfa05c3f10a7944f58e7c5 Mon Sep 17 00:00:00 2001 From: Eduardo de Leon Date: Wed, 11 Sep 2024 11:15:43 -0600 Subject: [PATCH 20/21] Activity 10 --- apps/react-app/src/Router/Router.tsx | 30 +++++++++---- apps/react-app/src/api/endpoints/comments.ts | 6 +-- apps/react-app/src/api/endpoints/posts.ts | 18 ++++---- .../src/components/Banner/Banner.tsx | 13 +++--- apps/react-app/src/components/Form/Form.tsx | 5 +-- .../src/components/NavBar/NavBar.tsx | 45 +++++++++++-------- apps/react-app/src/components/Page/Page.tsx | 18 ++++---- .../src/components/Page/PostPage/PostPage.tsx | 9 ++-- apps/react-app/src/components/Page/index.ts | 12 ++--- .../src/components/PostList/PostList.tsx | 19 ++++---- apps/react-app/src/context/PostProvider.tsx | 45 ++++++++++--------- apps/react-app/src/context/index.ts | 1 + apps/react-app/src/types/index.ts | 4 +- 13 files changed, 124 insertions(+), 101 deletions(-) diff --git a/apps/react-app/src/Router/Router.tsx b/apps/react-app/src/Router/Router.tsx index abfb3fac..5be94013 100644 --- a/apps/react-app/src/Router/Router.tsx +++ b/apps/react-app/src/Router/Router.tsx @@ -1,16 +1,28 @@ -import { createBrowserRouter } from "react-router-dom"; -import Page, { HomePage } from "../components/Page"; -import PrivateRoute from "./PrivateRoute"; +import { createBrowserRouter } from 'react-router-dom'; +import Page, { CategoriesPage, HomePage, LoginPage, NotFoundPage, PostPage } from '../components/Page'; +import PrivateRoute from './PrivateRoute'; const Router = createBrowserRouter([ { - path: "/", - element: } />} />, + path: '/', + element: } />} /> }, - // ACT 10 - Render PostPage component inside a private route and mark postID as a params - // ACT 10 - Render CategoriesPage component inside a private route - // ACT 10 - Render LoginPage component inside a private route - // ACT 10 - Render NotFoundPage component for undefined routes + { + path: '/post/:postId', + element: } />} /> + }, + { + path: '/categories', + element: } />} /> + }, + { + path: '/login', + element: } /> + }, + { + path: '*', + element: } /> + } ]); export default Router; diff --git a/apps/react-app/src/api/endpoints/comments.ts b/apps/react-app/src/api/endpoints/comments.ts index 218636cd..f722c995 100644 --- a/apps/react-app/src/api/endpoints/comments.ts +++ b/apps/react-app/src/api/endpoints/comments.ts @@ -4,13 +4,13 @@ import axios from "../axios"; import { NewComment, CommentResponse } from "../../types"; export const createComment = async ({ - postID, + postId, newComment, onSuccess, onError, onLoading, }: { - postID: string; + postId: string; newComment: NewComment; onSuccess?: (data: CommentResponse) => void; onError?: (error: AxiosError) => void; @@ -20,7 +20,7 @@ export const createComment = async ({ await axios({ method: "post", - url: `/posts/${postID}/comments`, + url: `/posts/${postId}/comments`, data: newComment, }) .then((response: AxiosResponse) => { diff --git a/apps/react-app/src/api/endpoints/posts.ts b/apps/react-app/src/api/endpoints/posts.ts index 574451d8..fd174586 100644 --- a/apps/react-app/src/api/endpoints/posts.ts +++ b/apps/react-app/src/api/endpoints/posts.ts @@ -58,12 +58,12 @@ export const getPostsByCategory = async ({ }; export const getPost = async ({ - postID, + postId, onSuccess, onError, onLoading, }: { - postID: string; + postId: string; onSuccess?: (data: PostResponse) => void; onError?: (error: AxiosError) => void; onLoading?: (isLoading: boolean) => void; @@ -71,7 +71,7 @@ export const getPost = async ({ onLoading && onLoading(true); await axios({ - url: `/posts/${postID}`, + url: `/posts/${postId}`, method: "get", }) .then((response: AxiosResponse) => { @@ -115,13 +115,13 @@ export const createPost = async ({ }; export const updatePost = async ({ - postID, + postId, updatedPost, onSuccess, onError, onLoading, }: { - postID: string; + postId: string; updatedPost: NewPost; onSuccess?: (data: PostsResponse) => void; onError?: (error: AxiosError) => void; @@ -130,7 +130,7 @@ export const updatePost = async ({ onLoading && onLoading(true); await axios({ - url: `/posts/${postID}`, + url: `/posts/${postId}`, method: "patch", data: updatedPost, }) @@ -146,12 +146,12 @@ export const updatePost = async ({ }; export const deletePost = async ({ - postID, + postId, onSuccess, onError, onLoading, }: { - postID: string; + postId: string; onSuccess?: () => void; onError?: (error: AxiosError) => void; onLoading?: (isLoading: boolean) => void; @@ -159,7 +159,7 @@ export const deletePost = async ({ onLoading && onLoading(true); await axios({ - url: `/posts/${postID}`, + url: `/posts/${postId}`, method: "delete", }) .then((response: AxiosResponse) => { diff --git a/apps/react-app/src/components/Banner/Banner.tsx b/apps/react-app/src/components/Banner/Banner.tsx index 37ec4bf0..ed815da3 100644 --- a/apps/react-app/src/components/Banner/Banner.tsx +++ b/apps/react-app/src/components/Banner/Banner.tsx @@ -1,5 +1,6 @@ import Button from '@mui/material/Button'; import ArrowBackIosIcon from '@mui/icons-material/ArrowBackIos'; +import { useNavigate } from 'react-router-dom'; import { BannerContent, BannerTitle, Container } from './Banner.styles'; @@ -9,14 +10,16 @@ interface BannerProps { } function Banner({ postImage, postTitle }: BannerProps) { + const navigate = useNavigate(); + + const goToHome = () => { + navigate('/'); + }; + return ( - {postTitle} diff --git a/apps/react-app/src/components/Form/Form.tsx b/apps/react-app/src/components/Form/Form.tsx index 8c033ce1..2df060db 100644 --- a/apps/react-app/src/components/Form/Form.tsx +++ b/apps/react-app/src/components/Form/Form.tsx @@ -49,9 +49,6 @@ interface FormProps { post: Post | null; categories: Category[] | null; selectedCategory: Category | null; - post: Post | null; - categories: Category[] | null; - selectedCategory: Category | null; setOpen: React.Dispatch>; setSelectedPost: (value: React.SetStateAction) => void; } @@ -95,7 +92,7 @@ const Form = ({ open, post, categories, selectedCategory, setOpen, setSelectedPo post ? await updatePostData({ - postID: post.id, + postId: post.id, updatedPost: newPost, selectedCategoryID: selectedCategory?.id }) diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx index 9e80053e..aa8c2fe8 100644 --- a/apps/react-app/src/components/NavBar/NavBar.tsx +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -1,7 +1,7 @@ import React from 'react'; import Grid from '@mui/material/Grid'; import { NavLink } from 'react-router-dom'; -import { Box, Button, Typography } from '@mui/material'; +import { Box, Typography } from '@mui/material'; import TravelExploreIcon from '@mui/icons-material/TravelExplore'; export default function NavBar(): React.JSX.Element { @@ -37,6 +37,7 @@ export default function NavBar(): React.JSX.Element { + - {/* ACT 10 - Use NavLink to navigate to categories page and change the backgroundcolor when is active */} - - {/* ACT 10 - Use NavLink to navigate to login page and change the backgroundcolor when is active*/} - + ); diff --git a/apps/react-app/src/components/Page/Page.tsx b/apps/react-app/src/components/Page/Page.tsx index 2a7ef145..1f6e0ddc 100644 --- a/apps/react-app/src/components/Page/Page.tsx +++ b/apps/react-app/src/components/Page/Page.tsx @@ -1,16 +1,18 @@ -import React from "react"; -import Grid from "@mui/material/Grid"; -import NavBar from "../NavBar"; +import React from 'react'; +import Grid from '@mui/material/Grid'; +import NavBar from '../NavBar'; interface PageProps { /** - * The page component that will be rendered inside the global Page component template + * The page component that will be rendered inside the global Page component + * template */ page: React.JSX.Element; } /** - * The global page template which wraps the page component (provided as a prop) in the global site template/header/footer + * The global page template which wraps the page component (provided as a prop) in + * the global site template/header/footer */ export default function Page({ page }: PageProps): React.JSX.Element { return ( @@ -21,9 +23,9 @@ export default function Page({ page }: PageProps): React.JSX.Element { item wrap="nowrap" sx={{ - display: "flex", - flexDirection: "column", - height: "calc(100vh - 84px)", + display: 'flex', + flexDirection: 'column', + height: 'calc(100vh - 84px)' }} > {page} diff --git a/apps/react-app/src/components/Page/PostPage/PostPage.tsx b/apps/react-app/src/components/Page/PostPage/PostPage.tsx index 70ebb5a6..5f4bff15 100644 --- a/apps/react-app/src/components/Page/PostPage/PostPage.tsx +++ b/apps/react-app/src/components/Page/PostPage/PostPage.tsx @@ -5,16 +5,16 @@ import Banner from '../../Banner'; import Comments from '../../Comments'; import { getPost } from '../../../api'; import { Comment, Post } from '../../../types/index'; - -const postID = '664128a212f505651c18d676'; +import { useParams } from 'react-router-dom'; function PostPage() { const [post, setPost] = useState(); const [comments, setComment] = useState([]); + const { postId } = useParams(); useEffect(() => { getPost({ - postID, + postId: postId ?? '', onSuccess: async (res) => { setPost({ id: res._id, @@ -40,8 +40,7 @@ function PostPage() { }, onLoading: async () => {} }); - }, []); - // ACT 10 - Get postID from route params + }, [postId]); const handleCommentSubmition = useCallback( (comment: Comment) => { diff --git a/apps/react-app/src/components/Page/index.ts b/apps/react-app/src/components/Page/index.ts index 99868e3c..99b073b6 100644 --- a/apps/react-app/src/components/Page/index.ts +++ b/apps/react-app/src/components/Page/index.ts @@ -1,7 +1,7 @@ -export { default as HomePage } from "./HomePage"; -export { default as PostPage } from "./PostPage"; -export { default as CategoriesPage } from "./CategoriesPage"; -export { default as LoginPage } from "./LoginPage"; -// ACT 10 - export NotFoundPage componenet +export { default as HomePage } from './HomePage'; +export { default as PostPage } from './PostPage'; +export { default as CategoriesPage } from './CategoriesPage'; +export { default as LoginPage } from './LoginPage'; +export { default as NotFoundPage } from './NotFoundPage'; -export { default } from "./Page"; +export { default } from './Page'; diff --git a/apps/react-app/src/components/PostList/PostList.tsx b/apps/react-app/src/components/PostList/PostList.tsx index 6981339e..9c892913 100644 --- a/apps/react-app/src/components/PostList/PostList.tsx +++ b/apps/react-app/src/components/PostList/PostList.tsx @@ -2,11 +2,12 @@ import { useContext } from 'react'; import EditIcon from '@mui/icons-material/Edit'; import DeleteIcon from '@mui/icons-material/Delete'; import { Grid, IconButton, Typography } from '@mui/material'; +import { useNavigate } from 'react-router-dom'; +import { CardActions, CardContainer, CardContent, PostCard } from './PostList.styles'; import { shorten } from '../../common/utils'; import { Category, Post } from '../../types'; import { PostContext } from '../../context'; -import { CardActions, CardContainer, CardContent, PostCard } from './PostList.styles'; interface PostListProps { posts: Post[]; @@ -17,17 +18,15 @@ interface PostListProps { function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { const { removePost } = useContext(PostContext); + const navigate = useNavigate(); + const goToPost = (postId: string) => { + navigate(`post/${postId}`); + }; + return ( {posts.map((post) => ( - + goToPost(post.id)}>

{post.title}

@@ -53,7 +52,7 @@ function PostList({ posts, selectedCategory, handleOpenForm }: PostListProps) { onClick={(e) => { e.stopPropagation(); removePost({ - postID: post.id, + postId: post.id, selectedCategoryID: selectedCategory?.id }); }} diff --git a/apps/react-app/src/context/PostProvider.tsx b/apps/react-app/src/context/PostProvider.tsx index 92af2878..3af477f5 100644 --- a/apps/react-app/src/context/PostProvider.tsx +++ b/apps/react-app/src/context/PostProvider.tsx @@ -13,14 +13,14 @@ interface PostContextProps { posts: Post[] | null; loadingPosts: boolean; addPost: (newPost: NewPost) => void; - removePost: ({ postID, selectedCategoryID }: { postID: string; selectedCategoryID?: string }) => void; + removePost: ({ postId, selectedCategoryID }: { postId: string; selectedCategoryID?: string }) => void; getPostList: (selectedCategoryID?: string) => void; updatePostData: ({ - postID, + postId, updatedPost, selectedCategoryID }: { - postID: string; + postId: string; updatedPost: NewPost; selectedCategoryID?: string; }) => void; @@ -56,21 +56,24 @@ export function PostProvider({ children }: PostProviderProps): React.JSX.Element }, []); const getPostList = useCallback( - async (selectedCategoryID?: string) => { - const onSuccess = async (data: PostsResponse[]) => { - const newList = data.map((post) => ({ - id: post._id, - title: post.title, - image: post.image, - description: post.description, - category: post.category, - comments: post.comments - })); - setPosts(newList); - }; + (selectedCategoryID?: string) => { + async function process() { + const onSuccess = async (data: PostsResponse[]) => { + const newList = data.map((post) => ({ + id: post._id, + title: post.title, + image: post.image, + description: post.description, + category: post.category, + comments: post.comments + })); + setPosts(newList); + }; - const params = { onSuccess, onError, onLoading }; - selectedCategoryID ? await getPostsByCategory({ selectedCategoryID, ...params }) : await getPosts(params); + const params = { onSuccess, onError, onLoading }; + selectedCategoryID ? await getPostsByCategory({ selectedCategoryID, ...params }) : await getPosts(params); + } + process(); }, [onError] ); @@ -91,7 +94,7 @@ export function PostProvider({ children }: PostProviderProps): React.JSX.Element ); const updatePostData = useCallback( - async ({ postID, updatedPost, selectedCategoryID }: { postID: string; updatedPost: NewPost; selectedCategoryID?: string }) => { + async ({ postId, updatedPost, selectedCategoryID }: { postId: string; updatedPost: NewPost; selectedCategoryID?: string }) => { const onSuccess = async () => { await getPostList(selectedCategoryID); // createAlert({ @@ -100,13 +103,13 @@ export function PostProvider({ children }: PostProviderProps): React.JSX.Element // }); }; - await updatePost({ postID, updatedPost, onSuccess, onError, onLoading }); + await updatePost({ postId, updatedPost, onSuccess, onError, onLoading }); }, [onError, getPostList] ); const removePost = useCallback( - async ({ postID, selectedCategoryID }: { postID: string; selectedCategoryID?: string }) => { + async ({ postId, selectedCategoryID }: { postId: string; selectedCategoryID?: string }) => { const onSuccess = async () => { await getPostList(selectedCategoryID); // createAlert({ @@ -115,7 +118,7 @@ export function PostProvider({ children }: PostProviderProps): React.JSX.Element // }); }; setLoadingPosts(true); - await deletePost({ postID, onSuccess, onError }); + await deletePost({ postId, onSuccess, onError }); }, [onError, getPostList] ); diff --git a/apps/react-app/src/context/index.ts b/apps/react-app/src/context/index.ts index 49bd7aad..96342f10 100644 --- a/apps/react-app/src/context/index.ts +++ b/apps/react-app/src/context/index.ts @@ -1,2 +1,3 @@ +export { AuthProvider, AuthContext } from "./AuthProvider"; export { PostProvider, PostContext } from "./PostProvider"; export { SnackbarProvider, SnackbarContext } from "./SnackbarProvider"; diff --git a/apps/react-app/src/types/index.ts b/apps/react-app/src/types/index.ts index 598c4cd6..ddd3715c 100644 --- a/apps/react-app/src/types/index.ts +++ b/apps/react-app/src/types/index.ts @@ -127,8 +127,8 @@ export interface User { } export interface NewUser extends User { - firstname: string; - lastname: string; + firstName: string; + lastName: string; } export interface AuthResponse { From e2c26b60e2a534bd884be73e1f7b19e3296b203f Mon Sep 17 00:00:00 2001 From: Eduardo de Leon Date: Wed, 11 Sep 2024 13:10:52 -0600 Subject: [PATCH 21/21] Activity 11 --- apps/react-app/src/Router/PrivateRoute.tsx | 18 ++-- apps/react-app/src/Router/Router.tsx | 2 +- apps/react-app/src/api/axios.ts | 8 +- apps/react-app/src/api/endpoints/auth.ts | 26 +++--- .../src/components/NavBar/NavBar.tsx | 88 ++++++++++++++----- .../components/Page/LoginPage/LoginPage.tsx | 51 +++++------ apps/react-app/src/context/AuthProvider.tsx | 28 ++---- 7 files changed, 121 insertions(+), 100 deletions(-) diff --git a/apps/react-app/src/Router/PrivateRoute.tsx b/apps/react-app/src/Router/PrivateRoute.tsx index a27eabaa..e727872c 100644 --- a/apps/react-app/src/Router/PrivateRoute.tsx +++ b/apps/react-app/src/Router/PrivateRoute.tsx @@ -1,17 +1,16 @@ -import { useContext, useEffect } from "react"; -import { Navigate } from "react-router-dom"; -import { Grid } from "@mui/material"; +import { useContext, useEffect } from 'react'; +import { Navigate } from 'react-router-dom'; +import { Grid } from '@mui/material'; -import { AuthContext } from "../context"; -import Loading from "../components/Loading"; +import Loading from '../components/Loading'; +import { AuthContext } from '../context'; interface PrivateRouteProps { route: React.JSX.Element; } const PrivateRoute = ({ route }: PrivateRouteProps): JSX.Element => { - const { authLoading, isAuthenticated, validateToken } = - useContext(AuthContext); + const { authLoading, isAuthenticated, validateToken } = useContext(AuthContext); useEffect(() => { const initialize = async () => { @@ -28,10 +27,7 @@ const PrivateRoute = ({ route }: PrivateRouteProps): JSX.Element => { ); } - // ACT 11 - Navigate to /login when the user is not authenticated - return ( - <>{isAuthenticated ? { ...route } : } - ); + return
{isAuthenticated ? { ...route } : }
; }; export default PrivateRoute; diff --git a/apps/react-app/src/Router/Router.tsx b/apps/react-app/src/Router/Router.tsx index 5be94013..183003fb 100644 --- a/apps/react-app/src/Router/Router.tsx +++ b/apps/react-app/src/Router/Router.tsx @@ -21,7 +21,7 @@ const Router = createBrowserRouter([ }, { path: '*', - element: } /> + element: } />} /> } ]); diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index b17e05cb..08558c78 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -1,12 +1,10 @@ -import axios from "axios"; +import axios from 'axios'; const axiosInstance = axios.create(); -const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1ODA1MTQzLCJleHAiOjE3MTU4MDg3NDN9.hsVhN9KdKhGeKZi7-ti-bAkGPS1vahx-qnCrpWMg0Bg"; -// ACT 11 - Get the token from localStorage +const token = localStorage.getItem('apiToken'); axiosInstance.interceptors.request.use((config) => { - config.baseURL = "https://test.neuraac.com/api"; + config.baseURL = 'https://test.neuraac.com/api'; config.headers.Authorization = `Bearer ${token}`; config.signal = AbortSignal.timeout(5000); return config; diff --git a/apps/react-app/src/api/endpoints/auth.ts b/apps/react-app/src/api/endpoints/auth.ts index 8fe82a11..bbad2482 100644 --- a/apps/react-app/src/api/endpoints/auth.ts +++ b/apps/react-app/src/api/endpoints/auth.ts @@ -1,7 +1,7 @@ -import { AxiosError, AxiosResponse } from "axios"; +import { AxiosError, AxiosResponse } from 'axios'; -import axios from "../axios"; -import { User, AuthResponse, AuthLoginResponse, NewUser } from "../../types"; +import axios from '../axios'; +import { User, AuthResponse, AuthLoginResponse, NewUser } from '../../types'; export const createUser = async ({ newUser, @@ -17,8 +17,8 @@ export const createUser = async ({ onLoading && onLoading(true); await axios({ - method: "post", - url: `/auth/register`, + method: 'post', + url: '/auth/register', data: newUser, }) .then((response: AxiosResponse) => { @@ -46,15 +46,15 @@ export const login = async ({ onLoading && onLoading(true); await axios({ - method: "post", - url: `/auth/login`, + method: 'post', + url: '/auth/login', data: user, }) .then((response: AxiosResponse) => { const data: AuthLoginResponse = response.data; if (response.status === 200 && onSuccess) { const token = data.accessToken; - localStorage.setItem("apiToken", token); + localStorage.setItem('apiToken', token); onSuccess(data); } }) @@ -77,13 +77,13 @@ export const logout = async ({ onLoading && onLoading(true); await axios({ - url: `/auth/logout`, - method: "post", + url: '/auth/logout', + method: 'post', }) .then((response: AxiosResponse) => { const data: AuthResponse = response.data; if (response.status === 200 && onSuccess) { - localStorage.removeItem("apiToken"); + localStorage.removeItem('apiToken'); onSuccess(data); } }) @@ -106,8 +106,8 @@ export const refreshToken = async ({ onLoading && onLoading(true); await axios({ - url: `/auth/refresh`, - method: "post", + url: '/auth/refresh', + method: 'post', }) .then((response: AxiosResponse) => { const data: AuthResponse = response.data; diff --git a/apps/react-app/src/components/NavBar/NavBar.tsx b/apps/react-app/src/components/NavBar/NavBar.tsx index aa8c2fe8..3a7becb4 100644 --- a/apps/react-app/src/components/NavBar/NavBar.tsx +++ b/apps/react-app/src/components/NavBar/NavBar.tsx @@ -1,10 +1,65 @@ -import React from 'react'; -import Grid from '@mui/material/Grid'; +import React, { useContext } from 'react'; import { NavLink } from 'react-router-dom'; -import { Box, Typography } from '@mui/material'; import TravelExploreIcon from '@mui/icons-material/TravelExplore'; +import { Box, Button, Typography } from '@mui/material'; +import Grid from '@mui/material/Grid'; + +import { AuthContext } from '../../context'; +import { SnackbarContext } from '../../context/SnackbarProvider'; +import { logout } from '../../api/endpoints/auth'; export default function NavBar(): React.JSX.Element { + const { createAlert } = useContext(SnackbarContext); + const { isAuthenticated } = useContext(AuthContext); + + const loginLink = ( + ({ + gap: '16px', + display: 'flex', + alignItems: 'center', + borderRadius: '10px', + backgroundColor: isActive ? '#307ecc' : 'transparent', + padding: '0.5em', + textDecoration: 'none', + color: 'white' + })} + > + Login + + ); + + const logoutLink = ( + + ); + return ( ({ - textDecoration: 'none', - color: 'white', - display: 'flex', gap: '16px', - alignItems: 'center', - padding: '0.5em', - borderRadius: '10px', - backgroundColor: isActive ? '#307ecc' : 'transparent' - })} - > - Categories - - ({ - textDecoration: 'none', - color: 'white', display: 'flex', - gap: '16px', alignItems: 'center', - padding: '0.5em', borderRadius: '10px', - backgroundColor: isActive ? '#307ecc' : 'transparent' + padding: '0.5em', + backgroundColor: isActive ? '#307ecc' : 'transparent', + textDecoration: 'none', + color: 'white' })} > - Login + Categories + {isAuthenticated ? logoutLink : loginLink} ); diff --git a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx index a3a2950e..dc6db443 100644 --- a/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx +++ b/apps/react-app/src/components/Page/LoginPage/LoginPage.tsx @@ -1,9 +1,10 @@ import { useContext, useState } from 'react'; -import { SnackbarContext } from '../../../context/SnackbarProvider'; -import { FieldValues, useForm } from 'react-hook-form'; +import { useForm } from 'react-hook-form'; import { Button, Card, CardActions, CardContent, Grid, TextField, Typography } from '@mui/material'; import { PageContainer } from './LoginPage.styles'; +import { createUser, login } from '../../../api/endpoints/auth'; +import { SnackbarContext } from '../../../context/SnackbarProvider'; import { NewUser } from '../../../types'; const LoginPage = () => { @@ -12,29 +13,32 @@ const LoginPage = () => { const { createAlert } = useContext(SnackbarContext); const { register, handleSubmit } = useForm(); - const onSubmit = (data: FieldValues) => { - const isUser = localStorage.getItem(username) ? true : false; - - if (isUser) { - const userData = JSON.parse(localStorage.getItem(username) || ''); - if (userData.password === password) { + const onSubmit = () => { + login({ + user: { username, password }, + onSuccess: () => { + const { protocol, host } = window.location; + const signInUrl = `${protocol}//${host}/`; + if (window.location.href !== signInUrl) { + window.location.assign(signInUrl); + } createAlert('You are successfully logged in!', 'success'); - } else { + }, + onError: () => { createAlert('Email or password is not matching with our record.', 'error'); } - } else { - createAlert('Email or password is not matching with our record.', 'error'); - } + }); }; const handleSignUp = ({ username, password }: NewUser) => { - localStorage.setItem( - username, - JSON.stringify({ - username: username, - password: password - }) - ); + createUser({ + newUser: { + username, + password, + firstName: 'John', + lastName: 'Smith' + } + }); createAlert('User successfully signed up!', 'success'); }; @@ -48,13 +52,6 @@ const LoginPage = () => { console.log(password); } - // ACT 11 - After the login is successful, use the following to direct the user to the home page: - // const { protocol, host } = window.location; - // const signInUrl = `${protocol}//${host}/`; - // if (window.location.href !== signInUrl) { - // window.location.assign(signInUrl); - // } - return ( @@ -89,7 +86,7 @@ const LoginPage = () => { variant="outlined" onClick={(e) => { e.stopPropagation(); - handleSignUp({ firstname: 'John', lastname: 'Smith', username: username, password: password }); + handleSignUp({ firstName: 'John', lastName: 'Smith', username: username, password: password }); }} > SIGN UP diff --git a/apps/react-app/src/context/AuthProvider.tsx b/apps/react-app/src/context/AuthProvider.tsx index 32df0424..48464efa 100644 --- a/apps/react-app/src/context/AuthProvider.tsx +++ b/apps/react-app/src/context/AuthProvider.tsx @@ -1,5 +1,5 @@ -import axios, { AxiosResponse } from "axios"; -import React, { createContext, useCallback, useState } from "react"; +import axios, { AxiosResponse } from 'axios'; +import React, { createContext, useCallback, useState } from 'react'; interface AuthContextProps { authLoading: boolean; @@ -10,30 +10,26 @@ interface AuthContextProps { export const AuthContext = createContext({ authLoading: false, isAuthenticated: null, - validateToken: () => {}, + validateToken: () => {} }); interface AuthProviderProps { children: React.JSX.Element; } -export function AuthProvider({ - children, -}: AuthProviderProps): React.JSX.Element { +export function AuthProvider({ children }: AuthProviderProps): React.JSX.Element { const [authLoading, setAuthLoading] = useState(false); const [isAuthenticated, setIsAuthenticated] = useState(null); const validateToken = useCallback(async () => { - const token = - "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1ODA1MTQzLCJleHAiOjE3MTU4MDg3NDN9.hsVhN9KdKhGeKZi7-ti-bAkGPS1vahx-qnCrpWMg0Bg"; - // ACT 11 - Get the token from localStorage + const token = localStorage.getItem('apiToken'); const onLoading = (isLoading: boolean) => setAuthLoading(isLoading); onLoading(true); await axios({ - url: "https://test.neuraac.com/api/posts", - method: "get", - headers: { Authorization: `Bearer ${token}` }, + url: 'https://test.neuraac.com/api/posts', + method: 'get', + headers: { Authorization: `Bearer ${token}` } }) .then((response: AxiosResponse) => { if (response.status === 200) { @@ -44,11 +40,5 @@ export function AuthProvider({ .finally(() => onLoading(false)); }, []); - return ( - - {children} - - ); + return {children}; }

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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 3b3b6d8b..79966cd6 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,14 +1,16 @@ import { RouterProvider } from "react-router-dom"; -import Router from "./components/Router"; -import { PostProvider } from "./context"; +import Router from "./Router"; +import { AuthProvider, PostProvider } from "./context"; function App() { return ( - // Activity 7 - Render SnackbarProvider - - - + + {/* ACT 7 - Rneder SnackbarProvider component */} + + + + ); } diff --git a/apps/react-app/src/Router/PrivateRoute.tsx b/apps/react-app/src/Router/PrivateRoute.tsx new file mode 100644 index 00000000..a27eabaa --- /dev/null +++ b/apps/react-app/src/Router/PrivateRoute.tsx @@ -0,0 +1,37 @@ +import { useContext, useEffect } from "react"; +import { Navigate } from "react-router-dom"; +import { Grid } from "@mui/material"; + +import { AuthContext } from "../context"; +import Loading from "../components/Loading"; + +interface PrivateRouteProps { + route: React.JSX.Element; +} + +const PrivateRoute = ({ route }: PrivateRouteProps): JSX.Element => { + const { authLoading, isAuthenticated, validateToken } = + useContext(AuthContext); + + useEffect(() => { + const initialize = async () => { + await validateToken(); + }; + initialize(); + }, [validateToken]); + + if (isAuthenticated === null || authLoading === null || authLoading) { + return ( + + + + ); + } + + // ACT 11 - Navigate to /login when the user is not authenticated + return ( + <>{isAuthenticated ? { ...route } : } + ); +}; + +export default PrivateRoute; diff --git a/apps/react-app/src/Router/Router.tsx b/apps/react-app/src/Router/Router.tsx new file mode 100644 index 00000000..abfb3fac --- /dev/null +++ b/apps/react-app/src/Router/Router.tsx @@ -0,0 +1,16 @@ +import { createBrowserRouter } from "react-router-dom"; +import Page, { HomePage } from "../components/Page"; +import PrivateRoute from "./PrivateRoute"; + +const Router = createBrowserRouter([ + { + path: "/", + element: } />} />, + }, + // ACT 10 - Render PostPage component inside a private route and mark postID as a params + // ACT 10 - Render CategoriesPage component inside a private route + // ACT 10 - Render LoginPage component inside a private route + // ACT 10 - Render NotFoundPage component for undefined routes +]); + +export default Router; diff --git a/apps/react-app/src/components/Router/index.ts b/apps/react-app/src/Router/index.ts similarity index 100% rename from apps/react-app/src/components/Router/index.ts rename to apps/react-app/src/Router/index.ts diff --git a/apps/react-app/src/api/axios.ts b/apps/react-app/src/api/axios.ts index 2946fd6a..b17e05cb 100644 --- a/apps/react-app/src/api/axios.ts +++ b/apps/react-app/src/api/axios.ts @@ -1,9 +1,14 @@ import axios from "axios"; const axiosInstance = axios.create(); +const token = + "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhdmlkQG91dGxvb2suY29tIiwiaWF0IjoxNzE1ODA1MTQzLCJleHAiOjE3MTU4MDg3NDN9.hsVhN9KdKhGeKZi7-ti-bAkGPS1vahx-qnCrpWMg0Bg"; +// ACT 11 - Get the token from localStorage axiosInstance.interceptors.request.use((config) => { - config.baseURL = "http://localhost:3000/posts"; + config.baseURL = "https://test.neuraac.com/api"; + config.headers.Authorization = `Bearer ${token}`; + config.signal = AbortSignal.timeout(5000); return config; }); diff --git a/apps/react-app/src/api/endpoints/auth.ts b/apps/react-app/src/api/endpoints/auth.ts new file mode 100644 index 00000000..8fe82a11 --- /dev/null +++ b/apps/react-app/src/api/endpoints/auth.ts @@ -0,0 +1,121 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { User, AuthResponse, AuthLoginResponse, NewUser } from "../../types"; + +export const createUser = async ({ + newUser, + onSuccess, + onError, + onLoading, +}: { + newUser: NewUser; + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/register`, + data: newUser, + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const login = async ({ + user, + onSuccess, + onError, + onLoading, +}: { + user: User; + onSuccess?: (data: AuthLoginResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/auth/login`, + data: user, + }) + .then((response: AxiosResponse) => { + const data: AuthLoginResponse = response.data; + if (response.status === 200 && onSuccess) { + const token = data.accessToken; + localStorage.setItem("apiToken", token); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const logout = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/logout`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) { + localStorage.removeItem("apiToken"); + onSuccess(data); + } + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const refreshToken = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: AuthResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/auth/refresh`, + method: "post", + }) + .then((response: AxiosResponse) => { + const data: AuthResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/categories.ts b/apps/react-app/src/api/endpoints/categories.ts new file mode 100644 index 00000000..c934caf4 --- /dev/null +++ b/apps/react-app/src/api/endpoints/categories.ts @@ -0,0 +1,36 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { + // Category, + CategoriesResponse, + // NewCategory +} from "../../types"; + +export const getCategories = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: CategoriesResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/categories", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: CategoriesResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +// ACT 9 - Create callbacks fuctions to call create, update and delete endpoints diff --git a/apps/react-app/src/api/endpoints/comments.ts b/apps/react-app/src/api/endpoints/comments.ts new file mode 100644 index 00000000..218636cd --- /dev/null +++ b/apps/react-app/src/api/endpoints/comments.ts @@ -0,0 +1,35 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { NewComment, CommentResponse } from "../../types"; + +export const createComment = async ({ + postID, + newComment, + onSuccess, + onError, + onLoading, +}: { + postID: string; + newComment: NewComment; + onSuccess?: (data: CommentResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts/${postID}/comments`, + data: newComment, + }) + .then((response: AxiosResponse) => { + const data: CommentResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/endpoints/index.ts b/apps/react-app/src/api/endpoints/index.ts new file mode 100644 index 00000000..efbe5817 --- /dev/null +++ b/apps/react-app/src/api/endpoints/index.ts @@ -0,0 +1,4 @@ +export * from "./categories"; +export * from "./comments"; +export * from "./posts"; +export * from "./auth"; diff --git a/apps/react-app/src/api/endpoints/posts.ts b/apps/react-app/src/api/endpoints/posts.ts new file mode 100644 index 00000000..574451d8 --- /dev/null +++ b/apps/react-app/src/api/endpoints/posts.ts @@ -0,0 +1,173 @@ +import { AxiosError, AxiosResponse } from "axios"; + +import axios from "../axios"; +import { PostsResponse, PostResponse, NewPost } from "../../types"; + +export const getPosts = async ({ + onSuccess, + onError, + onLoading, +}: { + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: "/posts", + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPostsByCategory = async ({ + selectedCategoryID, + onSuccess, + onError, + onLoading, +}: { + selectedCategoryID: string; + onSuccess?: (data: PostsResponse[]) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/category/${selectedCategoryID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostsResponse[] = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const getPost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: (data: PostResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "get", + }) + .then((response: AxiosResponse) => { + const data: PostResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const createPost = async ({ + newPost, + onSuccess, + onError, + onLoading, +}: { + newPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + method: "post", + url: `/posts`, + data: newPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 201 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const updatePost = async ({ + postID, + updatedPost, + onSuccess, + onError, + onLoading, +}: { + postID: string; + updatedPost: NewPost; + onSuccess?: (data: PostsResponse) => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "patch", + data: updatedPost, + }) + .then((response: AxiosResponse) => { + const data: PostsResponse = response.data; + if (response.status === 200 && onSuccess) onSuccess(data); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; + +export const deletePost = async ({ + postID, + onSuccess, + onError, + onLoading, +}: { + postID: string; + onSuccess?: () => void; + onError?: (error: AxiosError) => void; + onLoading?: (isLoading: boolean) => void; +}) => { + onLoading && onLoading(true); + + await axios({ + url: `/posts/${postID}`, + method: "delete", + }) + .then((response: AxiosResponse) => { + if (response.status === 204 && onSuccess) onSuccess(); + }) + .catch((error: AxiosError) => { + console.error(`${error}`); + onError && onError(error); + }) + .finally(() => onLoading && onLoading(false)); +}; diff --git a/apps/react-app/src/api/index.ts b/apps/react-app/src/api/index.ts new file mode 100644 index 00000000..c9cd5154 --- /dev/null +++ b/apps/react-app/src/api/index.ts @@ -0,0 +1 @@ +export * from "./endpoints" \ No newline at end of file diff --git a/apps/react-app/src/common/utils/getErrorMessage.tsx b/apps/react-app/src/common/utils/getErrorMessage.tsx new file mode 100644 index 00000000..d2b53bb6 --- /dev/null +++ b/apps/react-app/src/common/utils/getErrorMessage.tsx @@ -0,0 +1,8 @@ +export const errorMessage = (type: string | undefined) => { + let error: string = ""; + if (type === "required") error = "This field is required"; + if (type === "minLength") error = "Please, write more than 10 characters"; + if (type === "maxLength") error = "Comment cannot exceed 20 characters"; + return

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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7042ef43..08d5604b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,40 @@ +import { HomePage } from "./components/Page"; +import NavBar from "./components/NavBar"; +import { PostProvider } from "./context"; import { Grid } from "@mui/material"; -import { PostProvider } from "./context" -import Header from "./components/Header"; -import HomePage from "./components/HomePage"; -import PostPage from "./components/PostPage"; - function App() { + const page: string = "HomePage"; return ( - // Activity 7 - Render SnackbarProvider + // ACT 7 - Rneder SnackbarProvider component + <> -

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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7a66ca05..08d5604b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,21 +1,39 @@ -import { Grid } from '@mui/material'; - -import { PostProvider } from './context'; -import Header from './components/Header'; -import HomePage from './components/HomePage'; -import PostPage from './components/PostPage'; +import { HomePage } from "./components/Page"; +import NavBar from "./components/NavBar"; +import { PostProvider } from "./context"; +import { Grid } from "@mui/material"; function App() { + const page: string = "HomePage"; return ( - // Activity 7 - Render SnackbarProvider + // ACT 7 - Rneder SnackbarProvider component - -

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%0D>h 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/assets/register-user.png b/apps/react-app/assets/register-user.png new file mode 100644 index 0000000000000000000000000000000000000000..6f5cc03460da6ea6310a7f3528cd8bbac1d49409 GIT binary patch literal 75569 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 literal 0 HcmV?d00001 diff --git a/apps/react-app/src/App.tsx b/apps/react-app/src/App.tsx index 7da4bd14..08d5604b 100644 --- a/apps/react-app/src/App.tsx +++ b/apps/react-app/src/App.tsx @@ -1,28 +1,40 @@ +import { HomePage } from "./components/Page"; +import NavBar from "./components/NavBar"; +import { PostProvider } from "./context"; import { Grid } from "@mui/material"; -import { PostProvider } from "./context" -import Header from "./components/Header"; -import HomePage from "./components/HomePage"; -import PostPage from "./components/PostPage"; - function App() { + const page: string = "HomePage"; return ( - // Activity 7 - Render SnackbarProvider - + // ACT 7 - Rneder SnackbarProvider component + + <> -