Skip to content

Commit 48883fc

Browse files
rithikreddypallaabhiramtilakiiitDileepadari
authored
Members month (#173)
* initial commit * second commmit, for utils and stuff * update to use startMonth, endMonth instead of My * made some final changes * few changes * change of input format to YYYY-MM,type="month" * Refactor date handling in member positions and bulk edit forms * Fix valueGetter to use optional chaining for start and end month/year in UserMemberships * Add optional chaining to value getters in BulkEditForm and UserForm * fix delete button logic --------- Co-authored-by: abhiramtilakiiit <abhiram.potula@research.iiit.ac.in> Co-authored-by: Dileepadari <adaridileep@gmail.com>
1 parent 1fd873d commit 48883fc

File tree

20 files changed

+811
-324
lines changed

20 files changed

+811
-324
lines changed

src/app/cc-team-24-25/page.jsx

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ const new_team = [
1515
name: "Executive Secretary",
1616
startYear: 2024,
1717
endYear: null,
18+
startMonth: 1,
19+
endMonth: null,
1820
},
1921
],
2022
},
@@ -26,6 +28,8 @@ const new_team = [
2628
name: "Executive Secretary",
2729
startYear: 2024,
2830
endYear: null,
31+
startMonth: 1,
32+
endMonth: null,
2933
},
3034
],
3135
},
@@ -37,6 +41,8 @@ const new_team = [
3741
name: "Joint Secretary",
3842
startYear: 2024,
3943
endYear: null,
44+
startMonth: 1,
45+
endMonth: null,
4046
},
4147
],
4248
},
@@ -48,6 +54,8 @@ const new_team = [
4854
name: "Joint Secretary",
4955
startYear: 2024,
5056
endYear: null,
57+
startMonth: 1,
58+
endMonth: null,
5159
},
5260
],
5361
},
@@ -59,6 +67,8 @@ const new_team = [
5967
name: "Joint Secretary",
6068
startYear: 2024,
6169
endYear: null,
70+
startMonth: 1,
71+
endMonth: null,
6272
},
6373
],
6474
},
@@ -70,6 +80,8 @@ const new_team = [
7080
name: "Joint Secretary",
7181
startYear: 2024,
7282
endYear: null,
83+
startMonth: 1,
84+
endMonth: null,
7385
},
7486
],
7587
},
@@ -84,6 +96,8 @@ const advisors = [
8496
name: "Advisor",
8597
startYear: 2024,
8698
endYear: null,
99+
startMonth: 1,
100+
endMonth: null,
87101
},
88102
],
89103
},
@@ -95,6 +109,8 @@ const advisors = [
95109
name: "Advisor",
96110
startYear: 2024,
97111
endYear: null,
112+
startMonth: 1,
113+
endMonth: null,
98114
},
99115
],
100116
},
@@ -106,6 +122,8 @@ const advisors = [
106122
name: "Advisor",
107123
startYear: 2024,
108124
endYear: null,
125+
startMonth: 1,
126+
endMonth: null,
109127
},
110128
],
111129
},
@@ -117,6 +135,8 @@ const advisors = [
117135
name: "Advisor",
118136
startYear: 2024,
119137
endYear: null,
138+
startMonth: 1,
139+
endMonth: null,
120140
},
121141
],
122142
},
@@ -128,6 +148,8 @@ const advisors = [
128148
name: "Advisor",
129149
startYear: 2024,
130150
endYear: null,
151+
startMonth: 1,
152+
endMonth: null,
131153
},
132154
],
133155
},

