refactor(ui): clean code
This commit is contained in:
@@ -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) => {
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user