Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Herman/dropdown #25

Open
wants to merge 50 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
333e3d3
the cards are working
jakebayar Sep 23, 2023
d38c19f
Merge pull request #4 from wobbegong-NYOI7/main
k-villano Sep 23, 2023
fe67ea9
Merge branch 'dev' of github.com:wobbegong-NYOI7/tangerine into jake-…
jakebayar Sep 23, 2023
96bbf17
Merge pull request #5 from wobbegong-NYOI7/jake-homepage
jakebayar Sep 23, 2023
2e64d87
updated endpoints for proxy server
Sep 25, 2023
08eac4d
updated pakage json
Sep 25, 2023
44d908d
Merge pull request #6 from wobbegong-NYOI7/katya/routes
k-villano Sep 25, 2023
e831617
completed basic form structure
bhsauro Sep 25, 2023
0480c3f
merged with dev
bhsauro Sep 25, 2023
f313389
Merge pull request #7 from wobbegong-NYOI7/brooke/onboarding
bhsauro Sep 25, 2023
0b39f88
latest update with table and routes working
jakebayar Sep 25, 2023
ee584ea
Merge branch 'dev' into jake-homepage
jakebayar Sep 25, 2023
aaecd11
Home added app.js
jakebayar Sep 25, 2023
ce77f9c
Home added app.js
jakebayar Sep 25, 2023
421f0ad
Merge pull request #8 from wobbegong-NYOI7/jake-homepage
jakebayar Sep 25, 2023
8390d75
added state to form and implemented test post request
bhsauro Sep 25, 2023
bfd15e8
Merge branch 'dev' into brooke/onboarding
bhsauro Sep 25, 2023
5d22714
Merge pull request #9 from wobbegong-NYOI7/brooke/onboarding
bhsauro Sep 25, 2023
42ef000
package-lock
Sep 25, 2023
155e87f
updated add method to have start date
Sep 25, 2023
8666fe1
Merge pull request #12 from wobbegong-NYOI7/katya/routes
k-villano Sep 25, 2023
1022cda
built out form functionality and redirect to main page
bhsauro Sep 25, 2023
c8f84ef
Merge branch 'dev' into brooke/onboarding
bhsauro Sep 25, 2023
a4b85e0
Merge pull request #13 from wobbegong-NYOI7/brooke/onboarding
bhsauro Sep 25, 2023
e670e71
updated add function
Sep 25, 2023
7280547
Merge pull request #15 from wobbegong-NYOI7/katya/updateadd
k-villano Sep 25, 2023
5048037
added user login functionatily
Sep 25, 2023
709e074
Merge branch 'dev' into katya/login
Sep 25, 2023
144242b
Merge pull request #16 from wobbegong-NYOI7/katya/login
k-villano Sep 25, 2023
d6e7f1b
added signup and login components
Sep 25, 2023
530942c
Merge pull request #17 from wobbegong-NYOI7/katya/frontlogin
k-villano Sep 25, 2023
73b305b
reconfigured react router
bhsauro Sep 25, 2023
9a36b4e
Merge branch 'dev' into brooke/onboarding
bhsauro Sep 25, 2023
44f1367
Merge pull request #18 from wobbegong-NYOI7/brooke/onboarding
bhsauro Sep 25, 2023
3fd54f6
google create is working
jakebayar Sep 25, 2023
7ba2a27
latest
jakebayar Sep 25, 2023
1c5b231
Merge pull request #19 from wobbegong-NYOI7/jake-google
jakebayar Sep 25, 2023
c298a8a
added style and updated router
Sep 25, 2023
6677a5a
Merge branch 'dev' into katya/loginstyle
k-villano Sep 25, 2023
3c2e2a4
Merge pull request #20 from wobbegong-NYOI7/katya/loginstyle
k-villano Sep 25, 2023
0a2d984
added routing for login and signup pages
bhsauro Sep 25, 2023
fdbbbec
Merge branch 'dev' into brooke/onboarding
bhsauro Sep 25, 2023
bc30859
added new routing for login and signup
bhsauro Sep 25, 2023
3a61364
Merge pull request #21 from wobbegong-NYOI7/brooke/onboarding
bhsauro Sep 25, 2023
8c341c7
update
Sep 25, 2023
edbc4ce
Merge branch 'dev' into katya/fetchreq
Sep 25, 2023
3d13612
Merge pull request #23 from wobbegong-NYOI7/katya/fetchreq
k-villano Sep 25, 2023
9706bc9
dropdown menu working
HermanChen4 Sep 25, 2023
583c5c0
Merge branch 'dev' into herman/dropdown
HermanChen4 Sep 25, 2023
d698c5a
Delete client/google_secret.json
jakebayar Sep 26, 2023
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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -122,4 +122,6 @@ dist
# Stores VSCode versions used for testing VSCode extensions
.vscode-test

