Skip to content

Commit 33c9b04

Browse files
authored
Merge pull request #172 from ctc-uci/163-alex
Donations + Initial Screener Form
2 parents 2571683 + 1b28b49 commit 33c9b04

File tree

7 files changed

+700
-414
lines changed

7 files changed

+700
-414
lines changed

client/src/components/donations/Donations.tsx

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,10 @@ export const Donations = () => {
321321

322322
const onPressCSVButton = () => {
323323
let headers, data;
324+
const selectedDonations = allDonations.filter((donation) => selectedRowIds.includes(donation.id));
325+
326+
const donationsToExport = selectedRowIds.length > 0 ? selectedDonations : allDonations;
327+
324328
if (freq !== "yearly" && freq !== "monthly") {
325329
headers = [
326330
"ID",
@@ -332,7 +336,7 @@ export const Donations = () => {
332336
"Total"
333337
];
334338

335-
data = allDonations.map((donation) => ({
339+
data = donationsToExport.map((donation) => ({
336340
"ID": donation.id,
337341
"Date": donation.date,
338342
"Donor": donation.donor,
@@ -350,23 +354,28 @@ export const Donations = () => {
350354
"Total Weight (lb)",
351355
"Total Value ($)"
352356
];
353-
data = allDonations.map((donation) => ({
357+
data = donationsToExport.map((donation) => ({
354358
"Date": donation.monthYear,
355359
"Donor": donation.donor,
356360
"Category": donation.category,
357361
"Total Weight (lb)": donation.totalWeight,
358362
"Total Value ($)": donation.totalValue,
359363
}));
360364
}
361-
const now = new Date();
362-
const date = now.toLocaleDateString();
363-
const time = now.toLocaleTimeString();
364-
const success = "Donation Data " + date + " " + time;
365365

366-
downloadCSV(headers, data, `clients.csv`);
366+
const now = new Date();
367+
const dateStr = now.toLocaleDateString().replace(/\//g, '-');
368+
const timeStr = now.toLocaleTimeString().replace(/:/g, '-');
369+
370+
// Create descriptive filename
371+
const freqStr = freq ? `_${freq}` : '';
372+
const donorStr = donor ? `_${donor}` : '';
373+
const filename = `donations${freqStr}${donorStr}_${dateStr}_${timeStr}.csv`;
374+
375+
downloadCSV(headers, data, filename);
367376
toast({
368377
title: 'Successfully Exported',
369-
description: success,
378+
description: `Donation data exported to ${filename}`,
370379
status: 'success',
371380
duration: 3000,
372381
isClosable: true,
@@ -416,11 +425,18 @@ export const Donations = () => {
416425
backend.get(`/lastUpdated/donations`),
417426
backend.get(`/donations/donors`)
418427
]);
428+
429+
if (!donationsResponse.data[0].id) {
430+
donationsResponse.data = donationsResponse.data.map((donation: any, index: number) => ({
431+
...donation,
432+
id: index + 1
433+
}));
434+
}
419435
setValueSum(valuesResponse.data[0]?.sum || 0);
420436
setWeightSum(weightResponse.data[0]?.sum || 0);
421437
setAllDonations(donationsResponse.data);
422438
setDonors(donorResponse.data.map((donor: { name: string }) => donor.name));
423-
439+
424440
const date = new Date(lastUpdatedResponse.data[0]?.lastUpdatedAt);
425441
setLastUpdated(date.toLocaleString());
426442

0 commit comments

Comments
 (0)