Skip to content

Commit 22cc4e6

Browse files
committed
Merge branch 'sudo' of github.com:mdgspace/activity-leaderboard into kitu
2 parents e47eca0 + f756b4d commit 22cc4e6

File tree

12 files changed

+123
-102
lines changed

12 files changed

+123
-102
lines changed

src/app/api/.gitkeep

Whitespace-only changes.

src/app/api/file.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@ export interface FileUpload {
77
statusCode: number;
88
}
99

10+
export interface IconNameRes{
11+
message: string
12+
}
1013
export const uploadIcon = async (
1114
authorizationToken: string,
1215
orgName: string,
@@ -53,3 +56,20 @@ export const deleteFile = async (
5356
});
5457
return respnse;
5558
};
59+
60+
61+
export const getIconName = async(
62+
authorizationToken: string,
63+
orgName: string
64+
): Promise<AxiosResponse<IconNameRes>>=>{
65+
const url= BACKEND_URL+'/api/protected/file/getIconName/'+orgName
66+
const response = await axios.get<IconNameRes>(url,
67+
{
68+
headers: {
69+
Accept: 'application/json',
70+
Authorization: `Bearer ${authorizationToken}`,
71+
},
72+
})
73+
return response
74+
75+
}

src/app/api/user.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export interface UserOrgDetails {
1313
[key: string]: {
1414
bookmark: string;
1515
role: string;
16-
archive: string;
16+
archeive: string;
1717
};
1818
}
1919

