diff --git a/CHANGELOG.md b/CHANGELOG.md index 39f53f239..4e40d5349 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -105,6 +105,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Improvements +- [#147](https://github.com/alleslabs/celatone-frontend/pull/147) Add empty state for select code modal - [#140](https://github.com/alleslabs/celatone-frontend/pull/140) Add placeholder texts to upload&instantiate, save code, and save&edit contract - [#139](https://github.com/alleslabs/celatone-frontend/pull/139) Fix Date to Dayjs - [#135](https://github.com/alleslabs/celatone-frontend/pull/135) Invalidate queries after update/clear admin tx diff --git a/src/lib/pages/instantiate/component/code-select/CodeSelectModalButton.tsx b/src/lib/pages/instantiate/component/code-select/CodeSelectModalButton.tsx index 66439e0b6..4cb8cd534 100644 --- a/src/lib/pages/instantiate/component/code-select/CodeSelectModalButton.tsx +++ b/src/lib/pages/instantiate/component/code-select/CodeSelectModalButton.tsx @@ -15,7 +15,8 @@ import { IoList } from "react-icons/io5"; import { useCodeListData } from "lib/pages/codes/data"; -import { CodeTableReadOnly } from "./CodeTableReadOnly"; +import { MySavedCodeContent } from "./MySavedCodeContent"; +import { MyStoredCodeContent } from "./MyStoredCodeContent"; interface CodeSelectModalButtonProps { onCodeSelect: (code: string) => void; @@ -67,9 +68,9 @@ export const CodeSelectModalButton = ({ My Stored Codes - Saved Codes - + diff --git a/src/lib/pages/instantiate/component/code-select/MySavedCodeContent.tsx b/src/lib/pages/instantiate/component/code-select/MySavedCodeContent.tsx new file mode 100644 index 000000000..ceda4a295 --- /dev/null +++ b/src/lib/pages/instantiate/component/code-select/MySavedCodeContent.tsx @@ -0,0 +1,30 @@ +import { Flex } from "@chakra-ui/react"; + +import { EmptyState } from "lib/components/state/EmptyState"; +import type { CodeInfo } from "lib/types"; + +import { CodeTableReadOnly } from "./CodeTableReadOnly"; + +interface MySavedCodeContentProps { + handleSelect: (code: string) => void; + savedCodes: CodeInfo[]; +} + +export const MySavedCodeContent = ({ + handleSelect, + savedCodes, +}: MySavedCodeContentProps) => { + if (!savedCodes.length) { + return ( + + + + ); + } + return ; +}; diff --git a/src/lib/pages/instantiate/component/code-select/MyStoredCodeContent.tsx b/src/lib/pages/instantiate/component/code-select/MyStoredCodeContent.tsx new file mode 100644 index 000000000..e00cf804a --- /dev/null +++ b/src/lib/pages/instantiate/component/code-select/MyStoredCodeContent.tsx @@ -0,0 +1,51 @@ +import { Flex, Text } from "@chakra-ui/react"; +import { useWallet } from "@cosmos-kit/react"; + +import { ConnectWalletBtn } from "lib/components/button"; +import { EmptyState } from "lib/components/state/EmptyState"; +import type { CodeInfo } from "lib/types"; + +import { CodeTableReadOnly } from "./CodeTableReadOnly"; + +interface MyStoredCodeContentProps { + handleSelect: (code: string) => void; + storedCodes: CodeInfo[]; +} + +export const MyStoredCodeContent = ({ + handleSelect, + storedCodes, +}: MyStoredCodeContentProps) => { + const { address } = useWallet(); + if (!address) { + return ( + + + Connect your wallet to upload and see your stored Codes. + + + + ); + } + + if (!storedCodes.length) { + return ( + + + + ); + } + return ; +};