diff --git a/contexts/auth.js b/contexts/auth.js index a824654..c75e798 100644 --- a/contexts/auth.js +++ b/contexts/auth.js @@ -3,7 +3,7 @@ import jwt from 'jsonwebtoken'; import axios from 'axios' const baseUrl = "http://127.0.0.1:8000/" // const baseUrl = process.env.NEXT_PUBLIC_API_URL; -const tokenUrl = baseUrl + 'donater/auth/'; +const tokenUrl = baseUrl + 'accounts/donater/auth/'; const AuthContext = createContext(); @@ -21,7 +21,7 @@ export function AuthProvider(props) { login, logout, }); - + async function login(username, password) { const response = await axios.post(tokenUrl, { username, password }); @@ -30,15 +30,11 @@ export function AuthProvider(props) { const newState = { tokens: response.data, - // user: { - // username: response.data.username, - // id: decodedAccess.user_id - // }, } setState(prevState => ({ ...prevState, ...newState })); + } - function logout() { const newState = { tokens: null, diff --git a/package-lock.json b/package-lock.json index 5b6233e..e576d57 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,6 +5,7 @@ "packages": { "": { "dependencies": { + "@headlessui/react": "^1.4.2", "@heroicons/react": "^1.0.5", "@popperjs/core": "^2.11.0", "axios": "^0.24.0", @@ -634,6 +635,18 @@ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, + "node_modules/@headlessui/react": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.2.tgz", + "integrity": "sha512-N8tv7kLhg9qGKBkVdtg572BvKvWhmiudmeEpOCyNwzOsZHCXBtl8AazGikIfUS+vBoub20Fse3BjawXDVPPdug==", + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "react": "^16 || ^17 || ^18", + "react-dom": "^16 || ^17 || ^18" + } + }, "node_modules/@heroicons/react": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.5.tgz", @@ -5581,6 +5594,12 @@ "resolved": "https://registry.npmjs.org/@hapi/hoek/-/hoek-9.2.1.tgz", "integrity": "sha512-gfta+H8aziZsm8pZa0vj04KO6biEiisppNgA1kbJvFrrWu9Vm7eaUEy76DIxsuTaWvti5fkJVhllWc6ZTE+Mdw==" }, + "@headlessui/react": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.4.2.tgz", + "integrity": "sha512-N8tv7kLhg9qGKBkVdtg572BvKvWhmiudmeEpOCyNwzOsZHCXBtl8AazGikIfUS+vBoub20Fse3BjawXDVPPdug==", + "requires": {} + }, "@heroicons/react": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/@heroicons/react/-/react-1.0.5.tgz", diff --git a/package.json b/package.json index f521ed9..351d0a3 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "start": "next start" }, "dependencies": { + "@headlessui/react": "^1.4.2", "@heroicons/react": "^1.0.5", "@popperjs/core": "^2.11.0", "axios": "^0.24.0", diff --git a/pages/Donar_component/editForm.js b/pages/Donar_component/editForm.js new file mode 100644 index 0000000..ae6cc82 --- /dev/null +++ b/pages/Donar_component/editForm.js @@ -0,0 +1,238 @@ +import { useState } from "react"; +import axios from "axios"; +import { comment } from "postcss"; +import { Component } from "react/cjs/react.production.min"; +import { useAuth } from "../../contexts/auth"; + +export default function Example(props) { + const { tokens } = useAuth(); + let role = { + Doner: "donater", + Patient: "patient", + }; + const handlesubmit = async (e) => { + let data = new FormData(); + e.preventDefault(); + data.append("first_name", e.target.firstname.value); + data.append("username", e.target.username.value); + data.append("email", e.target.email.value); + data.append("image", e.target.img.files[0]); + data.append("phone_number", e.target.phone_number.value); + data.append("chronic_diseases", e.target.chronic_diseases.checked); + data.append("blood_type", props.result.blood_type); + if (tokens.Role == "Patient") { + data.append("reason", e.target.reason.value); + } + let url = `http://127.0.0.1:8000/accounts/${role[tokens.Role]}/${ + tokens.id + }/`; + + axios + .put(`http://127.0.0.1:8000/blood/update-blood/1/`, { + blood_type: e.target.bloodType.value, + }) + .then(() => { + axios + .put(url, data, { + headers: { + "content-type": "multipart/form-data", + }, + }) + .then((res) => { + console.log(res); + props.setResult(res.data); + }); + }); + + props.setEditForm(false); + }; + return ( + <> +
+
+
+
+
+
+
+
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ +
+ +
+
- +
- +
+
+ ) +} + +export default Example \ No newline at end of file diff --git a/pages/index.js b/pages/index.js index b345ad2..f8417fc 100644 --- a/pages/index.js +++ b/pages/index.js @@ -1,16 +1,22 @@ import Head from 'next/head' import Homa_page from './home_compnenet/Homa_page' -import HospitalProfile from './components/hospitalProfile' -import UserProfile from './components/userProfile' +import HospitalProfile from './Hospital_component/hospitalProfile' +import UserProfile from './Donar_component/userProfile' import { useEffect,useRef } from 'react' - - +import Testfrom from './TestForm' +import { useAuth } from '../contexts/auth' +import Newsfeed from './Newsfeed' +// import Header from './layout/Header' export default function Home() { - // const circleRef = useRef(null); + const {tokens} = useAuth() return ( <> - + {/*
*/} + {/* */} + {} + {/* */} + ) } diff --git a/pages/layout/Header2.js b/pages/layout/Header2.js new file mode 100644 index 0000000..d40f78c --- /dev/null +++ b/pages/layout/Header2.js @@ -0,0 +1,121 @@ +import { Fragment } from "react"; +import { Disclosure, Menu, Transition } from "@headlessui/react"; +import { BellIcon, MenuIcon, XIcon } from "@heroicons/react/outline"; +import { useState ,useEffect } from "react"; +import axios from "axios"; +import { useAuth } from "../../contexts/auth"; +import Link from "next/link"; + + +function classNames(...classes) { + return classes.filter(Boolean).join(" "); +} +export default function Example() { + const {tokens ,logout } = useAuth(); + let role = { + Doner: "donater", + Patient: "patient", + Hospital:"hospital" + }; + const [result, setResult] = useState([]); + useEffect(async () => { + await axios + .get(`http://127.0.0.1:8000/accounts/${role[tokens.Role]}/${tokens.id}`) + .then((data) => { + setResult(data.data); + console.log(result) + }); + }, []); + + return ( + + {({ open }) => ( + <> +
+
+
+
+ Workflow +
+
+

Life Share

+
+ +
+
+ {/* Profile dropdown */} + +
+ + Open user menu + + +
+ + + + {({ active }) => ( + // + + Your Profile + + // + )} + + + + {({ active }) => ( + // + + Sign out + + // + + )} + + + +
+
+
+
+ + )} +
+ ); +} diff --git a/pages/postComponents/FormForPost.js b/pages/postComponents/FormForPost.js new file mode 100644 index 0000000..dc69d4f --- /dev/null +++ b/pages/postComponents/FormForPost.js @@ -0,0 +1,45 @@ +import React from 'react' +import { SearchIcon } from '@heroicons/react/outline' + +export default function FormForPost(props) { + + + return ( + <> +
+
+
+ +
+
+
+
+ + +
+
+ + +
+ +
+ +
+ +
+
+ + + + + +
+ +
+
+
+ + ) +} \ No newline at end of file diff --git a/pages/postComponents/PostElement.js b/pages/postComponents/PostElement.js new file mode 100644 index 0000000..f0b2ab4 --- /dev/null +++ b/pages/postComponents/PostElement.js @@ -0,0 +1,60 @@ +import { Result } from "postcss"; +import React from "react"; +import axios from "axios"; +import { useState, useEffect } from "react"; + + +export default function PostElement() { + + const [result, setResult] = useState([]); + useEffect(async () => { + axios.get('http://127.0.0.1:8000/blood/show/').then((res) => { + setResult(res.data) + console.log(res.data); + } + ) + }, []); + + return( + + + result.map((item, idx) => { + + + return ( +
+
+
+ +
+
+ +
+

{item.patient}

+ {item.time} +
+
+ +
+

{item.title}

+

+ {item.text} +

+
+
+

AB+

+
+
+
+ +
+
+ + ); + }) +) +} \ No newline at end of file diff --git a/styles/hospitalProfile.css b/styles/hospitalProfile.css new file mode 100644 index 0000000..d96f582 --- /dev/null +++ b/styles/hospitalProfile.css @@ -0,0 +1,22 @@ +/* #hospital-form-table form{ + display: flex; + flex-direction: row; + align-content: center; + align-items: center; + justify-content: space-evenly; + width:75%; + margin: auto; +} +#hospital-form-table form div{ + width: 30%; + display: flex; + flex-direction: row; + align-content: center; + align-items: center; + justify-content: space-evenly; +} + +#hospital-form-table form input[type="text"]{ + border:none; + border-bottom: 1px solid gray; +} */ \ No newline at end of file diff --git a/styles/video.css b/styles/video.css index 99d21d5..484faaf 100644 --- a/styles/video.css +++ b/styles/video.css @@ -79,7 +79,7 @@ background-image: radial-gradient(#CE1212 , #810000,#1B1717); position: absolute; width: 100%; - height: 130vh; + height: 100vh; top: -10000px; overflow: hidden; } @@ -87,13 +87,13 @@ background-image: radial-gradient(#CE1212 , #810000,#1B1717); position: absolute; width: 100%; - height: 130vh; + height: 100vh; top: -10000px; overflow: hidden; } #divsignup{ width: 100%; - height: 130vh; + height: 100vh; background-image: url('https://www.save.life/site/themes/savelife/assets/images/features/connect.svg'); background-position: center; /* Center the image */ background-repeat: no-repeat; /* Do not repeat the image */