.DS_Store
.DS_Store
client/go-links-397501-bda619408b03.json
/Users/jambay/Documents/codesmith/week5/tangerine/client/go-links-397501-bda619408b03.json
35 changes: 28 additions & 7 deletions client/App.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,39 @@ import React from "react";
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';

import Header from './components/Header.jsx';
import Card from './components/Card.jsx';
import Onboarding from './pages/Onboarding.jsx'
import Home from "./pages/Home.jsx";
import Signup from "./components/Signup.jsx";
import Login from "./components/Login.jsx"

const App = () => {

return (
<>
<Header />
<Card title='test' />
<div>
hi is this from react
</div>
<Header />
</>

)
}

export default App;
export default App;


// const App = () => {
// return (
// // <Router>
// <>

// <Header />
// <div className="container">
// {/* <Home /> */}

// {/* <Routes>
// <Route path="/" element={<Home />} />
// <Route path="/onboard" element={<Onboarding />} />
// </Routes> */}

// </div>
// {/* </Router> */}

// </>
Binary file added client/assets/dropdown.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 client/assets/editProfile.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 client/assets/icon.jpg
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 client/assets/logOut.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 client/assets/myProfile.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 client/assets/settings.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 6 additions & 4 deletions client/components/Card.jsx
Original file line number Diff line number Diff line change
@@ -1,18 +1,20 @@
import React from "react";

import '../style.css';



export default function Card(props) {
const Card = (props) => {
return (
<div className="card">
<div className="card-header">
<h3 className="card-title">{props.title}</h3>
</div>
<div className="card-body">
{props.children}
{props.amount}
</div>
</div>
)

}
}

export default Card;
41 changes: 41 additions & 0 deletions client/components/Dashboard.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import React, { useEffect, useState } from "react";

import Card from "./Card.jsx";

const Dashboard = () => {

const [totalEmployees, setTotalEmployees] = useState(0);
const [totalFulltime, setTotalFulltime] = useState(0);
const [totalContractors, setTotalContractors] = useState(0);

useEffect(() => {
fetch("/api/table")
.then(response => response.json())
.then(data => {

setTotalEmployees(data.length);

setTotalFulltime(
data.filter(employee =>
employee.type === "full-time"
).length);

setTotalContractors(
data.filter(employee =>
employee.type === "contractor"
).length);
});
}, []);

return (
<>
<div className="card-container">
<Card title='Total Employee Count' amount={totalEmployees} />
<Card title='Full Time Employees' amount={totalFulltime} />
<Card title='Contractors' amount={totalContractors} />
</div>
</>
)
}

export default Dashboard;
33 changes: 33 additions & 0 deletions client/components/Dropdown.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
import React from "react";
import { useState } from "react";
import "../dropdown.css";
import icon from "../assets/icon.jpg";
import editProfile from "../assets/editProfile.png";
import logOut from "../assets/logOut.png";
import myProfile from "../assets/myProfile.png";
import settings from "../assets/settings.jpg";
import DropdownItem from "./DropdownItem.jsx";


const Dropdown = () => {
const [open, setOpen] = useState(false);
return (
<div className='menu-container'>
<div className='menu-trigger' onClick={()=> {setOpen(!open)}}>
<img src={icon}></img>
</div>

<div className={`dropdown-menu ${open? 'active' : 'inactive'}`}>
<h3>Profile</h3>
<ul className="box">
<DropdownItem img = {myProfile} text= {"My Profile"}/>
<DropdownItem img = {editProfile} text= {"Edit Profile"}/>
<DropdownItem img = {settings} text= {"Settings"}/>
<DropdownItem img = {logOut} text= {"Logout"}/>
</ul>
</div>
</div>
)
}

