aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/views/common/tab/TabPages.tsx
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-07-01 17:54:04 +0800
committercrupest <crupest@outlook.com>2021-07-01 17:54:04 +0800
commit88851e84f070207581f5dfa78a94e52194a2281b (patch)
treef9a0c2be1df48d7be842a8db66fb44b24d570bd7 /FrontEnd/src/views/common/tab/TabPages.tsx
parent672778ca5d9de5513c86d70394b2dd048639cdea (diff)
downloadtimeline-88851e84f070207581f5dfa78a94e52194a2281b.tar.gz
timeline-88851e84f070207581f5dfa78a94e52194a2281b.tar.bz2
timeline-88851e84f070207581f5dfa78a94e52194a2281b.zip
...
Diffstat (limited to 'FrontEnd/src/views/common/tab/TabPages.tsx')
-rw-r--r--FrontEnd/src/views/common/tab/TabPages.tsx33
1 files changed, 23 insertions, 10 deletions
diff --git a/FrontEnd/src/views/common/tab/TabPages.tsx b/FrontEnd/src/views/common/tab/TabPages.tsx
index b7a9fb36..677f558a 100644
--- a/FrontEnd/src/views/common/tab/TabPages.tsx
+++ b/FrontEnd/src/views/common/tab/TabPages.tsx
@@ -1,17 +1,19 @@
import React from "react";
-import { useTranslation } from "react-i18next";
-import { convertI18nText, I18nText, UiLogicError } from "@/common";
+import { I18nText, UiLogicError } from "@/common";
+
+import Tabs from "./Tabs";
export interface TabPage {
- id: string;
- tabText: I18nText;
+ name: string;
+ text: I18nText;
page: React.ReactNode;
}
export interface TabPagesProps {
pages: TabPage[];
actions?: React.ReactNode;
+ dense?: boolean;
className?: string;
style?: React.CSSProperties;
navClassName?: string;
@@ -23,6 +25,7 @@ export interface TabPagesProps {
const TabPages: React.FC<TabPagesProps> = ({
pages,
actions,
+ dense,
className,
style,
navClassName,
@@ -30,17 +33,13 @@ const TabPages: React.FC<TabPagesProps> = ({
pageContainerClassName,
pageContainerStyle,
}) => {
- // TODO:
-
if (pages.length === 0) {
throw new UiLogicError("Page list can't be empty.");
}
- const { t } = useTranslation();
-
- const [tab, setTab] = React.useState<string>(pages[0].id);
+ const [tab, setTab] = React.useState<string>(pages[0].name);
- const currentPage = pages.find((p) => p.id === tab);
+ const currentPage = pages.find((p) => p.name === tab);
if (currentPage == null) {
throw new UiLogicError("Current tab value is bad.");
@@ -48,6 +47,20 @@ const TabPages: React.FC<TabPagesProps> = ({
return (
<div className={className} style={style}>
+ <Tabs
+ tabs={pages.map((page) => ({
+ name: page.name,
+ text: page.text,
+ onClick: () => {
+ setTab(page.name);
+ },
+ }))}
+ dense={dense}
+ activeTabName={tab}
+ className={navClassName}
+ style={navStyle}
+ actions={actions}
+ />
<div className={pageContainerClassName} style={pageContainerStyle}>
{currentPage.page}
</div>