fix: x-axis labels overlapping in mobile view

This commit is contained in:
LAKHAN BAHETI 2024-01-30 17:15:23 +05:30
parent c7616fda11
commit 960bf03ac1
2 changed files with 68 additions and 46 deletions

View File

@ -65,7 +65,7 @@ export const AnalyticsScope: React.FC<Props> = ({ defaultAnalytics }) => (
); );
}, },
}} }}
margin={{ top: 20 }} margin={{ top: 20, right: 20 }}
theme={{ theme={{
axis: {}, axis: {},
}} }}

View File

@ -6,12 +6,27 @@ import emptyGraph from "public/empty-state/empty_graph.svg";
import { IDefaultAnalyticsResponse } from "@plane/types"; import { IDefaultAnalyticsResponse } from "@plane/types";
// constants // constants
import { MONTHS_LIST } from "constants/calendar"; import { MONTHS_LIST } from "constants/calendar";
import { useEffect, useState } from "react";
type Props = { type Props = {
defaultAnalytics: IDefaultAnalyticsResponse; defaultAnalytics: IDefaultAnalyticsResponse;
}; };
export const AnalyticsYearWiseIssues: React.FC<Props> = ({ defaultAnalytics }) => ( export const AnalyticsYearWiseIssues: React.FC<Props> = ({ defaultAnalytics }) => {
// states
const [width, setWidth] = useState(window.innerWidth);
useEffect(() => {
// event listener to update the width
window.addEventListener("resize", () => {
if (width <= 768 && window.innerWidth > 768) {
setWidth(window.innerWidth);
} else if (width >= 768 && window.innerWidth < 768) {
setWidth(window.innerWidth);
}
});
}, []);
return (
<div className="rounded-[10px] border border-custom-border-200 py-3"> <div className="rounded-[10px] border border-custom-border-200 py-3">
<h1 className="px-3 text-base font-medium">Issues closed in a year</h1> <h1 className="px-3 text-base font-medium">Issues closed in a year</h1>
{defaultAnalytics.issue_completed_month_wise.length > 0 ? ( {defaultAnalytics.issue_completed_month_wise.length > 0 ? (
@ -23,16 +38,22 @@ export const AnalyticsYearWiseIssues: React.FC<Props> = ({ defaultAnalytics }) =
data: Object.entries(MONTHS_LIST).map(([index, month]) => ({ data: Object.entries(MONTHS_LIST).map(([index, month]) => ({
x: month.shortTitle, x: month.shortTitle,
y: y:
defaultAnalytics.issue_completed_month_wise.find((data) => data.month === parseInt(index, 10))?.count || defaultAnalytics.issue_completed_month_wise.find((data) => data.month === parseInt(index, 10))
0, ?.count || 0,
})), })),
}, },
]} ]}
axisBottom={{
// if width is less than 768px, rotate the x-axis labels
...(width < 768 && {
tickRotation: -45,
}),
}}
customYAxisTickValues={defaultAnalytics.issue_completed_month_wise.map((data) => data.count)} customYAxisTickValues={defaultAnalytics.issue_completed_month_wise.map((data) => data.count)}
height="300px" height="300px"
colors={(datum) => datum.color} colors={(datum) => datum.color}
curve="monotoneX" curve="monotoneX"
margin={{ top: 20 }} margin={{ top: 20, right: 20 }}
enableSlices="x" enableSlices="x"
sliceTooltip={(datum) => ( sliceTooltip={(datum) => (
<div className="rounded-md border border-custom-border-200 bg-custom-background-80 p-2 text-xs"> <div className="rounded-md border border-custom-border-200 bg-custom-background-80 p-2 text-xs">
@ -56,4 +77,5 @@ export const AnalyticsYearWiseIssues: React.FC<Props> = ({ defaultAnalytics }) =
</div> </div>
)} )}
</div> </div>
); );
};