From d966b736a896d66e9d3fd65a5bc755f9919dad97 Mon Sep 17 00:00:00 2001 From: Rebekah Taylor Date: Mon, 20 Feb 2023 08:03:39 -0800 Subject: [PATCH] added more styling and links in pages --- PawPanion/client/package-lock.json | 2 +- PawPanion/client/package.json | 2 +- PawPanion/client/public/index.html | 1 + PawPanion/client/public/main.css | 3 + PawPanion/client/public/main.scss | 3 - PawPanion/client/public/paws-background.png | Bin 0 -> 49874 bytes PawPanion/client/src/components/Header.css | 9 + PawPanion/client/src/components/Header.js | 121 ++++++----- PawPanion/client/src/components/Login.js | 3 +- .../client/src/components/Pets/AddPet.css | 23 +++ .../client/src/components/Pets/AddPet.js | 191 +++++++++--------- .../client/src/components/Pets/DeletePet.js | 28 +-- .../client/src/components/Pets/EditPet.js | 36 ++-- .../src/components/Records/AddRecord.css | 23 +++ .../src/components/Records/AddRecord.js | 8 +- .../src/components/Records/RecordList.js | 27 +-- PawPanion/client/src/components/Register.js | 4 +- .../src/components/userViews/HomePage.css | 31 ++- .../src/components/userViews/HomePage.js | 4 +- .../src/components/userViews/OwnerHomePage.js | 144 +++++++------ .../src/components/userViews/VetHomePage.js | 8 +- 21 files changed, 400 insertions(+), 271 deletions(-) create mode 100644 PawPanion/client/public/main.css delete mode 100644 PawPanion/client/public/main.scss create mode 100644 PawPanion/client/public/paws-background.png create mode 100644 PawPanion/client/src/components/Header.css create mode 100644 PawPanion/client/src/components/Pets/AddPet.css create mode 100644 PawPanion/client/src/components/Records/AddRecord.css diff --git a/PawPanion/client/package-lock.json b/PawPanion/client/package-lock.json index 30622f5..d6282a8 100644 --- a/PawPanion/client/package-lock.json +++ b/PawPanion/client/package-lock.json @@ -31230,4 +31230,4 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" } } -} +} \ No newline at end of file diff --git a/PawPanion/client/package.json b/PawPanion/client/package.json index 53c0b50..dac809d 100644 --- a/PawPanion/client/package.json +++ b/PawPanion/client/package.json @@ -44,4 +44,4 @@ "last 1 safari version" ] } -} +} \ No newline at end of file diff --git a/PawPanion/client/public/index.html b/PawPanion/client/public/index.html index 20c301c..8b6d2b8 100644 --- a/PawPanion/client/public/index.html +++ b/PawPanion/client/public/index.html @@ -7,6 +7,7 @@ + diff --git a/PawPanion/client/public/main.css b/PawPanion/client/public/main.css new file mode 100644 index 0000000..cf1a4da --- /dev/null +++ b/PawPanion/client/public/main.css @@ -0,0 +1,3 @@ +/* #root { + display: flex; +} */ \ No newline at end of file diff --git a/PawPanion/client/public/main.scss b/PawPanion/client/public/main.scss deleted file mode 100644 index e4cd93f..0000000 --- a/PawPanion/client/public/main.scss +++ /dev/null @@ -1,3 +0,0 @@ -$primary: purple; - -@import "../node_modules/bootstrap/scss/bootstrap" \ No newline at end of file diff --git a/PawPanion/client/public/paws-background.png b/PawPanion/client/public/paws-background.png new file mode 100644 index 0000000000000000000000000000000000000000..82b0dac0f16c9b77b51dcd2332a5c01eda7b1a01 GIT binary patch literal 49874 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 literal 0 HcmV?d00001 diff --git a/PawPanion/client/src/components/Header.css b/PawPanion/client/src/components/Header.css new file mode 100644 index 0000000..40473ea --- /dev/null +++ b/PawPanion/client/src/components/Header.css @@ -0,0 +1,9 @@ +.userNav { + width: 250px; + margin-right: 100px; + background-color: white !important +} + +li { + list-style-type: none; +} \ No newline at end of file diff --git a/PawPanion/client/src/components/Header.js b/PawPanion/client/src/components/Header.js index c66e812..0912c62 100644 --- a/PawPanion/client/src/components/Header.js +++ b/PawPanion/client/src/components/Header.js @@ -13,6 +13,7 @@ import { } from 'reactstrap'; import { getCurrentUserByFirebaseId } from '../modules/userManager'; import { logout } from '../modules/authManager'; +import "./Header.css" export default function Header({ isLoggedIn }) { @@ -28,50 +29,78 @@ export default function Header({ isLoggedIn }) { }, [isLoggedIn]); return ( -
- - Pawpanion - - - - - - - -
+ + + Pawpanion + + + + + + + + ); -} \ No newline at end of file +} + + + + + + + + + +{/*
+
Pawpanion logo + + {isLoggedIn && + <> + + + } +
+
*/} \ No newline at end of file diff --git a/PawPanion/client/src/components/Login.js b/PawPanion/client/src/components/Login.js index f6693ce..9eecec1 100644 --- a/PawPanion/client/src/components/Login.js +++ b/PawPanion/client/src/components/Login.js @@ -2,6 +2,7 @@ import React, { useState } from "react"; import { Button, Form, FormGroup, Label, Input } from 'reactstrap'; import { useNavigate, Link } from "react-router-dom"; import { login } from "../modules/authManager"; +import "./Records/AddRecord.css" export default function Login() { const navigate = useNavigate(); @@ -17,7 +18,7 @@ export default function Login() { }; return ( -
+
diff --git a/PawPanion/client/src/components/Pets/AddPet.css b/PawPanion/client/src/components/Pets/AddPet.css new file mode 100644 index 0000000..1adcfe8 --- /dev/null +++ b/PawPanion/client/src/components/Pets/AddPet.css @@ -0,0 +1,23 @@ +.form-container { + border-radius: 20px; + background-color: white; + padding: 30px; + margin-left: 20px; + width: 40rem; +} + +.nav-extender { + height: 100%; +} + +.add-label { + font-family: 'Fredoka One', cursive; +} + +.field-input { + border: 2px solid blue; + border-radius: 10px; + margin: 6px 0 6px; + padding: 5px; + width: 20rem; +} \ No newline at end of file diff --git a/PawPanion/client/src/components/Pets/AddPet.js b/PawPanion/client/src/components/Pets/AddPet.js index e938232..80beb67 100644 --- a/PawPanion/client/src/components/Pets/AddPet.js +++ b/PawPanion/client/src/components/Pets/AddPet.js @@ -4,6 +4,7 @@ import firebase from "firebase/app"; import "firebase/auth"; import { getCurrentUserByFirebaseId } from "../../modules/userManager"; import { addPet } from "../../modules/petManager"; +import "./AddPet.css" export const AddPetForm = () => { const currentFirebaseUser = firebase.auth().currentUser.uid @@ -66,96 +67,104 @@ export const AddPetForm = () => { }; return ( - -

Add a Furry Friend

-
-
- - -
-
-
-
- - -
-
-
-
- - Yes -
-
-
-
- - -
-
-
-
- - Yes -
-
-
-
- - -
-
- - +
+
+

Add a Furry Friend

+
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+ + Yes +
+
+
+
+ +
+
+
+
+
+
+ + Yes +
+
+
+
+ +
+ +
+
+
+ +
+
); }; \ No newline at end of file diff --git a/PawPanion/client/src/components/Pets/DeletePet.js b/PawPanion/client/src/components/Pets/DeletePet.js index 442cf16..278d852 100644 --- a/PawPanion/client/src/components/Pets/DeletePet.js +++ b/PawPanion/client/src/components/Pets/DeletePet.js @@ -1,6 +1,7 @@ import { useEffect, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { getPetById, deletePet } from "../../modules/petManager"; +import "./AddPet.css" export const DeletePetPage = () => { const { petId } = useParams(); @@ -20,17 +21,20 @@ export const DeletePetPage = () => { } return ( - <> -

Delete {pet.name}

-

All records of {pet.name} will also be permanently deleted. This cannot be reversed.

- - - - +
+ +

Delete {pet.name}?

+
All records of {pet.name} will also be permanently deleted. This cannot be reversed.
+ +
+ +
+
) } diff --git a/PawPanion/client/src/components/Pets/EditPet.js b/PawPanion/client/src/components/Pets/EditPet.js index 5c73ed8..039ada8 100644 --- a/PawPanion/client/src/components/Pets/EditPet.js +++ b/PawPanion/client/src/components/Pets/EditPet.js @@ -1,6 +1,8 @@ import { useEffect, useState } from "react"; import { useNavigate, useParams } from "react-router-dom"; import { editPet, getPetById } from "../../modules/petManager"; +import { Button } from "reactstrap"; +import "./AddPet.css" export const EditPetForm = () => { const [pet, setPet] = useState([]) @@ -60,45 +62,53 @@ export const EditPetForm = () => { return ( <> -
-

Edit {pet.name}

+ + +

Edit {pet.name}

- + /> - + /> - + /> - + /> - + + - Return to HomePage
diff --git a/PawPanion/client/src/components/Records/AddRecord.css b/PawPanion/client/src/components/Records/AddRecord.css new file mode 100644 index 0000000..1adcfe8 --- /dev/null +++ b/PawPanion/client/src/components/Records/AddRecord.css @@ -0,0 +1,23 @@ +.form-container { + border-radius: 20px; + background-color: white; + padding: 30px; + margin-left: 20px; + width: 40rem; +} + +.nav-extender { + height: 100%; +} + +.add-label { + font-family: 'Fredoka One', cursive; +} + +.field-input { + border: 2px solid blue; + border-radius: 10px; + margin: 6px 0 6px; + padding: 5px; + width: 20rem; +} \ No newline at end of file diff --git a/PawPanion/client/src/components/Records/AddRecord.js b/PawPanion/client/src/components/Records/AddRecord.js index 63dd274..750b0e3 100644 --- a/PawPanion/client/src/components/Records/AddRecord.js +++ b/PawPanion/client/src/components/Records/AddRecord.js @@ -5,6 +5,7 @@ import "firebase/auth"; import { getCurrentUserByFirebaseId } from "../../modules/userManager"; import { addRecord } from "../../modules/recordManager"; import { getPetById } from "../../modules/petManager"; +import "./AddRecord.css" export const AddRecordForm = () => { const currentFirebaseUser = firebase.auth().currentUser.uid @@ -49,7 +50,7 @@ export const AddRecordForm = () => { vetInput.date ) { return addRecord(newRecord) - .then(() => navigate("/")); + .then(() => navigate(`/record/${petId}`)); } else { alert("Please complete the form"); } @@ -63,7 +64,7 @@ export const AddRecordForm = () => { }; return ( -
+

{pet.name} | Add Record

@@ -179,8 +180,9 @@ export const AddRecordForm = () => {
); diff --git a/PawPanion/client/src/components/Records/RecordList.js b/PawPanion/client/src/components/Records/RecordList.js index 0cd2cb8..12ce423 100644 --- a/PawPanion/client/src/components/Records/RecordList.js +++ b/PawPanion/client/src/components/Records/RecordList.js @@ -4,6 +4,7 @@ import firebase from "firebase/app"; import "firebase/auth"; import { getPetRecordsById } from "../../modules/recordManager"; import { getCurrentUserByFirebaseId } from "../../modules/userManager"; +import "../Pets/AddPet.css" export const RecordsByPetId = () => { const [records, setRecords] = useState([]) @@ -21,22 +22,22 @@ export const RecordsByPetId = () => { return ( <> - {user.isVet ?

+ Add New Record

: ""} -

return to Homepage

-

All Records

+ {user.isVet ?
: ""} +
return to Homepage
+

All Records

{records.map((record) => { return
-
+
-

Date: {record?.date}

-

Reason: {record?.recordType?.name}

-

Weight: {record?.weight} lbs

- {record?.medication ?

Medications: {record?.medication}

: ""} - {record?.illness ?

Illnesses: {record?.illness}

: ""} - {record?.diet ?

Dietary Notes: {record?.diet}

: ""} - {record?.note ?

Additional Info: {record?.note}

: ""} -

Seen by {record?.vet?.name}

- {user.isVet ?

Delete Record

: ""} +

Date: {record?.date}

+

Reason: {record?.recordType?.name}

+

Weight: {record?.weight} lbs

+ {record?.medication ?

Medications: {record?.medication}

: ""} + {record?.illness ?

Illnesses: {record?.illness}

: ""} + {record?.diet ?

Dietary Notes: {record?.diet}

: ""} + {record?.note ?

Additional Info: {record?.note}

: ""} +

Seen by {record?.vet?.name}

+ {user.isVet && record.vetId == user.id ?

Delete Record

: ""}
diff --git a/PawPanion/client/src/components/Register.js b/PawPanion/client/src/components/Register.js index 2a98bb2..deb4895 100644 --- a/PawPanion/client/src/components/Register.js +++ b/PawPanion/client/src/components/Register.js @@ -2,6 +2,7 @@ import React, { useState } from "react"; import { Button, Form, FormGroup, Label, Input } from 'reactstrap'; import { useNavigate } from "react-router-dom"; import { register } from "../modules/authManager"; +import "./Records/AddRecord.css" export default function Register() { const navigate = useNavigate(); @@ -31,7 +32,8 @@ export default function Register() { }; return ( -
+ + Return to Login
diff --git a/PawPanion/client/src/components/userViews/HomePage.css b/PawPanion/client/src/components/userViews/HomePage.css index a248508..800007a 100644 --- a/PawPanion/client/src/components/userViews/HomePage.css +++ b/PawPanion/client/src/components/userViews/HomePage.css @@ -1,7 +1,7 @@ @import url('https://fonts.googleapis.com/css2?family=Fredoka+One&display=swap'); body { - /* background-image: url("paper.gif"); */ + /* background-image: url("%PUBLIC_URL%/paws-background.png"); */ background-size: cover; background: linear-gradient(180deg, rgba(102, 153, 255, 1) 35%, rgba(42, 113, 255, 1) 100%) no-repeat center fixed !important; } @@ -10,37 +10,43 @@ body { color: rgb(255, 255, 255); padding: 1.5rem rem 0 0 3rem; margin-top: 3rem; - margin-left: 3.7rem; + margin-left: 26rem; font-family: 'Fredoka One', cursive; font-size: 2.5rem; letter-spacing: 1px; } -.homepage-labels { +.owner-homepage-labels { color: rgb(255, 255, 255); padding: 1.5rem rem 0 0 3rem; margin-top: 3rem; - margin-left: 3.7rem; + margin-left: 14rem; font-family: 'Fredoka One', cursive; font-size: 3rem; letter-spacing: 1px; } .vetHomeContainer { - margin: auto; - max-width: 900px; - border: black solid 2px; + margin-left: 10rem; + margin-top: 3rem; + max-width: 1100px; } .pet-container { - margin-left: 3rem !important; + margin-left: 14rem !important; margin-top: 1px !important; } -.pet-list-container { +.pet-fact-container { + margin-left: 21rem; +} + +.vet-pet-list-container { display: flex; + margin-top: 1rem; justify-content: space-between; padding: 0 8rem; + background-color: white; } .pet-list-container-owner { @@ -54,6 +60,13 @@ body { margin-left: 1.7rem; } +.card-left { + margin-left: 4rem; + margin-top: 1rem; + font-family: 'Fredoka One', cursive; + font-size: 22px; +} + .grow { transition: all .2s ease-in-out; diff --git a/PawPanion/client/src/components/userViews/HomePage.js b/PawPanion/client/src/components/userViews/HomePage.js index 401acbf..776babb 100644 --- a/PawPanion/client/src/components/userViews/HomePage.js +++ b/PawPanion/client/src/components/userViews/HomePage.js @@ -26,9 +26,9 @@ export const HomePage = () => { } return ( - + ); } \ No newline at end of file diff --git a/PawPanion/client/src/components/userViews/OwnerHomePage.js b/PawPanion/client/src/components/userViews/OwnerHomePage.js index 5af46bd..8acc05b 100644 --- a/PawPanion/client/src/components/userViews/OwnerHomePage.js +++ b/PawPanion/client/src/components/userViews/OwnerHomePage.js @@ -23,81 +23,79 @@ export const OwnerHomePage = () => { const randomFact = factGenerator() return (<> -
Did you know?
- {randomFact} -
Your Pets
-
- - {ownerPets.map((pet) => { - - const petRecord = records.find(record => record.petId === pet.id) - - //const petPic = pet.imageLocation - - - // if (!pet.imageLocation && pet.isDog) { - // petPic === //DEFAULT DOG PIC URL - // } else if (!pet.imageLocation && !pet.isDog) { - // petPic === //DEFAULT CAT PIC URL - // } else { - // petPic === pet.imageLocation - // } - - - - var petDate = pet.birthdate; - petDate = petDate.split('T')[0]; - - return (<> - - - - - {pet.name} - DOB: {petDate} - - {pet.breed} - - {petRecord?.weight ? `Weight: ${petRecord?.weight}` : ""} - - - {petRecord?.medication ? `Recent medication(s): ${petRecord?.medication}` : ""} - - - {petRecord?.illness ? `Recent conditions: ${petRecord?.illness}` : ""} - - - {petRecord?.diet ? `Diet plan: ${petRecord?.diet}` : ""} - - - {petRecord?.note ? `Most recent vet notes: +
+
Did you know?
+ {randomFact}
+
Your Pets
+
+ + {ownerPets.map((pet) => { + + const petRecord = records.find(record => record.petId === pet.id) + + + var petDate = pet.birthdate; + petDate = petDate.split('T')[0]; + + return (<> + + + + + {pet.name} + DOB: {petDate} + + {pet.breed} + + {petRecord?.weight ? `Weight: ${petRecord?.weight}` : ""} + + + {petRecord?.medication ? `Recent medication(s): ${petRecord?.medication}` : ""} + + + {petRecord?.illness ? `Recent conditions: ${petRecord?.illness}` : ""} + + + {petRecord?.diet ? `Diet plan: ${petRecord?.diet}` : ""} + + + {petRecord?.note ? `Most recent vet notes: ${petRecord?.note} Submitted on ${petRecord?.date}` : ""} - - - - - - - - - - ) - })} - -
+ add a pet
-
+ + + + + + + + + + ) + })} + +
+ + add a pet +
+
+
) } diff --git a/PawPanion/client/src/components/userViews/VetHomePage.js b/PawPanion/client/src/components/userViews/VetHomePage.js index 7aa75e7..fe487fe 100644 --- a/PawPanion/client/src/components/userViews/VetHomePage.js +++ b/PawPanion/client/src/components/userViews/VetHomePage.js @@ -1,6 +1,6 @@ import { getAllPets } from "../../modules/petManager"; import React, { useEffect, useState } from "react"; -import { useNavigate } from "react-router-dom"; +import { useNavigate, Link } from "react-router-dom"; import { Card, Button } from "reactstrap"; import "./HomePage.css" @@ -21,7 +21,10 @@ export const VetHomePage = () => {
{pets.map((pet) => { return ( -
+
{pet.owner.name}
{pet.owner.phone}
{pet.name} @@ -30,6 +33,7 @@ export const VetHomePage = () => {
) })} +
)