diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c3774107..c8f8c6c07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -88,6 +88,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Bug fixes +- [#617](https://github.com/alleslabs/celatone-frontend/pull/617) Fix textwrap module path on module detail, framer motion incorrect transition prop, loadingoverlay not centered - [#610](https://github.com/alleslabs/celatone-frontend/pull/610) Remove `.at()` from code - [#615](https://github.com/alleslabs/celatone-frontend/pull/615) Fix useEffect on pool page - [#612](https://github.com/alleslabs/celatone-frontend/pull/612) Add saved accounts page diff --git a/src/lib/components/LoadingOverlay.tsx b/src/lib/components/LoadingOverlay.tsx index 7545efc2e..5b8a87c55 100644 --- a/src/lib/components/LoadingOverlay.tsx +++ b/src/lib/components/LoadingOverlay.tsx @@ -9,7 +9,7 @@ export const LoadingOverlay = () => ( direction="column" gap={3} bgColor="background.overlay" - position="absolute" + position="fixed" top={0} left={0} zIndex="overlay" diff --git a/src/lib/pages/account-details/components/modules/ModuleLists.tsx b/src/lib/pages/account-details/components/modules/ModuleLists.tsx index 441f3a2e0..62c819254 100644 --- a/src/lib/pages/account-details/components/modules/ModuleLists.tsx +++ b/src/lib/pages/account-details/components/modules/ModuleLists.tsx @@ -1,8 +1,10 @@ import { Flex } from "@chakra-ui/react"; +import { useState } from "react"; import { useMobile } from "lib/app-provider"; import { CustomIcon } from "lib/components/icon"; -import { TableTitle } from "lib/components/table"; +import InputWithIcon from "lib/components/InputWithIcon"; +import { TableTitle, ViewMore } from "lib/components/table"; import { type IndexedModule } from "lib/services/move/moduleService"; import type { MoveAccountAddr, Option } from "lib/types"; @@ -23,41 +25,52 @@ export const ModuleLists = ({ isLoading, onViewMore, }: ModuleListsProps) => { + const [keyword, setKeyword] = useState(""); const isMobile = useMobile(); const isMobileOverview = isMobile && !!onViewMore; - return ( + return isMobileOverview ? ( + + + + + ) : ( - {isMobileOverview ? ( - - - - - ) : ( - <> - - - + + {!onViewMore && ( + setKeyword(e.target.value)} + action="execute-message-search" + /> + )} + + {onViewMore && totalCount && totalCount > 9 && ( + )} ); diff --git a/src/lib/pages/account-details/components/modules/ModuleListsBody.tsx b/src/lib/pages/account-details/components/modules/ModuleListsBody.tsx index 200580d12..ab1a85d96 100644 --- a/src/lib/pages/account-details/components/modules/ModuleListsBody.tsx +++ b/src/lib/pages/account-details/components/modules/ModuleListsBody.tsx @@ -1,18 +1,17 @@ -import { Flex, SimpleGrid } from "@chakra-ui/react"; -import { useMemo, useState } from "react"; +import { SimpleGrid } from "@chakra-ui/react"; +import { useMemo } from "react"; import { ErrorFetching } from "../ErrorFetching"; import { useInternalNavigate } from "lib/app-provider"; -import InputWithIcon from "lib/components/InputWithIcon"; import { Loading } from "lib/components/Loading"; import { ModuleCard } from "lib/components/module"; import { EmptyState } from "lib/components/state"; -import { ViewMore } from "lib/components/table"; import type { IndexedModule } from "lib/services/move/moduleService"; import type { MoveAccountAddr, Option } from "lib/types"; interface ModuleListsBodyProps { selectedAddress: MoveAccountAddr; + keyword: string; modules: Option; isLoading: boolean; onViewMore?: () => void; @@ -20,12 +19,12 @@ interface ModuleListsBodyProps { export const ModuleListsBody = ({ selectedAddress, + keyword, modules, isLoading, onViewMore, }: ModuleListsBodyProps) => { const navigate = useInternalNavigate(); - const [keyword, setKeyword] = useState(""); const filteredModules = useMemo(() => { if (!keyword) return modules; @@ -58,31 +57,18 @@ export const ModuleListsBody = ({ /> ); return ( - - {!onViewMore && ( - setKeyword(e.target.value)} - action="execute-message-search" - /> + + {(onViewMore ? filteredModules.slice(0, 9) : filteredModules).map( + (item) => ( + + ) )} - - {(onViewMore ? filteredModules.slice(0, 9) : filteredModules).map( - (item) => ( - - ) - )} - - {onViewMore && filteredModules.length > 9 && ( - - )} - + ); }; diff --git a/src/lib/pages/account-details/index.tsx b/src/lib/pages/account-details/index.tsx index c4634f810..185454876 100644 --- a/src/lib/pages/account-details/index.tsx +++ b/src/lib/pages/account-details/index.tsx @@ -404,8 +404,8 @@ const AccountDetailsBody = ({ diff --git a/src/lib/pages/module-details/components/ModuleTop.tsx b/src/lib/pages/module-details/components/ModuleTop.tsx index 64d3f3160..fdd2c5047 100644 --- a/src/lib/pages/module-details/components/ModuleTop.tsx +++ b/src/lib/pages/module-details/components/ModuleTop.tsx @@ -90,7 +90,7 @@ export const ModuleTop = ({ moduleData, isVerified }: ModuleTopProps) => { Module Path: - + {moduleData.parsedAbi.address}::{moduleData.parsedAbi.name} diff --git a/src/lib/pages/tx-details/components/tx-message/EventBox.tsx b/src/lib/pages/tx-details/components/tx-message/EventBox.tsx index 8f9407a9a..118e33f89 100644 --- a/src/lib/pages/tx-details/components/tx-message/EventBox.tsx +++ b/src/lib/pages/tx-details/components/tx-message/EventBox.tsx @@ -1,6 +1,5 @@ -import { Box, Flex, chakra, shouldForwardProp } from "@chakra-ui/react"; +import { Box, Flex } from "@chakra-ui/react"; import type { Event } from "@cosmjs/stargate"; -import { isValidMotionProp, motion } from "framer-motion"; import type { ReactNode } from "react"; import { useState } from "react"; @@ -10,15 +9,11 @@ import type { LinkType } from "lib/components/ExplorerLink"; import { ExplorerLink } from "lib/components/ExplorerLink"; import { CustomIcon } from "lib/components/icon"; import JsonReadOnly from "lib/components/json/JsonReadOnly"; +import { MotionBox } from "lib/components/MotionBox"; import { TxReceiptRender } from "lib/components/tx"; import type { TxReceipt } from "lib/types"; import { jsonPrettify, jsonValidate } from "lib/utils"; -const MotionBox = chakra(motion.div, { - shouldForwardProp: (prop) => - isValidMotionProp(prop) || shouldForwardProp(prop), -}); - interface EventBoxProps { event: Event; msgIndex: number; @@ -145,7 +140,10 @@ export const EventBox = ({ event, msgIndex }: EventBoxProps) => { overflow="hidden" initial="collapsed" animate={expand ? "expanded" : "collapsed"} - transition="all 0.25s ease-in-out" + transition={{ + duration: "0.25", + ease: "easeInOut", + }} > // ------------------------------------------// // -----------------MOVE ARGS----------------// // ------------------------------------------// -export const getArgType = (argType: string) => { - if (argType === "0x1::string::String") return BCS.STRING; - if (argType.startsWith("0x1::option::Option")) return BCS.OPTION; - if (argType.startsWith("0x1::object::Object")) return BCS.OBJECT; - if (argType === "0x1::fixed_point32::FixedPoint32") return BCS.FIXED_POINT32; - if (argType === "0x1::fixed_point64::FixedPoint64") return BCS.FIXED_POINT64; - if (argType === "0x1::decimal128::Decimal128") return BCS.DECIMAL128; - if (argType === "0x1::decimal256::Decimal256") return BCS.DECIMAL256; - return argType; -}; +export const getArgType = (argType: string) => + argType + .replace("0x1::string::String", BCS.STRING) + .replace("0x1::option::Option", BCS.OPTION) + .replace("0x1::object::Object", BCS.OBJECT) + .replace("0x1::fixed_point32::FixedPoint32", BCS.FIXED_POINT32) + .replace("0x1::fixed_point64::FixedPoint64", BCS.FIXED_POINT64) + .replace("0x1::decimal128::Decimal128", BCS.DECIMAL128) + .replace("0x1::decimal256::Decimal256", BCS.DECIMAL256); const getArgValue = ({ type,