export default Dropdown;
14 changes: 14 additions & 0 deletions client/components/DropdownItem.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from "react";
import "../dropdown.css";

const DropdownItem = (props) => {
return (
<li className='dropdownItem'>
<img src={props.img}></img>
<a>{props.text}</a>
</li>
)
}


export default DropdownItem;
29 changes: 14 additions & 15 deletions client/components/Header.jsx
Original file line number Diff line number Diff line change
@@ -1,28 +1,27 @@
import React from "react";
import { Link } from "react-router-dom";
import { GiOrange } from "react-icons/gi";
import Dropdown from "./Dropdown.jsx";

import '../style.css';

const Header = () => {

return (
<header className='header'>
<div className="logo">
Tangerine
<Link to="/" className="logo">
<div >
<GiOrange /> Tangerine
</div>
</Link>
<div className="flex-center">
<Link to="/onboard" className="btn">
Create Onboard
</Link>
<Dropdown/>
</div>
<ul>
<li>
<button className="btn">
Create Onboarding
</button>
</li>
<li className='btn-circle profile-icon'>
Icon
</li>
</ul>
</header>
</header >
)
}



export default Header;
56 changes: 56 additions & 0 deletions client/components/Info.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
import React from "react";
import { useState } from "react";
import "../dropdown.css";
import dropdown from "../assets/dropdown.png";
import InfoItem from "./InfoItem.jsx";
import { useNavigate } from "react-router-dom";

const formatDate = (databaseDate) => {
const date = new Date(databaseDate);
return date.toISOString().split('T')[0];
}

const Info = (props) => {
const [open, setOpen] = useState(false);

const clickHandle = async () => {
try{
const res = await fetch(`/api/delete/${props.employee_id}`, {
method: 'DELETE'
})
props.getTableFunc()
}
catch (err) {
console.log('error deleting employee')
}
}

return (
<div className='info-container'>
<div className='info-trigger' onClick={()=> {setOpen(!open)}}>
<img src={dropdown}></img>
</div>

<div className={`info-menu ${open? 'active' : 'inactive'}`}>
<ul className="box">
<InfoItem desc= 'Salary:'text= {props.salary}/>
<InfoItem desc= 'Birthday:'text= {formatDate(props.birthday)}/>
<InfoItem desc= 'Email:'text= {props.email}/>
<InfoItem desc= 'Phone Number:'text= {props.phone_number}/>
<div className="flex-center">
<button className="button-style"
onClick={clickHandle}>
Offboard
</button>
<button className="button-style">
{/* onClick={() => console.log('hello')}> */}
Edit
</button>
</div>
</ul>
</div>
</div>
)
}

export default Info;
14 changes: 14 additions & 0 deletions client/components/InfoItem.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from "react";
import "../dropdown.css";

const InfoItem = (props) => {
return (
<li className='InfoItem'>
<a>{props.desc}</a>
<a>{props.text}</a>
</li>
)
}


export default InfoItem;
57 changes: 57 additions & 0 deletions client/components/Login.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
import React, { useEffect, useState } from "react";
import { useNavigate } from 'react-router-dom';


const Login = () => {
const [input, setInput] = useState(['', '']);
const navigate = useNavigate();

const onChangeHandler2 = (e) => {
console.log(e)
input[e.target.id] = e.target.value
setInput([...input])
}

const onClickHandler2 = async (e) => {

try {
e.preventDefault();
const res = await fetch('/api/login', {
method: 'POST',
headers: {
"content-type": "application/json"
},
body: JSON.stringify({
username: input[0],
password: input[1]
})
})
setInput(['', '']);

// navigate('/');

} catch (err) {
console.log('some error', err)
}
}

return (
<div className="signup">
<div className="quote">
<div className="innerquote">Log in for Speedy Employee Service</div>
</div>
<form className="signupform">
<label htmlFor='username'>username</label>
<input type='text'id= {0} className="signuptext" name='username' onChange={onChangeHandler2} value={input[0]}></input>
<label htmlFor='password'>password</label>
<input type='text'id= {1} className="signuptext" name='password' onChange={onChangeHandler2} value={input[1]}></input>
<div className="thebuttons">
<button onClick={onClickHandler2}>Login</button>
<button>Sign Up</button>
</div>
</form>
</div>
);
}

export default Login;
Loading