src/app/components/timeRangeSwitch/index.tsx

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,23 @@ interface Props {
1313
const TimeRangeSwitch: React.FC<Props> = ({ weekly, setWeekly }) => {
1414
// const dispatch = useDispatch();
1515
// const isWeekly = useSelector((state: timeRangeModel) => state.isWeekly.value);
16-
useEffect(() => {
17-
console.log(weekly);
18-
}, [weekly, setWeekly]);
16+
useEffect(()=>{
17+
console.log(weekly,"makki")
18+
},[weekly, setWeekly])
1919
return (
2020
<div className='timerange-cont'>
2121
<button
2222
onClick={() => setWeekly(true)}
23-
className={weekly ? 'active' : ''}
24-
// className={'active'}
23+
className={weekly ? 'active' :''}
24+
style={weekly?{}:{background:'transparent'}}
25+
2526
>
2627
Weekly{' '}
2728
</button>
2829
<button
2930
onClick={() => setWeekly(false)}
30-
className={weekly ? '' : 'active'}
31+
className={weekly ? '' :'active'}
32+
style={weekly?{background:'transparent'}:{}}
3133
>
3234
Monthly{' '}
3335
</button>

src/features/EditWorkspace/index.tsx

Lines changed: 6 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,10 @@ const EditWorkspace = () => {
5151
setUsers(users_aray);
5252
setOrgs(org_aray);
5353
}
54-
if (token && spaceName) {
55-
SetName(spaceName);
54+
if(token&&spaceName){
55+
SetName(spaceName)
56+
setUniqueName(true)
57+
setValidName(true)
5658
}
5759
if (token && spaceName) {
5860
const Org = await getOrg(token, spaceName);
@@ -105,33 +107,7 @@ const EditWorkspace = () => {
105107
}
106108
};
107109

108-
const addMembers = () => {
109-
if (memberName) {
110-
if (
111-
users.includes(memberName) &&
112-
memberName != userContext?.username &&
113-
!members.includes(memberName)
114-
) {
115-
setMembers([...members, memberName]);
116-
setMemberName(null);
117-
}
118-
}
119-
};
120-
121-
const removeMembers = (member: string) => {
122-
const indexToRemove = members.indexOf(member);
123110

124-
if (indexToRemove !== -1) {
125-
const updatedMembers = [
126-
...members.slice(0, indexToRemove),
127-
...members.slice(indexToRemove + 1),
128-
];
129-
130-
setMembers(updatedMembers);
131-
} else {
132-
console.warn(`Member "${member}" not found in the members array.`);
133-
}
134-
};
135111
const SubmitHandler = async (): Promise<void> => {
136112
if (
137113
description &&
@@ -142,6 +118,7 @@ const EditWorkspace = () => {
142118
uniqueName &&
143119
validDescription
144120
) {
121+
145122
const func = async (): Promise<void> => {
146123
const dataRes = await updateOrg(token, spaceName, {
147124
name: name,
@@ -163,6 +140,7 @@ const EditWorkspace = () => {
163140
error: <b>Could not save</b>,
164141
});
165142
} else {
143+
166144
toast.error('Invalid inputs');
167145
}
168146
};

src/features/project-members /components/MemberCard.tsx

Lines changed: 18 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -50,31 +50,24 @@ const MemberCard = ({
5050
}
5151
};
5252

53-
const HandleRoleChange = async (event: ChangeEvent<HTMLSelectElement>) => {
54-
const new_role = event.target.value;
55-
if (
56-
token &&
57-
spaceName &&
58-
orgMembers &&
59-
projectMembers &&
60-
new_role != role
61-
) {
62-
const func = async () => {
63-
console.log({ [name]: new_role });
64-
const res = await changeProjectMembersStatus(
65-
token,
66-
projectName,
67-
spaceName,
68-
{ [name]: new_role }
69-
);
70-
projectMembers[name] = new_role;
71-
setProjectMembers(projectMembers);
72-
};
73-
toast.promise(func(), {
74-
loading: 'Changing Role',
75-
success: <b>Role changed</b>,
76-
error: <b>Unable to change</b>,
77-
});
53+
const HandleRoleChange= async(event:ChangeEvent<HTMLSelectElement>)=>{
54+
55+
const new_role= event.target.value
56+
if(token&&spaceName&&orgMembers&&projectMembers&&new_role!=role){
57+
58+
59+
const func= async()=>{
60+
61+
const res= await changeProjectMembersStatus(token,projectName ,spaceName,{[name]:new_role})
62+
projectMembers[name]=new_role
63+
setProjectMembers(projectMembers)
64+
}
65+
toast.promise(func(), {
66+
loading: 'Changing Role',
67+
success: <b>Role changed</b>,
68+
error: <b>Unable to change</b>,
69+
});
70+
7871
}
7972
};
8073

src/features/workspace-members /components/BackNavigation.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { useNavigate } from 'react-router-dom';
22

33
const BackNavigation = () => {
4-
// const clickBack = () => {
5-
// console.log('Back button clicked');
6-
// };
7-
const navigate = useNavigate();
4+
5+
const navigate= useNavigate()
86
return (
97
<div className='back-title-container'>
108
<button className='button' onClick={() => navigate('/')}>

src/features/workspace-members /components/MemberCard.tsx

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,13 +40,22 @@ const MemberCard = ({
4040
}
4141
};
4242

43-
const HandleRoleChange = async (event: ChangeEvent<HTMLSelectElement>) => {
44-
const new_role = event.target.value;
45-
if (token && spaceName && orgMembers && new_role != role) {
46-
const func = async () => {
47-
console.log({ [name]: new_role });
48-
const res = await changeOrgMembersStatus(token, spaceName, {
49-
[name]: new_role,
43+
const HandleRoleChange= async(event:ChangeEvent<HTMLSelectElement>)=>{
44+
45+
const new_role= event.target.value
46+
if(token&&spaceName&&orgMembers&&new_role!=role){
47+
48+
49+
const func= async()=>{
50+
51+
const res= await changeOrgMembersStatus(token, spaceName,{[name]:new_role})
52+
orgMembers[name]=new_role
53+
setOrgMembers(orgMembers)
54+
55+
toast.promise(func(), {
56+
loading: 'Changing Role',
57+
success: <b>Role changed</b>,
58+
error: <b>Unable to change</b>,
5059
});
5160
orgMembers[name] = new_role;
5261
setOrgMembers(orgMembers);

src/features/workspace-view/index.tsx

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import loader from '../../app/assets/gifs/loader.gif';
99
import { Navigate, useNavigate } from 'react-router-dom';
1010
import { useSelector } from 'react-redux';
1111
import FirstVisit from 'app/components/firstVisit';
12+
import toast from 'react-hot-toast';
1213

1314
const WorkspaceView = () => {
1415
const userContext = useContext(UserContext);
@@ -42,40 +43,54 @@ const WorkspaceView = () => {
4243
searchValue,
4344
]);
4445

46+
const LogoutHandler= async()=>{
47+
try{
48+
localStorage.removeItem('token')
49+
toast.success('Logout successful!');
50+
navigate("/login")
51+
}catch(e){
52+
53+
}
54+
}
4555
return (
4656
<div className='workspaceview-container'>
4757
<FirstVisit />
4858
<div className='workspaceview-header'>
4959
<SearchBar />
5060

51-
<button onClick={() => setArcheives(!archeives)}>Archeives</button>
61+
<button onClick={() => setArcheives(!archeives)} style={archeives?{background: '#141432'}:{}}>Archeives</button>
62+
5263
<button onClick={() => navigate('/addWorkspace')}>
5364
Create a workspace
5465
</button>
66+
<button onClick={LogoutHandler}>
67+
Logout
68+
</button>
5569
</div>
5670

5771
<div className='workspaceview-card-container'>
5872
{isLoad ? (
5973
<img src={loader} className='loader' />
6074
) : (
61-
userContext?.userOrgs &&
62-
Object.entries(userContext.userOrgs.userOrgs)
63-
.filter(([key, value]) => {
64-
if (key.toLowerCase().includes(searchValue.toLowerCase()))
65-
return [key, value];
66-
})
67-
.map(([orgName, details]) => {
68-
return (
69-
<WorkspaceCard
70-
key={orgName}
71-
workspaceName={orgName}
72-
archeive={'true' === details.archive}
73-
bookmark={'true' === details.bookmark}
74-
role={details.role}
75-
archeives={archeives}
76-
/>
77-
);
78-
})
75+
userContext?.userOrgs &&
76+
Object.entries(userContext.userOrgs.userOrgs)
77+
.filter(([key, value]) => {
78+
if (key.toLowerCase().includes(searchValue.toLowerCase()))
79+
return [key, value];
80+
})
81+
.map(([orgName, details]) => {
82+
83+
return (
84+
<WorkspaceCard
85+
key={orgName}
86+
workspaceName={orgName}
87+
archeive={'true' === details.archeive}
88+
bookmark={'true' === details.bookmark}
89+
role={details.role}
90+
archeives={archeives}
91+
/>
92+
);
93+
})
7994
)}
8095
</div>
8196
</div>

src/features/workspace-view/workspace-card/index.tsx

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { useContext, useEffect, useState } from 'react';
22
import './index.scss';
33
import rightNavbtn from '../../../app/assets/images/right_navigation_button.svg';
44
import { deleteOrg, getOrg, getOrgMembers } from 'app/api/organization';
5-
import { deleteFile, getIcon } from 'app/api/file';
5+
import { deleteFile, getIcon, getIconName } from 'app/api/file';
66
import { getMembers } from 'app/api/project';
77
import UserContext from 'app/context/user/userContext';
88
import toast from 'react-hot-toast';
@@ -58,6 +58,13 @@ const WorkspaceCard = (props: workspaceCardProps) => {
5858
);
5959
setMembersArray(membersArray);
6060
} catch (e) {}
61+
62+
try{
63+
64+
const iconRes= await getIconName(token, workspaceName)
65+
const fileName= iconRes.data.message
66+
const deleteRes= await deleteFile(token, fileName)
67+
}catch(e){}
6168
}
6269
};
6370

@@ -122,12 +129,14 @@ const WorkspaceCard = (props: workspaceCardProps) => {
122129
const status: { [key: string]: boolean } = {
123130
[workspaceName]: !archeive,
124131
};
125-
console.log(status);
126-
const res = await setOrgArcheiveStatus(token, status);
127-
console.log(res);
132+
133+
134+
const res = await setOrgArcheiveStatus(token, status);
135+
136+
128137
const orgs = userContext?.userOrgs;
129138
if (orgs?.userOrgs.hasOwnProperty(workspaceName)) {
130-
orgs.userOrgs[workspaceName].archive = (!archeive).toString();
139+
orgs.userOrgs[workspaceName].archeive= (!archeive).toString();
131140
userContext?.setUserOrgs(orgs);
132141
}
133142
};

0 commit comments

Comments
 (0)