Skip to content

Commit

Permalink
feat: adding Pending Application
Browse files Browse the repository at this point in the history
  • Loading branch information
RastMustafa committed Aug 30, 2022
1 parent d97ab5a commit 092d04f
Show file tree
Hide file tree
Showing 9 changed files with 245 additions and 66 deletions.
12 changes: 12 additions & 0 deletions package-lock.json

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

Binary file added src/assets/face1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/face2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/assets/face3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
76 changes: 40 additions & 36 deletions src/components/AdminDashboardHeroSection/EditInfoForm.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,44 +14,42 @@ function EditInfoForm({ userId }) {
const [info, setInfo] = useState([]);
const [formValidation, setFormValidation] = useState(false);
const [notfication, setNotification] = useState(false);
const [eventImage, setEventImage] = useState(null) // for uploadig the photo
const [profileImage, setProfileImage] = useState(null) // for uploadig the photo
const [eventImage, setEventImage] = useState(null); // for uploadig the photo
const [profileImage, setProfileImage] = useState(null); // for uploadig the photo

// Upload Functions START:

function onInputChange1(e) {
// console.log(e.target.value);
// console.log(e.target.files);
setEventImage(e.target.files[0])
}
function onInputChange1(e) {
// console.log(e.target.value);
// console.log(e.target.files);
setEventImage(e.target.files[0]);
}
function onInputChange2(e) {
// console.log(e.target.value);
// console.log(e.target.files);
setProfileImage(e.target.files[0])
}

function handleSubmit(e) {
e.preventDefault();

const data = new FormData()

setProfileImage(e.target.files[0]);
}

data.append('file', eventImage)
data.append('file', profileImage)
alert('data', data)
function handleSubmit(e) {
e.preventDefault();

axios.post('//localhost:5000/upload', data)
.then((response)=> {
alert('Success') // he adds the toast here and below
const data = new FormData();

})
.catch((e) => {
alert('Error', e)
})
data.append("file", eventImage);
data.append("file", profileImage);
alert("data", data);

}
axios
.post("//localhost:5000/upload", data)
.then((response) => {
alert("Success"); // he adds the toast here and below
})
.catch((e) => {
alert("Error", e);
});
}

// END
// END

