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 ;
+};