Skip to content
Open

Post #15

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ function UserProfile() {
<UserInfo result={result} submitHandler={submitHandler} />

<button
className="mt-12 text-red-600 border-2 border-red-600 border-dashed rounded-lg h-9 w-36 ml-52"
className="mt-12 text-red-600 border-2 border-red-600 border-dashed rounded-lg h-9 w-36 ml-52"
onClick={deleteHandler}
>
Remove Account
Expand Down
89 changes: 74 additions & 15 deletions pages/Newsfeed.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,31 +3,90 @@ import axios from 'axios'
import FormForPost from './postComponents/FormForPost'
import PostElement from './postComponents/PostElement'
import { useAuth } from '../contexts/auth'
import { useState } from 'react'
import { useState, useEffect } from "react";
import Editpost from "./postComponents/Editpost";
export default function Newsfeed() {

const { tokens } = useAuth();
const [showform, setshowform] = useState(false);
const [itemupdate, setItemupdate] = useState("");
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);
}
)
}, []);
const handlesubmit = async (e) => {
e.preventDefault();
console.log(e.target.title.value);
let url = `http://127.0.0.1:8000/blood/add/`
let data = {
patient: "yahialabib",
title : e.target.title.value,
text : e.target.content.value,
patient: tokens.username,
title: e.target.title.value,
text: e.target.content.value,
publish: true
}
axios.post(url, data).then((res) => {
setResult(res.data);
setResult(result => [res.data, ...result]);
});
console.log(result);
}

const handledelete = async (item) => {
let url = `http://127.0.0.1:8000/blood/update-delete/${item.id}/`
axios.delete(url).then(()=>{
axios.get('http://127.0.0.1:8000/blood/show/').then((res) => {
setResult(res.data)
});
console.log(result);
})
}
const handleform = (item)=>{
// e.preventDefault()
setshowform(true)
setItemupdate(item)
// console.log(itemupdate);
}
const handleupdate = async (e) => {
e.preventDefault()
let url = `http://127.0.0.1:8000/blood/update-delete/${itemupdate.id}/`
let data = {
patient: itemupdate.patient,
title: e.target.bloodtype.value,
text: e.target.Content.value,
publish: true
}
axios.put(url, data).then(() => {
axios.get('http://127.0.0.1:8000/blood/show/').then((res) => {
setResult(res.data)
});
console.log(result);
})
setshowform(false)
}
return (
<div>
<FormForPost
handlesubmit={handlesubmit}
/>
<PostElement
/>
</div>
)
}