function handleChange(e) {
setInfo({ ...info, [e.target.name]: e.target.value });
Expand All @@ -73,7 +71,10 @@ function handleSubmit(e) {
return axios
.patch(
`https://reach-capstone.herokuapp.com/api/profile`,
newComment
newComment,
{
withCredentials: true,
}
)
.then(function (res) {
console.log(res);
Expand Down Expand Up @@ -182,8 +183,10 @@ function handleSubmit(e) {
Select the Event Photo
</label>
<input
accept="image/jpeg"
onChange={(e)=> onInputChange1(e)}
accept='image/jpeg'
onChange={(e) =>
onInputChange1(e)
}
className='text-gray-700 focus:shadow-outline w-full appearance-none rounded border py-2 px-3 leading-tight shadow focus:outline-none'
type='file'
placeholder=''
Expand All @@ -194,8 +197,10 @@ function handleSubmit(e) {
Select Profile Photo
</label>
<input
accept="image/jpeg"
onChange={(e)=> onInputChange2(e)}
accept='image/jpeg'
onChange={(e) =>
onInputChange2(e)
}
className='text-gray-700 focus:shadow-outline w-full appearance-none rounded border py-2 px-3 leading-tight shadow focus:outline-none'
type='file'
placeholder=''
Expand Down Expand Up @@ -316,9 +321,8 @@ function handleSubmit(e) {
minLength='50'
name='message'
onChange={(e) => {
handleChange(e)
}
}
handleChange(e);
}}
className='
form-control text-gray-700 border-gray-300 focus:text-gray-700 m-0 block w-full rounded border border-solid bg-white bg-clip-padding px-3 py-1.5 text-base font-normal transition
ease-in-out focus:border-blue-600 focus:bg-white focus:outline-none
Expand Down Expand Up @@ -348,7 +352,7 @@ function handleSubmit(e) {
setShowModal(false);
addComment.mutate(info);
setNotification(true);
handleSubmit(e)
handleSubmit(e);
}}
>
Save Changes
Expand Down
72 changes: 43 additions & 29 deletions src/components/SignIn/SignIn.jsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, { useState } from 'react';
import { Link, useNavigate} from "react-router-dom";
import React, { useState } from "react";
import { Link, useNavigate } from "react-router-dom";
import SigninPic from "../../assets/SigninPic.png";
import google from "../../assets/google.svg";
import facebook from "../../assets/facebook.svg";
Expand All @@ -10,16 +10,16 @@ import Logo from "../../assets/Logo.png";
import close from "../../assets/close-menu.svg";
import { useMutation } from "@tanstack/react-query";
import axios from "axios";
import Navbar from '../layout/Navbar/Navbar';
import { useEffect } from 'react';
import Navbar from "../layout/Navbar/Navbar";
import { useEffect } from "react";
function SignIn() {
const navigate = useNavigate();
const [name,setnamengo]=useState("");
const [volunteer,setnamevolunteer]=useState("");
const [name, setnamengo] = useState("");
const [volunteer, setnamevolunteer] = useState("");
const navigateHome = () => {
navigate('/');
};
navigate("/");
};

const [formData, setFormData] = useState({
email: "",
password: "",
Expand All @@ -41,47 +41,61 @@ function SignIn() {
event.preventDefault();
}
const GetNameEmail = useMutation(() => {
if(localStorage.getItem("userType") === "Ngo"){
axios.get(`https://reach-capstone.herokuapp.com/api/ngos/${localStorage.getItem("userId")}`).then(function (data) {
localStorage.setItem("userName", data.data.data.name)
localStorage.setItem("userEmail", data.data.data.email)
})
}
else if(localStorage.getItem("userType") === "Volunteer"){
axios.get(`https://reach-capstone.herokuapp.com/api/volunteers/${localStorage.getItem("userId")}`).then(function (data) {
localStorage.setItem("userName", data.data.data.name)
localStorage.setItem("userEmail", data.data.data.email)
})
if (localStorage.getItem("userType") === "Ngo") {
axios
.get(
`https://reach-capstone.herokuapp.com/api/ngos/${localStorage.getItem(
"userId"
)}`
)
.then(function (data) {
localStorage.setItem("userName", data.data.data.name);
localStorage.setItem("userEmail", data.data.data.email);
});
} else if (localStorage.getItem("userType") === "Volunteer") {
axios
.get(
`https://reach-capstone.herokuapp.com/api/volunteers/${localStorage.getItem(
"userId"
)}`
)
.then(function (data) {
localStorage.setItem("userName", data.data.data.name);
localStorage.setItem("userEmail", data.data.data.email);
});
}

});
const SendtoSignIn = useMutation((SignInData) => {
axios.post(
axios
.post(
`https://reach-capstone.herokuapp.com/api/auth/login`,
SignInData
SignInData,
{
withCredentials: true,
}
)
.then(function (res) {
console.log(res.data.data);
if (res.data.success) {
localStorage.setItem("userId", res.data.data._id);
localStorage.setItem("userType", res.data.data.type);
localStorage.setItem("NavType",true);
localStorage.setItem("NavType", true);
}
GetNameEmail.mutate();
navigateHome();
})
.catch(function (error) {
let isArray = Array.isArray(error.response.data.errors);
if (isArray) {
alert(error.response.data.errors[0].msg)
alert(error.response.data.errors[0].msg);
} else {
alert(error.response.data.error);
}
else{
alert(error.response.data.error);
};
});
});
return (
<div className=' bg-blue-dark'>
<Navbar />
<Navbar />
<div className='flex w-full content-center justify-evenly bg-blue-dark p-24'>
<img
src={SigninPic}
Expand Down
21 changes: 21 additions & 0 deletions src/components/layout/Navbar/Navbar.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { NavLink, Link } from "react-router-dom";
import { useTranslation } from "react-i18next";
import { HashLink } from "react-router-hash-link";
import { func } from "prop-types";
import PendingForm from "./PendingForm";

const LANG_SPECS = [
{
Expand All @@ -21,11 +22,13 @@ const LANG_SPECS = [
];
function Navbar() {
let NavType = localStorage.getItem("NavType");
let userId = localStorage.getItem("userId");
const [t, i18n] = useTranslation();
const [isHidden, setIsHidden] = useState(true);
const [lang, setlang] = useState(true);
const [Profile, setProfile] = useState(true);
const [showModal, setShowModal] = useState(NavType);
const [pendingApp, setPendingApp] = useState(false);
function setProfileType() {
if (localStorage.getItem("userType") === "Ngo") {
return "/ngo-admin";
Expand Down Expand Up @@ -91,6 +94,19 @@ function Navbar() {
Profile
</a>
</li>
{localStorage.getItem("userType") === "Ngo" ? (
<li>
<span
onClick={() => setPendingApp(true)}
className='block py-0.5 px-2 hover:bg-blue-dark'
>
Pending Application
<span className='ml-3 inline-block h-2 w-2 rounded-full bg-blue-dark'></span>
</span>
</li>
) : (
""
)}
<li>
<a
onClick={() => setSignOut()}
Expand Down Expand Up @@ -124,6 +140,11 @@ function Navbar() {
"transform transition duration-500 ease-in-out block h-0.5 w-5 transform bg-current transition duration-500 ease-in-out ";
return (
<div className='md:bg-blue-dark'>
<PendingForm
userId={userId}
pendingApp={pendingApp}
setPendingApp={setPendingApp}
/>
<nav className=' z-20 mx-auto items-center text-sm text-white md:flex md:h-16 md:w-9/12 md:justify-around md:bg-blue-dark '>
<div className='flex items-center justify-between '>
<Link to='/'>
Expand Down
Loading

0 comments on commit 092d04f

Please sign in to comment.