From 98a9c6a0a3eec907a9f855e8514b744fc5824a9f Mon Sep 17 00:00:00 2001 From: gary <1032230992@qq.com> Date: Mon, 9 May 2022 11:39:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A4=9A=E8=AF=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/ConfigProvider/ConfigProvider.tsx | 9 +++++++++ .../src/components/ConfigProvider/context.ts | 8 ++++++++ .../src/components/ConfigProvider/index.tsx | 2 ++ .../pancake-uikit/src/components/ConfigProvider/types.ts | 9 +++++++++ packages/pancake-uikit/src/index.ts | 1 + .../src/widgets/Menu/components/UserBlock.tsx | 8 +++++--- 6 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 packages/pancake-uikit/src/components/ConfigProvider/ConfigProvider.tsx create mode 100644 packages/pancake-uikit/src/components/ConfigProvider/context.ts create mode 100644 packages/pancake-uikit/src/components/ConfigProvider/index.tsx create mode 100644 packages/pancake-uikit/src/components/ConfigProvider/types.ts diff --git a/packages/pancake-uikit/src/components/ConfigProvider/ConfigProvider.tsx b/packages/pancake-uikit/src/components/ConfigProvider/ConfigProvider.tsx new file mode 100644 index 0000000..a9866bc --- /dev/null +++ b/packages/pancake-uikit/src/components/ConfigProvider/ConfigProvider.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import { ConfigProviderProps } from "./types"; +import { ConfigContext } from "./context"; + +const ConfigProvider: React.FC = ({ children, t = (v) => v }) => { + return {children}; +}; + +export default ConfigProvider; diff --git a/packages/pancake-uikit/src/components/ConfigProvider/context.ts b/packages/pancake-uikit/src/components/ConfigProvider/context.ts new file mode 100644 index 0000000..ad07b57 --- /dev/null +++ b/packages/pancake-uikit/src/components/ConfigProvider/context.ts @@ -0,0 +1,8 @@ +import React from "react"; +import { ConfigProviderProps } from "./types"; + +export const ConfigContext = React.createContext({ + t: (val) => val, +}); + +export default ConfigContext; diff --git a/packages/pancake-uikit/src/components/ConfigProvider/index.tsx b/packages/pancake-uikit/src/components/ConfigProvider/index.tsx new file mode 100644 index 0000000..58f8c3e --- /dev/null +++ b/packages/pancake-uikit/src/components/ConfigProvider/index.tsx @@ -0,0 +1,2 @@ +export { default as ConfigProvider } from "./ConfigProvider"; +export type { ConfigProviderProps } from "./types"; diff --git a/packages/pancake-uikit/src/components/ConfigProvider/types.ts b/packages/pancake-uikit/src/components/ConfigProvider/types.ts new file mode 100644 index 0000000..20b6d51 --- /dev/null +++ b/packages/pancake-uikit/src/components/ConfigProvider/types.ts @@ -0,0 +1,9 @@ +import { ReactText } from "react"; + +type ContextData = { + [key: string]: ReactText; +}; + +export interface ConfigProviderProps { + t: (key: string, data?: ContextData) => string; +} diff --git a/packages/pancake-uikit/src/index.ts b/packages/pancake-uikit/src/index.ts index 971289e..284a5bd 100644 --- a/packages/pancake-uikit/src/index.ts +++ b/packages/pancake-uikit/src/index.ts @@ -30,6 +30,7 @@ export * from "./components/TabMenu"; export * from "./components/Tag"; export * from "./components/Text"; export * from "./components/Toggle"; +export * from "./components/ConfigProvider"; // Hooks export * from "./hooks"; diff --git a/packages/pancake-uikit/src/widgets/Menu/components/UserBlock.tsx b/packages/pancake-uikit/src/widgets/Menu/components/UserBlock.tsx index fa07593..b336f71 100644 --- a/packages/pancake-uikit/src/widgets/Menu/components/UserBlock.tsx +++ b/packages/pancake-uikit/src/widgets/Menu/components/UserBlock.tsx @@ -1,9 +1,10 @@ -import React from "react"; +import React, { useContext } from "react"; import Button from "../../../components/Button/Button"; import { useModal } from "../../Modal"; import InviteModal from "./InviteModal"; import { useWalletModal } from "../../WalletModal"; import { Login } from "../../WalletModal/types"; +import { ConfigContext } from "../../../components/ConfigProvider/context"; interface Props { account?: string; @@ -13,6 +14,7 @@ interface Props { } const UserBlock: React.FC = ({ account, login, logout, inviteUrl }) => { + const { t } = useContext(ConfigContext); const { onPresentConnectModal, onPresentAccountModal } = useWalletModal(login, logout, account); const [onPresentInviteModal] = useModal(); const accountEllipsis = account ? `${account.substring(0, 4)}...${account.substring(account.length - 4)}` : null; @@ -25,7 +27,7 @@ const UserBlock: React.FC = ({ account, login, logout, inviteUrl }) => { onPresentInviteModal(); }} > - Invite + {t("Invite")} {account ? ( )}