chore: fix linting and type safety across the project
This commit is contained in:
@@ -31,10 +31,12 @@ export function ActivityList() {
|
||||
const res = await apiClient.GET("/api/event/");
|
||||
if (res.data?.data) {
|
||||
setData(
|
||||
(res.data.data as any[]).map((e) => ({
|
||||
date: dayjs(e.startDate).format("D MMMM YYYY"),
|
||||
title: e.title,
|
||||
})),
|
||||
(res.data.data as { startDate: string; title: string }[]).map(
|
||||
(e) => ({
|
||||
date: dayjs(e.startDate).format("D MMMM YYYY"),
|
||||
title: e.title,
|
||||
}),
|
||||
),
|
||||
);
|
||||
}
|
||||
} catch (error) {
|
||||
|
||||
@@ -55,7 +55,10 @@ export function ChartAPBDes() {
|
||||
<XAxis type="number" hide domain={[0, 100]} />
|
||||
<YAxis type="category" hide dataKey="name" />
|
||||
<Tooltip
|
||||
formatter={(value: number) => [`${value}%`, ""]}
|
||||
formatter={(value: number | string | undefined) => [
|
||||
`${value}%`,
|
||||
"",
|
||||
]}
|
||||
contentStyle={{
|
||||
backgroundColor: dark ? "#1E293B" : "white",
|
||||
borderColor: dark ? "#334155" : "#e5e7eb",
|
||||
|
||||
@@ -20,11 +20,16 @@ import {
|
||||
} from "recharts";
|
||||
import { apiClient } from "@/utils/api-client";
|
||||
|
||||
interface ChartData {
|
||||
month: string;
|
||||
value: number;
|
||||
}
|
||||
|
||||
export function ChartSurat() {
|
||||
const { colorScheme } = useMantineColorScheme();
|
||||
const dark = colorScheme === "dark";
|
||||
|
||||
const [data, setData] = useState<any[]>([]);
|
||||
const [data, setData] = useState<ChartData[]>([]);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -33,7 +38,7 @@ export function ChartSurat() {
|
||||
const res = await apiClient.GET("/api/complaint/service-trends");
|
||||
if (res.data?.data) {
|
||||
setData(
|
||||
(res.data.data as any[]).map((d) => ({
|
||||
(res.data.data as { month: string; count: number }[]).map((d) => ({
|
||||
month: d.month,
|
||||
value: Number(d.count),
|
||||
})),
|
||||
@@ -79,7 +84,10 @@ export function ChartSurat() {
|
||||
viewBox="0 0 20 20"
|
||||
fill="none"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
role="img"
|
||||
aria-label="Tampilkan Detail"
|
||||
>
|
||||
<title>Tampilkan Detail</title>
|
||||
<path
|
||||
d="M8 5L13 10L8 15"
|
||||
stroke="currentColor"
|
||||
|
||||
@@ -17,6 +17,14 @@ interface DivisionData {
|
||||
value: number;
|
||||
}
|
||||
|
||||
interface DivisionApiResponse {
|
||||
id: string;
|
||||
name: string;
|
||||
_count?: {
|
||||
activities: number;
|
||||
};
|
||||
}
|
||||
|
||||
export function DivisionProgress() {
|
||||
const { colorScheme } = useMantineColorScheme();
|
||||
const dark = colorScheme === "dark";
|
||||
@@ -30,7 +38,7 @@ export function DivisionProgress() {
|
||||
const res = await apiClient.GET("/api/division/");
|
||||
if (res.data?.data) {
|
||||
setData(
|
||||
(res.data.data as any[]).map((d) => ({
|
||||
(res.data.data as DivisionApiResponse[]).map((d) => ({
|
||||
name: d.name,
|
||||
value: d._count?.activities || 0,
|
||||
})),
|
||||
|
||||
Reference in New Issue
Block a user