refactor(ui): clean code

This commit is contained in:
Fu Diwei
2024-12-16 13:37:10 +08:00
parent b5739c663d
commit 70e6920288
15 changed files with 126 additions and 172 deletions

View File

@@ -1,4 +1,4 @@
import React, { useEffect, useState } from "react";
import { memo, useEffect, useState } from "react";
import { Link, Navigate, Outlet, useLocation, useNavigate } from "react-router-dom";
import { useTranslation } from "react-i18next";
import { Button, Drawer, Dropdown, Layout, Menu, Tooltip, theme, type ButtonProps, type MenuProps } from "antd";
@@ -109,7 +109,7 @@ const ConsoleLayout = () => {
);
};
const SiderMenu = React.memo(({ onSelect }: { onSelect?: (key: string) => void }) => {
const SiderMenu = memo(({ onSelect }: { onSelect?: (key: string) => void }) => {
const location = useLocation();
const navigate = useNavigate();
@@ -179,7 +179,7 @@ const SiderMenu = React.memo(({ onSelect }: { onSelect?: (key: string) => void }
);
});
const ThemeToggleButton = React.memo(({ size }: { size?: ButtonProps["size"] }) => {
const ThemeToggleButton = memo(({ size }: { size?: ButtonProps["size"] }) => {
const { t } = useTranslation();
const { theme, setThemeMode } = useTheme();
@@ -206,7 +206,7 @@ const ThemeToggleButton = React.memo(({ size }: { size?: ButtonProps["size"] })
);
});
const LocaleToggleButton = React.memo(({ size }: { size?: ButtonProps["size"] }) => {
const LocaleToggleButton = memo(({ size }: { size?: ButtonProps["size"] }) => {
const { i18n } = useTranslation();
const items: Required<MenuProps>["items"] = Object.keys(i18n.store.data).map((key) => {

View File

@@ -40,7 +40,7 @@ const AccessList = () => {
ellipsis: true,
render: (_, record) => {
return (
<Space className="max-w-full truncate" align="center" size={4}>
<Space className="max-w-full truncate" size={4}>
<Avatar src={accessProvidersMap.get(record.configType)?.icon} size="small" />
<Typography.Text ellipsis>{t(accessProvidersMap.get(record.configType)?.name ?? "")}</Typography.Text>
</Space>

View File

@@ -152,15 +152,14 @@ const CertificateList = () => {
width: 120,
render: (_, record) => (
<Space size={0}>
<Tooltip title={t("certificate.action.view")}>
<Button
type="link"
icon={<EyeIcon size={16} />}
onClick={() => {
handleViewClick(record);
}}
/>
</Tooltip>
<CertificateDetailDrawer
data={record}
trigger={
<Tooltip title={t("certificate.action.view")}>
<Button type="link" icon={<EyeIcon size={16} />} />
</Tooltip>
}
/>
</Space>
),
},
@@ -177,10 +176,6 @@ const CertificateList = () => {
const [page, setPage] = useState<number>(() => parseInt(+searchParams.get("page")! + "") || 1);
const [pageSize, setPageSize] = useState<number>(() => parseInt(+searchParams.get("perPage")! + "") || 10);
const [currentRecord, setCurrentRecord] = useState<CertificateModel>();
const [drawerOpen, setDrawerOpen] = useState(false);
const fetchTableData = useCallback(async () => {
if (loading) return;
setLoading(true);
@@ -210,11 +205,6 @@ const CertificateList = () => {
fetchTableData();
}, [fetchTableData]);
const handleViewClick = (certificate: CertificateModel) => {
setDrawerOpen(true);
setCurrentRecord(certificate);
};
return (
<>
{NotificationContextHolder}
@@ -244,15 +234,6 @@ const CertificateList = () => {
rowKey={(record: CertificateModel) => record.id}
scroll={{ x: "max(100%, 960px)" }}
/>
<CertificateDetailDrawer
data={currentRecord}
open={drawerOpen}
onClose={() => {
setDrawerOpen(false);
setCurrentRecord(undefined);
}}
/>
</>
);
};

View File

@@ -19,7 +19,7 @@ const Login = () => {
password: z.string().min(10, t("login.password.errmsg.invalid")),
});
const formRule = createSchemaFieldRule(formSchema);
const [form] = Form.useForm();
const [form] = Form.useForm<z.infer<typeof formSchema>>();
const [isPending, setIsPending] = useState(false);