return (
<div>
{showform ?
<Editpost
handleupdate={handleupdate}
itemupdate ={itemupdate}
/>
:
<>
<FormForPost
handlesubmit={handlesubmit}
/>
<PostElement
result={result}
handledelete={handledelete}
handleform = {handleform}
showform = {showform}
/>
</>
}
</div>
)
}
18 changes: 18 additions & 0 deletions pages/Profile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react'
import axios from 'axios'
import UserProfile from './Donar_component/UserProfile'
import HospitalProfile from './Hospital_component/hospitalProfile'
import { useAuth } from '../contexts/auth'
import { useState } from 'react'
export default function Newsfeed() {
const { tokens } = useAuth()
return (
<>
{tokens &&
<div>
{tokens.Role == 'Hospital' ? <HospitalProfile/> : <UserProfile/>}
</div>
}
</>
)
}
11 changes: 1 addition & 10 deletions pages/home_compnenet/LoginForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,8 @@ export default function LoginForm() {
try{

await login(username, password)
if (tokens.Role == 'Doner' || tokens.Role == 'Patient'){
router.push({
pathname: '/Donar_component/userProfile',
});
}

if (tokens.Role == 'Hospital'){
router.push({
pathname: '/Hospital_component/hospitalProfile',
});
}


}
catch(error){
Expand Down
148 changes: 90 additions & 58 deletions pages/home_compnenet/Signupform.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,42 +2,57 @@ import React from "react";
import axios from "axios";
import { useState, useEffect } from "react";
import { TweenMax, Power3, TimelineLite, Expo, gsap } from "gsap";

import { useAuth } from "../../contexts/auth";
import Navbar from "./Navbar";
import { useRouter } from 'next/router';
export default function Signupform() {
const { login } = useAuth()
const router = useRouter()
const showsignhospital = () => {
gsap.to("#sectionsignuphospital", 1.5, { top: 0, ease: Power3.easeInOut });
};
const handlesubmitsignup = async (e) => {
let role = {
Doner: "donater",
Patient: "patient",
};
let data = new FormData();
e.preventDefault();
const url =' http://127.0.0.1:8000/'
const url = ' http://127.0.0.1:8000/'
let blood = {
blood_type:e.target.blood_type.value,
description : e.target.description.value
blood_type: e.target.blood_type.value,
description: e.target.description.value
}
const create_blood =await axios.post(`${url}blood/add/`, blood)

// console.log(e.target.role.value);
const bloodtt = await axios.post(`${url}blood/addtype/`, blood)

data.append("first_name", e.target.firstname.value);
data.append("username", e.target.username.value);
data.append("email", e.target.email.value);
data.append("password", e.target.password.value);
data.append("blood_type", create_blood.data.id);
data.append("roles", "Doner");
let urls = `${url}accounts/donater/signup/`;
const create = axios.post(urls, data, {
data.append("blood_type",bloodtt.data.id);
data.append("roles", e.target.role.value);

let urls = `${url}accounts/${role[e.target.role.value]}/signup/`;
const user = await axios.post(urls, data, {
headers: {
"content-type": "multipart/form-data",
},
});
console.log(create.data);
router.push({
pathname: '/Profile',
});
console.log(user);
await login(user.data.username, e.target.password.value)


};
return (
<>
<section id="sectionsignup">
<div className="container px-4 mx-auto" id="divsignup">
<div className="flex items-center content-center justify-center">
<div className="w-full px-4 mt-40 lg:w-6/12">
<div className="w-full px-4 mt-28 lg:w-6/12">
<div className="relative flex flex-col w-full min-w-0 mb-6 break-words border-0 rounded-lg shadow-lg bg-blueGray-200 frombakc">
<div className="flex-auto px-4 py-10 pt-0 lg:px-20">
<div className="mt-6 text-center">
Expand Down Expand Up @@ -83,19 +98,36 @@ export default function Signupform() {
/>
</div>
</div>
<div className="relative w-full mb-3">
<label
className="block mb-2 text-xs font-bold uppercase text-blueGray-600"
htmlFor="grid-password"
>
Email
</label>
<input
type="email"
name="email"
className="w-full h-10 px-3 py-3 text-sm transition-all duration-150 ease-linear bg-white border-0 rounded shadow placeholder-blueGray-300 text-blueGray-600 focus:outline-none focus:ring"
placeholder="Email"
/>
<div className="grid grid-cols-[1fr_1fr] gap-3">
<div className="relative w-full mb-3">
<label
className="block mb-2 text-xs font-bold uppercase text-blueGray-600"
htmlFor="grid-password"
>
Email
</label>
<input
type="email"
name="email"
className="w-full h-10 px-3 py-3 text-sm transition-all duration-150 ease-linear bg-white border-0 rounded shadow placeholder-blueGray-300 text-blueGray-600 focus:outline-none focus:ring"
placeholder="Email"
/>
</div>
<div className="relative w-full mb-3">
<label
className="block mb-2 text-xs font-bold uppercase text-blueGray-600"
htmlFor="grid-password"
>
Role
</label>
<select name="role" id="role"
className="w-full h-10 px-3 py-3 text-sm transition-all duration-150 ease-linear bg-white border-0 rounded shadow placeholder-blueGray-300 text-blueGray-600 focus:outline-none focus:ring"
>
<option value="Doner">Doner</option>
<option value="Patient">Patient</option>
</select>

</div>
</div>
<div className="grid grid-cols-[1fr_1fr] gap-3">
<div className="relative w-full mb-3">
Expand Down Expand Up @@ -128,39 +160,39 @@ export default function Signupform() {
</div>
</div>
<div className="grid grid-cols-[1fr_1fr] gap-3">
<div className="relative w-full mb-3">
<label
className="block mb-2 text-xs font-bold uppercase text-blueGray-600"
htmlFor="grid-password"
>
blood_type
</label>
<select
id="cars"
name="blood_type"
className="w-full h-10 px-3 py-3 text-sm transition-all duration-150 ease-linear bg-white border-0 rounded shadow placeholder-blueGray-300 text-blueGray-600 focus:outline-none focus:ring"
>
<option value="A+">A+</option>
<option value="A-">A-</option>
<option value="B+">B+</option>
<option value="B-">B-</option>
<option value="AB+">AB+</option>
<option value="AB-">AB-</option>
<option value="O+">O+</option>
<option value="O-">O-</option>
</select>
</div>
<div className="relative w-full mb-3">
<label
className="block mb-2 text-xs font-bold uppercase text-blueGray-600"
htmlFor="grid-password"
>
blood_type
</label>
<textarea name="description" rows="10" cols="30" className="w-full h-10 px-3 py-3 text-sm transition-all duration-150 ease-linear bg-white border-0 rounded shadow placeholder-blueGray-300 text-blueGray-600 focus:outline-none focus:ring">
No Comment
</textarea>
</div>
<div className="relative w-full mb-3">
<label
className="block mb-2 text-xs font-bold uppercase text-blueGray-600"
htmlFor="grid-password"
>
blood_type
</label>
<select
id="cars"
name="blood_type"
className="w-full h-10 px-3 py-3 text-sm transition-all duration-150 ease-linear bg-white border-0 rounded shadow placeholder-blueGray-300 text-blueGray-600 focus:outline-none focus:ring"
>
<option value="A+">A+</option>
<option value="A-">A-</option>
<option value="B+">B+</option>
<option value="B-">B-</option>
<option value="AB+">AB+</option>
<option value="AB-">AB-</option>
<option value="O+">O+</option>
<option value="O-">O-</option>
</select>
</div>
<div className="relative w-full mb-3">
<label
className="block mb-2 text-xs font-bold uppercase text-blueGray-600"
htmlFor="grid-password"
>
blood_type
</label>
<textarea name="description" rows="10" cols="30" className="w-full h-10 px-3 py-3 text-sm transition-all duration-150 ease-linear bg-white border-0 rounded shadow placeholder-blueGray-300 text-blueGray-600 focus:outline-none focus:ring">
No Comment
</textarea>
</div>
</div>
<div className="mt-6 text-center">
<button
Expand Down
8 changes: 4 additions & 4 deletions pages/index.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Head from 'next/head'
import Homa_page from './home_compnenet/Homa_page'
import HospitalProfile from './Hospital_component/hospitalProfile'
import UserProfile from './Donar_component/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'
Expand All @@ -12,9 +12,9 @@ export default function Home() {

return (
<>
{tokens ? <Newsfeed/> : <Homa_page/>}


<Newsfeed/>
{/* {<Homa_page/>} */}
{/* <Testfrom/> */}
</>
)
Expand Down
Loading