chore: fix linting and type safety across the project

This commit is contained in:
2026-03-26 15:51:45 +08:00
parent ec057ef2e5
commit 0d0dc187a5
46 changed files with 2461 additions and 312 deletions

View File

@@ -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) {

View File

@@ -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",

View File

@@ -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"

View File

@@ -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,
})),