diff --git a/src/app/portfolio/[uid]/page.tsx b/src/app/portfolio/[uid]/page.tsx index d100da5..1922125 100644 --- a/src/app/portfolio/[uid]/page.tsx +++ b/src/app/portfolio/[uid]/page.tsx @@ -12,24 +12,82 @@ export default async function Portfolio({ if (error) { console.error(error); } - const getMonthName = (dateString: string) => { - const date = new Date(dateString); - return date.toLocaleString("default", { month: "long" }); + const yearAgo = (num: number) => { + const newDate = new Date(); + newDate.setFullYear(newDate.getFullYear() - num); + return newDate; }; - const graphData = deals - ? deals.map((item) => ({ - // convert month's index to string - name: getMonthName(item.created_time), - value: item.deal_amount as number, - })) + const getMonthName = (dateString: string) => { + const date = new Date(dateString); + return date.toLocaleString("default", { month: "long", year: "numeric" }); + }; + + const overAllGraphData = deals + ? deals + .filter((item) => new Date(item.created_time) >= yearAgo(1)) + .reduce( + (acc, item) => { + const monthName = getMonthName(item.created_time).slice(0, 3); + const existingMonth = acc.find( + (entry: { name: string }) => entry.name === monthName + ); + + if (existingMonth) { + existingMonth.value += item.deal_amount; + } else { + acc.push({ name: monthName, value: item.deal_amount }); + } + + return acc; + }, + [] as { name: string; value: number }[] + ) : []; +const threeYearGraphData = deals + ? deals + .filter((item) => new Date(item.created_time) >= yearAgo(3)) + .reduce( + (acc, item) => { + const year = new Date(item.created_time).getFullYear(); + const existingYear = acc.find( + (entry: { name: string; }) => entry.name === year.toString() + ); + + if (existingYear) { + existingYear.value += item.deal_amount; + } else { + acc.push({ name: year.toString(), value: item.deal_amount }) + } + + return acc; + }, + [] as { name: string; value: number }[] + ) + : []; + + + + // const graphData = [ + // { name: "October", value: 500 }, + // { name: "October", value: 500 }, + // { name: "November", value: 500 }, + // { name: "December", value: 500 }, + // { name: "January", value: 500 }, + // { name: "Febuary", value: 500 }, + // { name: "March", value: 500 }, + // ]; + return (