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={{
axis: {},
}}

View File

@ -6,12 +6,27 @@ import emptyGraph from "public/empty-state/empty_graph.svg";
import { IDefaultAnalyticsResponse } from "@plane/types";
// constants
import { MONTHS_LIST } from "constants/calendar";
import { useEffect, useState } from "react";
type Props = {
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">
<h1 className="px-3 text-base font-medium">Issues closed in a year</h1>
{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]) => ({
x: month.shortTitle,
y:
defaultAnalytics.issue_completed_month_wise.find((data) => data.month === parseInt(index, 10))?.count ||
0,
defaultAnalytics.issue_completed_month_wise.find((data) => data.month === parseInt(index, 10))
?.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)}
height="300px"
colors={(datum) => datum.color}
curve="monotoneX"
margin={{ top: 20 }}
margin={{ top: 20, right: 20 }}
enableSlices="x"
sliceTooltip={(datum) => (
<div className="rounded-md border border-custom-border-200 bg-custom-background-80 p-2 text-xs">
@ -57,3 +78,4 @@ export const AnalyticsYearWiseIssues: React.FC<Props> = ({ defaultAnalytics }) =
)}
</div>
);
};