From a1f69d978426c6a4cb7e8f3116e087553dbbffd5 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 31 Aug 2023 19:18:48 +0800 Subject: ... --- FrontEnd/src/components/tab/TabPages.tsx | 56 +++++++++++++------------------- 1 file changed, 23 insertions(+), 33 deletions(-) (limited to 'FrontEnd/src/components/tab/TabPages.tsx') diff --git a/FrontEnd/src/components/tab/TabPages.tsx b/FrontEnd/src/components/tab/TabPages.tsx index 6a5f4469..ab45ffdf 100644 --- a/FrontEnd/src/components/tab/TabPages.tsx +++ b/FrontEnd/src/components/tab/TabPages.tsx @@ -1,52 +1,43 @@ -import * as React from "react"; +import { ReactNode, useState } from "react"; +import classNames from "classnames"; -import { I18nText, UiLogicError } from "~src/common"; +import { Text, UiLogicError } from "../common"; -import Tabs from "./Tabs"; +import Tabs from "./TabBar"; -export interface TabPage { +import "./TabPages.css"; + +interface TabPage { name: string; - text: I18nText; - page: React.ReactNode; + text: Text; + page: ReactNode; } -export interface TabPagesProps { +interface TabPagesProps { pages: TabPage[]; - actions?: React.ReactNode; + actions?: ReactNode; dense?: boolean; className?: string; - style?: React.CSSProperties; - navClassName?: string; - navStyle?: React.CSSProperties; + tabBarClassName?: string; pageContainerClassName?: string; - pageContainerStyle?: React.CSSProperties; } -const TabPages: React.FC = ({ +export default function TabPages({ pages, actions, dense, className, - style, - navClassName, - navStyle, + tabBarClassName, pageContainerClassName, - pageContainerStyle, -}) => { - if (pages.length === 0) { - throw new UiLogicError("Page list can't be empty."); - } - - const [tab, setTab] = React.useState(pages[0].name); +}: TabPagesProps) { + const [tab, setTab] = useState(pages[0].name); const currentPage = pages.find((p) => p.name === tab); - if (currentPage == null) { - throw new UiLogicError("Current tab value is bad."); - } + if (currentPage == null) throw new UiLogicError(); return ( -
+
({ name: page.name, @@ -57,15 +48,14 @@ const TabPages: React.FC = ({ }))} dense={dense} activeTabName={tab} - className={navClassName} - style={navStyle} + className={tabBarClassName} actions={actions} /> -
+
{currentPage.page}
); -}; - -export default TabPages; +} -- cgit v1.2.3