Skip to content

Commit

Permalink
fix: remove duplicate contributors from the scatter chart (#529)
Browse files Browse the repository at this point in the history
Closes #372
  • Loading branch information
brandonroberts committed Oct 12, 2022
1 parent 9d90784 commit 9b4b2c8
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 7 deletions.
34 changes: 28 additions & 6 deletions components/organisms/Dashboard/dashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,54 @@ import roundedImage from "lib/utils/roundedImages";
import { getInsights, useInsights } from "lib/hooks/useInsights";
import { useRepositoriesList } from "lib/hooks/useRepositoriesList";

type ContributorPrMap = { [contributor: string]: DbRepoPR };

export const Dashboard = (): JSX.Element => {
const { meta: allRepoMeta } = useRepositoriesList(true);
const { meta: filterRepoMeta } = useRepositoriesList();
const { data: prData, isError: contributorError } = useTopicPRs();
const { data: prData, isError: prError } = useTopicPRs();
const { data: insightsData } = useInsights();
const isNotMobile = useMediaQuery("(min-width: 768px)");

const conAvatarObject: { [key: string]: {[key: string]: string} } = {};

const scatterChartData = contributorError ? [] :
let scatterChartData: (string | number)[][] = [];

if (prError) {
scatterChartData = [];
} else {
const uniqueContributors: ContributorPrMap = prData.reduce((prs, curr) => {
if (prs[curr.author_login]) {
prs[curr.author_login].linesCount += curr.linesCount;
} else {
prs[curr.author_login] = curr;
prs[curr.author_login].linesCount = curr.linesCount;
}

return prs;
}, {} as ContributorPrMap);

const prs = Object.keys(uniqueContributors).map(key => uniqueContributors[key]);

//eslint-disable-next-line
prData.map(({ updated_at, linesCount, author_login }) => {
scatterChartData = prs.map(({ updated_at, linesCount, author_login }) => {
const timeOverTouched: (string | number)[] = [
calcDaysFromToday(new Date(parseInt(updated_at))),
calcDaysFromToday(new Date(parseInt(updated_at, 10))),
//eslint-disable-next-line
linesCount
];

const author_image = author_login.includes("[bot]") ? "octocat" : author_login;

//eslint-disable-next-line
conAvatarObject[`${timeOverTouched[0]}${timeOverTouched[1]}`] = {
login: author_login,
image: roundedImage(`https://www.github.com/${author_login}.png?size=60`, process.env.NEXT_PUBLIC_CLOUD_NAME)
login: `${author_login} - ${linesCount}`,
image: roundedImage(`https://www.github.com/${author_image}.png?size=60`, process.env.NEXT_PUBLIC_CLOUD_NAME)
};

return timeOverTouched;
});
}

const maxFilesModified = scatterChartData.reduce((max, curr) => {
const [, files] = curr;
Expand Down
2 changes: 1 addition & 1 deletion next-types.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ interface DbRepoPR {
readonly merged_at: string;
readonly updated_at: string;
readonly filesCount: number;
readonly linesCount: number;
protected linesCount: number;
readonly merged: boolean;
}

Expand Down

0 comments on commit 9b4b2c8

Please sign in to comment.