From fac049d65c74e540dc5faab3059715c7a26a9bf0 Mon Sep 17 00:00:00 2001 From: neocybereth Date: Mon, 17 Nov 2025 21:26:41 +1300 Subject: [PATCH 1/5] fix: remove header and add masp sycn cover --- apps/namadillo/src/App/Swap/SwapHeader.tsx | 6 ------ apps/namadillo/src/App/Swap/SwapModule.tsx | 4 ++++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/namadillo/src/App/Swap/SwapHeader.tsx b/apps/namadillo/src/App/Swap/SwapHeader.tsx index d1c8e599fc..7370cb20e7 100644 --- a/apps/namadillo/src/App/Swap/SwapHeader.tsx +++ b/apps/namadillo/src/App/Swap/SwapHeader.tsx @@ -1,13 +1,7 @@ -import { SwapIcon } from "App/Icons/SwapIcon"; - export const SwapHeader = (): JSX.Element => { return (

Shielded Swaps

- - - -

Swap an asset you hold in the shield pool

); }; diff --git a/apps/namadillo/src/App/Swap/SwapModule.tsx b/apps/namadillo/src/App/Swap/SwapModule.tsx index 527728f44e..7481fb0c9f 100644 --- a/apps/namadillo/src/App/Swap/SwapModule.tsx +++ b/apps/namadillo/src/App/Swap/SwapModule.tsx @@ -1,4 +1,6 @@ import { Panel } from "@namada/components"; +import { MaspSyncCover } from "App/Common/MaspSyncCover"; +import { useRequiresNewShieldedSync } from "hooks/useRequiresNewShieldedSync"; import { useAtomValue } from "jotai"; import { Link } from "react-router-dom"; import { swapStatusAtom } from "./state/atoms"; @@ -12,6 +14,7 @@ import { SwapSuccess } from "./SwapSuccess"; // and pass the shared state(accounts, fees, etc.) as props to the module components export const SwapModule = (): JSX.Element => { const status = useAtomValue(swapStatusAtom); + const requiresNewShieldedSync = useRequiresNewShieldedSync(); return ( @@ -44,6 +47,7 @@ export const SwapModule = (): JSX.Element => {

)} + {requiresNewShieldedSync && }
); }; From 173981bb260933a107133b3534098183088536a9 Mon Sep 17 00:00:00 2001 From: neocybereth Date: Mon, 17 Nov 2025 21:27:53 +1300 Subject: [PATCH 2/5] fix: remove tooltip of addy --- .../src/App/Common/SelectedAsset.tsx | 41 ++++++++----------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/apps/namadillo/src/App/Common/SelectedAsset.tsx b/apps/namadillo/src/App/Common/SelectedAsset.tsx index e0729cd86a..3b2d738b3b 100644 --- a/apps/namadillo/src/App/Common/SelectedAsset.tsx +++ b/apps/namadillo/src/App/Common/SelectedAsset.tsx @@ -1,4 +1,4 @@ -import { SkeletonLoading, Tooltip } from "@namada/components"; +import { SkeletonLoading } from "@namada/components"; import { EmptyResourceIcon } from "App/Transfer/EmptyResourceIcon"; import clsx from "clsx"; import { getAssetImageUrl } from "integrations/utils"; @@ -53,29 +53,24 @@ export const SelectedAsset = ({ )} {asset && ( -
- - {asset.address} - - - {`${asset.name} - - {asset.symbol} - {!isDisabled && ( - - - - )} - + + {`${asset.name} + + {asset.symbol} + {!isDisabled && ( + + + + )} -
+ )} ); From ae2778fc580708026e3ab05a44e1d64b6871032d Mon Sep 17 00:00:00 2001 From: neocybereth Date: Mon, 17 Nov 2025 21:45:38 +1300 Subject: [PATCH 3/5] fix: add separation between tokens with balance and not in Selected Asset Modal --- .../src/App/Common/SelectAssetModal.tsx | 137 ++++++++++++------ 1 file changed, 90 insertions(+), 47 deletions(-) diff --git a/apps/namadillo/src/App/Common/SelectAssetModal.tsx b/apps/namadillo/src/App/Common/SelectAssetModal.tsx index bb9cb9c705..5d490aee1f 100644 --- a/apps/namadillo/src/App/Common/SelectAssetModal.tsx +++ b/apps/namadillo/src/App/Common/SelectAssetModal.tsx @@ -36,13 +36,74 @@ export const SelectAssetModal = ({ const [filter, setFilter] = useState(""); - const filteredAssets = useMemo(() => { - return assets.filter( + const { assetsWithBalance, assetsWithoutBalance } = useMemo(() => { + const filtered = assets.filter( (asset) => asset.name.toLowerCase().indexOf(filter.toLowerCase()) >= 0 || asset.symbol.toLowerCase().indexOf(filter.toLowerCase()) >= 0 ); - }, [assets, filter]); + + const withBalance: Asset[] = []; + const withoutBalance: Asset[] = []; + + filtered.forEach((asset) => { + const tokenAddress = + ibcTransfer === "deposit" ? asset.base : (asset as NamadaAsset).address; + + const balance = balances?.[tokenAddress]; + const hasBalance = balance && balance[0].gt(0); + + if (hasBalance) { + withBalance.push(asset); + } else { + withoutBalance.push(asset); + } + }); + + return { + assetsWithBalance: withBalance, + assetsWithoutBalance: withoutBalance, + }; + }, [assets, filter, balances, ibcTransfer]); + + const renderAssetItem = (asset: Asset): JSX.Element => { + // Fpr IbcTransfer(Deposits), we consider base denom as a token address. + const tokenAddress = + ibcTransfer === "deposit" ? asset.base : (asset as NamadaAsset).address; + + const disabled = + !namTransfersEnabled && asset.address === nativeTokenAddress; + + return ( +
  • + +
  • + ); + }; + + const hasAnyAssets = + assetsWithBalance.length > 0 || assetsWithoutBalance.length > 0; return ( @@ -50,51 +111,33 @@ export const SelectAssetModal = ({
    - - {filteredAssets.map((asset) => { - // Fpr IbcTransfer(Deposits), we consider base denom as a token address. - const tokenAddress = - ibcTransfer === "deposit" ? - asset.base - : (asset as NamadaAsset).address; - - const disabled = - !namTransfersEnabled && asset.address === nativeTokenAddress; - return ( -
  • - -
  • - ); - })} - {filteredAssets.length === 0 && ( -

    There are no available assets

    +
    + {assetsWithBalance.length > 0 && ( + <> +

    + Your tokens +

    + + {assetsWithBalance.map(renderAssetItem)} + + + )} + + {assetsWithoutBalance.length > 0 && ( + <> +

    + All tokens +

    + + {assetsWithoutBalance.map(renderAssetItem)} + + )} - + + {!hasAnyAssets && ( +

    There are no available assets

    + )} +
    ); }; From 00d0534e021344f9651b19e3731572886b5bf0aa Mon Sep 17 00:00:00 2001 From: neocybereth Date: Tue, 18 Nov 2025 12:18:52 +1300 Subject: [PATCH 4/5] fix: update image size --- apps/namadillo/src/App/Common/SelectedAsset.tsx | 5 ++++- apps/namadillo/src/App/Swap/SwapSource.tsx | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/apps/namadillo/src/App/Common/SelectedAsset.tsx b/apps/namadillo/src/App/Common/SelectedAsset.tsx index 3b2d738b3b..0494098ddf 100644 --- a/apps/namadillo/src/App/Common/SelectedAsset.tsx +++ b/apps/namadillo/src/App/Common/SelectedAsset.tsx @@ -8,6 +8,7 @@ import { Asset } from "types"; type SelectedAssetProps = { asset?: Asset; isLoading?: boolean; + imageSize?: "small" | "large"; isDisabled?: boolean; onClick?: () => void; }; @@ -15,6 +16,7 @@ type SelectedAssetProps = { export const SelectedAsset = ({ asset, isLoading, + imageSize = "small", isDisabled, onClick, }: SelectedAssetProps): JSX.Element => { @@ -56,7 +58,8 @@ export const SelectedAsset = ({ {`${asset.name} Date: Tue, 18 Nov 2025 12:23:52 +1300 Subject: [PATCH 5/5] fix: shielded swap history --- .../Transactions/LocalStorageTransactionCard.tsx | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx b/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx index 73d859b33b..b68eaee02c 100644 --- a/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx +++ b/apps/namadillo/src/App/Transactions/LocalStorageTransactionCard.tsx @@ -201,9 +201,19 @@ export const LocalStorageTransactionCard = ({

    To

    - {isShieldedAddress(receiver ?? "") ? + {( + isShieldedAddress(receiver ?? "") || + transaction.type === "ShieldedOsmosisSwap" + ) ? Shielded