src/app/changelog/page.jsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,15 +232,15 @@ export default async function Changelog(props) {
232232

233233
const filterRoles = (roles, filterWords) => {
234234
let filteredRoles = roles?.filter((role) => {
235-
const { name, endYear } = role;
235+
const { name ,endMonth ,endYear } = role;
236236
const lowercaseName = name.toLowerCase();
237237
return filterWords.some(
238-
(word) => lowercaseName.includes(word) && endYear === null,
238+
(word) => lowercaseName.includes(word) && endYear === null && endMonth === null,
239239
);
240240
});
241241
if (filteredRoles?.length > 0)
242242
return roles?.filter((role) => {
243-
const { name, endYear } = role;
243+
const { name } = role;
244244
const lowercaseName = name.toLowerCase();
245245
return filterWords.some((word) => lowercaseName.includes(word));
246246
});

src/app/clubs-council/page.jsx

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import {
1414

1515
import Content from "./content.mdx";
1616

17+
import { sortMonthYear } from "utils/membersDates";
18+
1719
export const metadata = {
1820
title: "About | Clubs Council @ IIIT-H",
1921
};
@@ -110,15 +112,15 @@ export default async function ClubsCouncil() {
110112
const filterRoles = (roles, filterWords, unfilterWords = []) => {
111113
// Filter roles that meet the filterWords criteria and are not in the unfilterWords list
112114
let filteredRoles = roles?.filter((role) => {
113-
const { name, endYear } = role;
115+
const { name, endMonth ,endYear } = role;
114116
const lowercaseName = name.toLowerCase();
115117
const matchesFilterWords = filterWords.some((word) =>
116118
lowercaseName.includes(word),
117119
);
118120
const matchesUnfilterWords = unfilterWords.some((word) =>
119121
lowercaseName.includes(word),
120122
);
121-
return matchesFilterWords && !matchesUnfilterWords && endYear === null;
123+
return matchesFilterWords && !matchesUnfilterWords && endYear === null && endMonth === null;
122124
});
123125

124126
// If any roles are filtered, return those that match filterWords and not unfilterWords
@@ -135,17 +137,7 @@ const filterRoles = (roles, filterWords, unfilterWords = []) => {
135137
);
136138
return matchesFilterWords && !matchesUnfilterWords;
137139
})
138-
?.sort((a, b) => {
139-
// Place roles with endYear=null at the top
140-
if (a.endYear === null && b.endYear !== null) {
141-
return -1;
142-
} else if (a.endYear !== null && b.endYear === null) {
143-
return 1;
144-
} else {
145-
// Sort based on endYear in descending order
146-
return b.endYear - a.endYear;
147-
}
148-
});
140+
?.sort((a, b) => {sortMonthYear(a,b)});
149141
} else {
150142
return filteredRoles;
151143
}

src/app/manage/members/[id]/edit/page.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ function transformMember(member) {
1818
member?.roles?.map((role, key) => ({
1919
...role,
2020
id: role?.rid || key,
21+
isValid: true,
2122
})) || [],
2223
};
2324
}

src/app/manage/members/page.jsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ export default async function ManageMembers(props) {
106106
}}
107107
>
108108
<MembersFilter
109-
// name={targetName}
110109
// name={targetName}
111110
club={targetClub}
112111
state={targetState}
@@ -126,7 +125,6 @@ export default async function ManageMembers(props) {
126125
}}
127126
>
128127
<MembersFilter
129-
// name={targetName}
130128
// name={targetName}
131129
club={targetClub}
132130
state={targetState}
@@ -149,8 +147,7 @@ export default async function ManageMembers(props) {
149147
}
150148

151149
async function PendingMembersDataGrid() {
152-
const { data: { pendingMembers } = {} } =
153-
await getClient().query(GET_PENDING_MEMBERS);
150+
const { data: { pendingMembers } = {} } = await getClient().query(GET_PENDING_MEMBERS);
154151

155152
// TODO: convert MembersTable to a server component and fetch user profile for each row (for lazy-loading perf improvement)
156153
// concurrently fetch user profile for each member
@@ -248,8 +245,8 @@ async function MembersDataGrid({
248245
// if member is still present, return current year + 1
249246
function extractLatestYear(member) {
250247
return Math.max(
251-
...member.roles.map((r) =>
252-
!r.endYear ? new Date().getFullYear() + 1 : r.endYear,
248+
...member.roles.map((r)=>
249+
!r.endYear ? new Date().getFullYear() + 1 : r.endYear,
253250
),
254251
);
255252
}

src/app/tech-team/page.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ export default async function TechTeam() {
4848
const finaltargetMembers = targetMembers[-1]
4949
? targetMembers[-1]?.sort((a, b) => {
5050
const roleNameA = a.roles
51-
.find((role) => role.endYear === null)
51+
.find((role) => role.endYear === null && role.endMonth === null)
5252
?.name?.toLowerCase();
5353
const roleNameB = b.roles
54-
.find((role) => role.endYear === null)
54+
.find((role) => role.endYear === null && role.endMonth === null)
5555
?.name?.toLowerCase();
5656

5757
if (roleNameA.includes("lead") && !roleNameB.includes("lead")) {

src/components/events/EventBudget.jsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,14 @@ export default function EventBudget({
203203
headerName: "",
204204
width: isMobile ? 20 : 50,
205205
renderCell: (p) => (
206-
<IconButton onClick={() => onDelete(p)} size="small">
206+
<IconButton
207+
onMouseDown={(e) => e.stopPropagation()}
208+
onClick={(e) => {
209+
e.stopPropagation();
210+
onDelete(p.row);
211+
}}
212+
size="small"
213+
>
207214
<Icon
208215
color="error.main"
209216
variant="delete-forever-outline"

src/components/events/EventSponsor.jsx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,14 @@ export default function EventSponsor({
174174
headerName: "",
175175
width: isMobile ? 20 : 50,
176176
renderCell: (p) => (
177-
<IconButton onClick={() => onDelete(p)} size="small">
177+
<IconButton
178+
onMouseDown={(e) => e.stopPropagation()}
179+
onClick={(e) => {
180+
e.stopPropagation();
181+
onDelete(p.row);
182+
}}
183+
size="small"
184+
>
178185
<Icon
179186
color="error.main"
180187
variant="delete-forever-outline"
@@ -198,7 +205,6 @@ export default function EventSponsor({
198205
<>
199206
{editable ? (
200207
<Button size="small" variant="outlined" onClick={onAdd} sx={{ mb: 1 }}>
201-
<Icon variant="add" sx={{ mr: 1 }} />
202208
<Icon variant="add" sx={{ mr: 1 }} />
203209
Add Item
204210
</Button>

0 commit comments

Comments
 (0)