2024-06-30 18:19:21 +08:00
|
|
|
import { Button, Collapse } from "@douyinfe/semi-ui";
|
|
|
|
import { useEnums } from "../../../hooks";
|
|
|
|
import { IconPlus } from "@douyinfe/semi-icons";
|
|
|
|
import { useTranslation } from "react-i18next";
|
|
|
|
import SearchBar from "./SearchBar";
|
|
|
|
import EnumDetails from "./EnumDetails";
|
2024-07-05 04:06:09 +08:00
|
|
|
import Empty from "../Empty";
|
2024-06-30 18:19:21 +08:00
|
|
|
|
|
|
|
export default function EnumsTab() {
|
|
|
|
const { enums, addEnum } = useEnums();
|
|
|
|
const { t } = useTranslation();
|
|
|
|
|
|
|
|
return (
|
|
|
|
<div>
|
|
|
|
<div className="flex gap-2">
|
|
|
|
<SearchBar />
|
|
|
|
<div>
|
|
|
|
<Button icon={<IconPlus />} block onClick={() => addEnum()}>
|
|
|
|
{t("add_enum")}
|
|
|
|
</Button>
|
|
|
|
</div>
|
|
|
|
</div>
|
2024-07-05 04:06:09 +08:00
|
|
|
{enums.length <= 0 ? (
|
|
|
|
<Empty title={t("no_enums")} text={t("no_enums_text")} />
|
|
|
|
) : (
|
|
|
|
<Collapse accordion>
|
|
|
|
{enums.map((e, i) => (
|
|
|
|
<Collapse.Panel
|
|
|
|
key={`enum_${i}`}
|
|
|
|
id={`scroll_enum_${i}`}
|
|
|
|
header={
|
|
|
|
<div className="overflow-hidden text-ellipsis whitespace-nowrap">
|
|
|
|
{e.name}
|
|
|
|
</div>
|
|
|
|
}
|
|
|
|
itemKey={`${i}`}
|
|
|
|
>
|
|
|
|
<EnumDetails data={e} i={i} />
|
|
|
|
</Collapse.Panel>
|
|
|
|
))}
|
|
|
|
</Collapse>
|
|
|
|
)}
|
2024-06-30 18:19:21 +08:00
|
|
|
</div>
|
|
|
|
);
|
|
|
|
}
|