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 ? ( )}