Skip to content
Merged
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 @@ -122,29 +122,14 @@

& p {
padding: 5px;
width: 80px;
width: 50px;
border-radius: 8px;
margin-left: 10px;
text-align: center;
transition: all 0.3s ease-in-out;
}
}

.igText {
display: flex;
flex-direction: column;
line-height: 1.2;
}

.igName {
font-weight: 600;
font-size: 0.9rem;
}

.igKarma {
font-size: 0.9rem;
}

.igs_add {
display: flex;
align-items: center;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,16 @@ type Props = {
};
const BasicDetails = (props: Props) => {
const [editIg, setEditIg] = useState(false);
const [allIg, setAllIg] = useState<any[]>([]);
const [ig, setIg] = useState<any[]>(props.userProfile.interest_groups);
const [allIg, setAllIg] = useState<any>([]);

const [ig, setIg] = useState<any>(props.userProfile.interest_groups);
const { id } = useParams<{ id: string }>();
useEffect(() => {
getAllIg(setAllIg);
}, []);
const ig_sorted = [...ig]
.filter((ig) => ig.selected)
.sort((a, b) => a.name.localeCompare(b.name));

const capitalize = (text = "") =>
text.charAt(0).toUpperCase() + text.slice(1);
const ig_sorted = ig.sort((a: any, b: any) => {
return a.name > b.name ? 1 : -1;
});

return (
<>
Expand Down Expand Up @@ -73,118 +70,106 @@ const BasicDetails = (props: Props) => {
</div>
</div>
<div className={styles.igs_container}>
{ig_sorted.length > 0 ? (
ig_sorted.map((data: any, i: number) => (
<div
key={i}
style={editIg ? { transform: "scale(0.955)" } : {}}
className={styles.igs}
>
{editIg && (
<i
onClick={() => {
if (ig_sorted.length > 1) {
setIg((prev) =>
prev.map((item) =>
item.name === data.name
? { ...item, selected: false }
: item
)
);
} else {
toast.error(
"You must have at least one interest group"
);
}
}}
className="fi fi-sr-circle-xmark"
></i>
)}
<div className={styles.igText}>
<span className={styles.igName}>{data.name}</span>
<span className={styles.igKarma}>
Karma:{" "}
{data.karma != null && data.karma > 1000
? (data.karma / 1000).toPrecision(2) + "K"
: data.karma ?? "0"}
</span>
{props.userProfile.interest_groups.length !== 0 ? (
ig.map((data: any, i: number) => {
return (
<div
style={
editIg
? {
transform: "scale(0.955)"
}
: {}
}
className={styles.igs}
key={i}
>
{editIg && (
<i
onClick={() => {
if (ig.length > 1) {
setIg(
ig.filter(
(ig: any) =>
ig.name !==
data.name
)
);
} else {
toast.error(
"You must have at least one interest group"
);
}
}}
className="fi fi-sr-circle-xmark"
></i>
)}
{data.name}
<p>
{data.karma !== null
? data.karma > 1000
? (
data.karma / 1000
).toPrecision(2) + "K"
: data.karma
? data.karma
: "0"
: "0"}
</p>
</div>
<p>
{capitalize(data.level.unit)}{" "}
{data.level.count}
</p>
</div>
))
);
})
) : (
<p>
No Interest Groups Selected, Must be level 4 or above to select
No Interest Groups to Selected, Must be level 4 or above to select
</p>
)}
{editIg && <hr />}
</div>
{editIg && (
<div className={styles.igs_container}>
{allIg
.filter(
(data: any) =>
!ig.some(
(item: any) =>
item.name === data.name && item.selected
)
)
.map((data: any, i: number) => (
<div key={i} className={styles.igs}>
<i
onClick={() => {
if (ig_sorted.length < 3) {
if (ig.some((item) => item.name === data.name)) {
setIg((prev) =>
prev.map((item) =>
item.name === data.name
? { ...item, selected: true }
: item
)
);
} else {
setIg((prev) => {
const exists = prev.some(
(item: any) => item.name === data.name
.filter((data: any) => {
return !ig.some(
(ig: any) => ig.name === data.name
);
})
.map((data: any, i: number) => {
return (
<div key={i} className={styles.igs}>
<i
onClick={() => {
{
ig.length < 3 &&
setIg(
(
prevState: any
) => [
...prevState,
data
]
);
if (exists) {
return prev.map((item: any) =>
item.name === data.name
? { ...item, selected: true }
: item
);
}
return [
...prev,
{ ...data, selected: true },
];
});
}
} else {
toast.error("You can only select up to 3 interest groups");
}
// editIgDetails(
// toast,
// [...ig, data].map(
// (ig: any) => {
// return ig.id;
// }
// )
// ).then(() => {
// // getIgDetails(
// // toast,
// // setIg
// // );
// });
}}
className="fi fi-sr-add"
></i>
{data.name}
</div>
))}
// editIgDetails(
// toast,
// [...ig, data].map(
// (ig: any) => {
// return ig.id;
// }
// )
// ).then(() => {
// // getIgDetails(
// // toast,
// // setIg
// // );
// });
}}
className="fi fi-sr-add"
></i>
{data.name}
</div>
);
})}
</div>
)}
</div>
Expand Down
2 changes: 1 addition & 1 deletion src/modules/Dashboard/modules/Profile/pages/Profile.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ const Profile = () => {
full_name: "",
college_code: "",
college_id: "",
interest_groups: [{ name: "", karma: 0, selected: true, level: { count: 0, unit: "level" } }],
interest_groups: [{ name: "", karma: 0 }],
karma_distribution: [{ task_type: "", karma: 0 }],
gender: "",
id: "",
Expand Down