From f52beb25855dc60cd8871b1655d7ac911598e583 Mon Sep 17 00:00:00 2001 From: levai Date: Wed, 19 Aug 2026 09:02:37 +0100 Subject: [PATCH 1/2] fix(wallet): stop albedo from opening a popup every second on wallet connect --- src/providers/WalletProvider.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/providers/WalletProvider.tsx b/src/providers/WalletProvider.tsx index 88b0e57..6168e6e 100644 --- a/src/providers/WalletProvider.tsx +++ b/src/providers/WalletProvider.tsx @@ -123,9 +123,13 @@ export const WalletProvider = ({ children }: { children: React.ReactNode }) => { try { popupLock.current = true; wallet.setWallet(walletId); - // Non-freighter wallets don't support silent background reads; trust the - // stored address until the user acts. - if (walletId !== "freighter" && stateRef.current.address) return; + // Only Freighter supports a silent background `getAddress()`. For popup / + // redirect wallets (Albedo, etc.) `getAddress()` OPENS A WINDOW every + // call — at a 1s poll that spawns an Albedo popup per second during the + // connect window (before an address is stored), making it impossible to + // connect. So never poll them: trust the stored session; the user's + // explicit connect/sign actions are the only time we open their wallet. + if (walletId !== "freighter") return; const [a, n] = await Promise.all([ wallet.getAddress(), wallet.getNetwork(), From b35e69cf4dc5a95c0ec96db38462e5622c345d4b Mon Sep 17 00:00:00 2001 From: levai Date: Wed, 19 Aug 2026 09:03:00 +0100 Subject: [PATCH 2/2] fix(goals): open the goal date picker on mobile --- src/pages/dashboard/CreateTarget.tsx | 29 ++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/pages/dashboard/CreateTarget.tsx b/src/pages/dashboard/CreateTarget.tsx index fcd6ba4..d83b949 100644 --- a/src/pages/dashboard/CreateTarget.tsx +++ b/src/pages/dashboard/CreateTarget.tsx @@ -198,21 +198,26 @@ export default function CreateTarget() { min={minDate} value={deadline} onChange={(e) => setDeadline(e.target.value)} - // Hide the UA's own picker indicator; the design's calendar-02 - // icon below opens the picker instead. - className="w-full min-w-0 appearance-none border-0 bg-transparent font-mono text-[17px] text-white outline-none [&::-webkit-calendar-picker-indicator]:hidden" + // Hide only the UA's picker indicator (the calendar icon opens + // it). NOT `appearance-none` — that suppresses tap-to-open on + // iOS Safari, which left mobile users unable to pick a date. + className="w-full min-w-0 border-0 bg-transparent font-mono text-[17px] text-white outline-none [&::-webkit-calendar-picker-indicator]:hidden" /> - + {deadline !== "" && goalSeconds <= 0n && (