diff --git a/src/containers/CodeStats.jsx b/src/containers/CodeStats.jsx index 3c9b523..bd364b0 100644 --- a/src/containers/CodeStats.jsx +++ b/src/containers/CodeStats.jsx @@ -6,109 +6,114 @@ import LanguagesChart from "../components/LanguagesChart" import ProjectsChart from "../components/ProjectsChart" const convertSeconds = (secs) => { - return `${Math.floor(secs / 3600)}h ${Math.floor((secs % 3600) / 60)}m` + return `${Math.floor(secs / 3600)}h ${Math.floor((secs % 3600) / 60)}m` } const CodeStats = () => { - const { data, isLoading, error } = useQuery({ - queryKey: ["codestats"], - queryFn: () => - wakapiApi.get(`summary?interval=week`).then((res) => res.data), - }) + const { data, isLoading, error } = useQuery({ + queryKey: ["codestats"], + queryFn: () => + wakapiApi.get(`summary?interval=week`).then((res) => res.data), + }) - const grandTotal = data?.projects.reduce((acc, curr) => acc + curr.total, 0) - const grandTotalFormatted = `${Math.floor(grandTotal / 3600)}h ${Math.floor((grandTotal % 3600) / 60)}m` - const os = data?.operating_systems - const osMetric = os ? ( -
- {os[0]?.key}: {convertSeconds(os[0].total)}, {os[1]?.key}:{" "} - {convertSeconds(os[1].total)} -
- ) : ( - "Error" - ) + const grandTotal = data?.projects.reduce((acc, curr) => acc + curr.total, 0) + const grandTotalFormatted = `${Math.floor(grandTotal / 3600)}h ${Math.floor((grandTotal % 3600) / 60)}m` + const os = data?.operating_systems + const osMetric = os ? ( +
+ {os[0]?.key}: {convertSeconds(os[0].total)}, {os[1]?.key}:{" "} + {convertSeconds(os[1].total)} +
+ ) : ( + "Error" + ) - const personalProjects = - data && data?.projects.filter((project) => !project.key.includes("gp-")) + const personalProjects = + data && + data?.projects.filter( + (project) => + !project.key.includes("gp-") && !project.key.includes("unknown") + ) - const personalProjectsSorted = - personalProjects && personalProjects.sort((a, b) => b.total - a.total) + const personalProjectsSorted = + personalProjects && personalProjects.sort((a, b) => b.total - a.total) - const mainProject = personalProjects ? personalProjectsSorted[0].key : "Error" + const mainProject = personalProjects ? personalProjectsSorted[0].key : "Error" - const languagesChartData = data?.languages - .map((lang) => ({ - metric: lang.key, - language: lang.key, - hours: (lang.total / 3600).toFixed(1), - percentage: ( - (lang.total / data.languages.reduce((sum, i) => sum + i.total, 0)) * - 100 - ).toFixed(1), - })) - .slice(0, 4) + const languagesChartData = data?.languages + .map((lang) => ({ + metric: lang.key, + language: lang.key, + hours: (lang.total / 3600).toFixed(1), + percentage: ( + (lang.total / data.languages.reduce((sum, i) => sum + i.total, 0)) * + 100 + ).toFixed(1), + })) + .slice(0, 4) - const projectsChartData = - personalProjects && - personalProjects.map((proj) => ({ - metric: proj.key, - project: proj.key, - hours: (proj.total / 3600).toFixed(1), - percentage: ( - (proj.total / personalProjects.reduce((sum, i) => sum + i.total, 0)) * - 100 - ).toFixed(1), - })) + const projectsChartData = + personalProjects && + personalProjects + .map((proj) => ({ + metric: proj.key, + project: proj.key, + hours: (proj.total / 3600).toFixed(1), + percentage: ( + (proj.total / personalProjects.reduce((sum, i) => sum + i.total, 0)) * + 100 + ).toFixed(1), + })) + .slice(0, 4) - return ( -
-
-
-
-

- {`> code stats`} -

-
- {convertDateFriendly(data?.from)} -{" "} - {convertDateFriendly(data?.to)} -
-
- {/* Score-cards */} -
- + return ( +
+
+
+
+

+ {`> code stats`} +

+
+ {convertDateFriendly(data?.from)} -{" "} + {convertDateFriendly(data?.to)} +
+
+
+ - + - -
- - -
- Data sourced from my self-hosted{" "} - - Wakapi - {" "} - instance. -
-
-
-
- ) + +
+ + +
+ Data sourced from my self-hosted{" "} + + Wakapi + {" "} + instance. +
+
+
+
+ ) } export default CodeStats