Skip to content

Commit f214014

Browse files
authored
Merge pull request #7 from code-squads/Rohan
Verify with photo and landing page
2 parents d09abb8 + 6ad96c1 commit f214014

File tree

8 files changed

+443
-44
lines changed

8 files changed

+443
-44
lines changed

package-lock.json

Lines changed: 128 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,13 @@
1111
"dependencies": {
1212
"@emotion/react": "^11.10.6",
1313
"@emotion/styled": "^11.10.6",
14+
"@fortawesome/fontawesome-svg-core": "^6.4.0",
15+
"@fortawesome/free-solid-svg-icons": "^6.4.0",
16+
"@fortawesome/react-fontawesome": "^0.2.0",
1417
"@mui/material": "^5.11.15",
1518
"@mui/x-data-grid": "^6.0.4",
1619
"@mui/x-date-pickers": "^6.0.4",
20+
"aos": "^2.3.4",
1721
"axios": "^1.3.5",
1822
"cheerio": "^1.0.0-rc.12",
1923
"firebase": "^9.19.1",

public/assets/emptyUser.png

2.22 KB
Loading

src/components/ImageUploader.jsx

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
import React, { useState } from "react";
2+
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
3+
import { faImage } from "@fortawesome/free-solid-svg-icons";
4+
import Loader from "./loader";
5+
6+
const ImageUploader = () => {
7+
const [image, setImage] = useState(null);
8+
const [value, setValue] = useState(false);
9+
const [loading, setLoading] = useState(true);
10+
11+
const handleImageChange = (event) => {
12+
setImage(URL.createObjectURL(event.target.files[0]));
13+
};
14+
15+
// if(loading){
16+
// return <Loader></Loader>
17+
// }
18+
19+
return (
20+
<div className="flex flex-col items-center">
21+
<div className="relative mt-4 w-64 h-64">
22+
<input
23+
type="file"
24+
className="absolute inset-0 opacity-0 w-full h-full cursor-pointer"
25+
onChange={handleImageChange}
26+
/>
27+
{image ? (
28+
<img
29+
src={image}
30+
alt="Selected"
31+
className="w-full h-full object-cover"
32+
/>
33+
34+
) : (
35+
<div
36+
className="w-full h-full border-2 border-dashed border-[#DBE3EE] dark:border-gray-400 bg-[#F6F9FC] dark:bg-[#1F232D] rounded-lg flex justify-center items-center cursor-pointer"
37+
onClick={() => document.getElementById("imageUpload").click()}
38+
>
39+
<FontAwesomeIcon
40+
icon={faImage}
41+
size="3x"
42+
className="text-gray-400"
43+
/>
44+
</div>
45+
)}
46+
</div>
47+
<div className="mt-4">
48+
{image ? (
49+
<div>
50+
<div>
51+
{value ? (
52+
<div className=" border-2 border-dashed border-red-400 text-red-400 p-16 rounded-lg bg-[#F6F9FC] dark:bg-[#1F232D]">
53+
The employee has been flaged by other employeers earlier !!!
54+
</div>
55+
) : (
56+
<div className=" border-2 border-dashed border-green-500 text-green-500 p-16 rounded-lg bg-[#F6F9FC] dark:bg-[#1F232D] ">
57+
Woah! the employee has no previous flags and is to be hired
58+
</div>
59+
)}
60+
</div>
61+
</div>
62+
) : (
63+
<div>
64+
<div className=" border-2 border-dashed border-[#DBE3EE] dark:border-gray-400 p-16 rounded-lg bg-[#F6F9FC] dark:bg-[#1F232D] text-[#9BA3AF]">
65+
Upload an image to get the report about the employee
66+
</div>
67+
</div>
68+
)}
69+
</div>
70+
<button
71+
onClick={() => {
72+
setLoading(false);
73+
// console.log(value);
74+
}}
75+
>
76+
Change color
77+
</button>
78+
</div>
79+
);
80+
};
81+
82+
export default ImageUploader;

src/components/TagList.jsx

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
import { useState } from 'react';
2+
3+
const TagList = () => {
4+
const [tags, setTags] = useState([]);
5+
const [inputValue, setInputValue] = useState('');
6+
7+
const handleInputChange = (e) => {
8+
setInputValue(e.target.value);
9+
};
10+
11+
const handleInputKeyDown = (e) => {
12+
if (e.key === 'Enter' && inputValue !== '') {
13+
setTags([...tags, inputValue]);
14+
setInputValue('');
15+
} else if (e.key === 'Backspace' && inputValue === '') {
16+
setTags(tags.slice(0, -1));
17+
}
18+
};
19+
20+
const handleRemoveTag = (tagIndex) => {
21+
setTags(tags.filter((_, index) => index !== tagIndex));
22+
};
23+
24+
return (
25+
<div className="flex flex-wrap gap-2 w-1/4">
26+
27+
<input
28+
type="text"
29+
value={inputValue}
30+
onChange={handleInputChange}
31+
onKeyDown={handleInputKeyDown}
32+
placeholder='Enter the input tag'
33+
className="block w-full rounded-md border-0 py-1.5 pl-4 pr-20 text-gray-900 ring-1 ring-inset ring-gray-300"
34+
/>
35+
{tags.map((tag, index) => (
36+
<div
37+
key={index}
38+
className="flex items-center px-3 py-1 bg-slate-500 text-white rounded-md cursor-pointer"
39+
>
40+
<span className="mr-2">{tag}</span>
41+
<button
42+
className="text-sm font-bold text-white rounded-full "
43+
onClick={() => handleRemoveTag(index)}
44+
>
45+
&times;
46+
</button>
47+
</div>
48+
))}
49+
</div>
50+
);
51+
};
52+
53+
export default TagList;

0 commit comments

Comments
 (0)