ci(release): publish latest release

parent 6af44f24
IPFS hash of the deployment: IPFS hash of the deployment:
- CIDv0: `QmU9wyRHeEDCqSEuSTD4u5Lk8eBgmMMuGBwMmAPus7w6QA` - CIDv0: `QmUj5V9H1syj86KL9kWgvvrwnXSTAaVQ2ofHobz2QzRMqi`
- CIDv1: `bafybeicwnbam37o45c22srwjzkjoe2zjcrsuu2pp7fi6px554lqdttpaam` - CIDv1: `bafybeic64tvawllez263e3osp27qz3ozcdh4zeh4avoex4wsbiumnpn2je`
The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org). The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).
...@@ -10,14 +10,14 @@ You can also access the Uniswap Interface from an IPFS gateway. ...@@ -10,14 +10,14 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs. Your Uniswap settings are never remembered across different URLs.
IPFS gateways: IPFS gateways:
- https://bafybeicwnbam37o45c22srwjzkjoe2zjcrsuu2pp7fi6px554lqdttpaam.ipfs.dweb.link/ - https://bafybeic64tvawllez263e3osp27qz3ozcdh4zeh4avoex4wsbiumnpn2je.ipfs.dweb.link/
- [ipfs://QmU9wyRHeEDCqSEuSTD4u5Lk8eBgmMMuGBwMmAPus7w6QA/](ipfs://QmU9wyRHeEDCqSEuSTD4u5Lk8eBgmMMuGBwMmAPus7w6QA/) - [ipfs://QmUj5V9H1syj86KL9kWgvvrwnXSTAaVQ2ofHobz2QzRMqi/](ipfs://QmUj5V9H1syj86KL9kWgvvrwnXSTAaVQ2ofHobz2QzRMqi/)
### 5.83.2 (2025-05-07) ### 5.83.3 (2025-05-07)
### Bug Fixes ### Bug Fixes
* **web:** handle isTokenOptionArray check for bridging section (prod) (#19364) 6ce156e * **web:** fix key open search modal (#19370) 7ad6115
web/5.83.2 web/5.83.3
\ No newline at end of file \ No newline at end of file
...@@ -177,29 +177,37 @@ export const SearchBar = ({ ...@@ -177,29 +177,37 @@ export const SearchBar = ({
const theme = useTheme() const theme = useTheme()
const { t } = useTranslation() // subscribe to locale changes const { t } = useTranslation() // subscribe to locale changes
const {
isOpen: isModalOpen,
closeModal: closeSearchModal,
openModal: openSearchModal,
} = useModalState(ModalName.Search)
const toggleOpen = useCallback(() => { const toggleOpen = useCallback(() => {
setOpen(!isOpen) if (!searchRevampEnabled) {
if (!searchRevampEnabled && fullScreen) { setOpen((prev) => !prev)
// disable body scroll on fullScreen search (was triggering the animation to hide the nav and affecting the search modal. Alternative option would be to create a separate search modal that is not a child of the nav component) if (fullScreen) {
document.body.style.overflow = !isOpen ? 'hidden' : 'scroll' // disable body scroll on fullScreen search (was triggering the animation to hide the nav and affecting the search modal. Alternative option would be to create a separate search modal that is not a child of the nav component)
document.body.style.overflow = !isOpen ? 'hidden' : 'scroll'
}
} }
}, [isOpen, searchRevampEnabled, fullScreen]) }, [searchRevampEnabled, isOpen, fullScreen])
useOnClickOutside(searchRef, () => !searchRevampEnabled && isOpen && toggleOpen()) useOnClickOutside(searchRef, () => !searchRevampEnabled && isOpen && toggleOpen())
useKeyDown({ useKeyDown({
callback: toggleOpen, callback: searchRevampEnabled ? openSearchModal : toggleOpen,
keys: ['/'], keys: ['/'],
disabled: isOpen, disabled: searchRevampEnabled ? isModalOpen : isOpen,
preventDefault: !isOpen, preventDefault: searchRevampEnabled ? !isModalOpen : !isOpen,
keyAction: KeyAction.UP, keyAction: KeyAction.UP,
shouldTriggerInInput: true, shouldTriggerInInput: true,
}) })
useKeyDown({ useKeyDown({
callback: toggleOpen, callback: searchRevampEnabled ? closeSearchModal : toggleOpen,
keys: ['Escape'], keys: ['Escape'],
keyAction: KeyAction.UP, keyAction: KeyAction.UP,
disabled: !isOpen, disabled: searchRevampEnabled ? !isModalOpen : !isOpen,
preventDefault: true, preventDefault: true,
shouldTriggerInInput: true, shouldTriggerInInput: true,
}) })
...@@ -223,13 +231,12 @@ export const SearchBar = ({ ...@@ -223,13 +231,12 @@ export const SearchBar = ({
const placeholderText = poolSearchEnabled ? t('search.input.placeholder') : t('tokens.selector.search.placeholder') const placeholderText = poolSearchEnabled ? t('search.input.placeholder') : t('tokens.selector.search.placeholder')
const { toggleModal: toggleSearchModal } = useModalState(ModalName.Search)
if (searchRevampEnabled) { if (searchRevampEnabled) {
return ( return (
<Trace section={InterfaceSectionName.NAVBAR_SEARCH}> <Trace section={InterfaceSectionName.NAVBAR_SEARCH}>
<SearchModal /> <SearchModal />
{isNavSearchInputVisible ? ( {isNavSearchInputVisible ? (
<TouchableArea onPress={toggleSearchModal} data-testid="nav-search-input" width={NAV_SEARCH_MIN_WIDTH}> <TouchableArea onPress={openSearchModal} data-testid="nav-search-input" width={NAV_SEARCH_MIN_WIDTH}>
<Flex <Flex
row row
backgroundColor="$surface2" backgroundColor="$surface2"
...@@ -264,7 +271,7 @@ export const SearchBar = ({ ...@@ -264,7 +271,7 @@ export const SearchBar = ({
</Flex> </Flex>
</TouchableArea> </TouchableArea>
) : ( ) : (
<NavIcon onClick={toggleSearchModal} label={placeholderText}> <NavIcon onClick={openSearchModal} label={placeholderText}>
<SearchIcon data-cy="nav-search-icon"> <SearchIcon data-cy="nav-search-icon">
<Search width="20px" height="20px" color={theme.neutral2} /> <Search width="20px" height="20px" color={theme.neutral2} />
</SearchIcon> </SearchIcon>
......
...@@ -43,7 +43,9 @@ export function sendSearchOptionItemClickedAnalytics({ ...@@ -43,7 +43,9 @@ export function sendSearchOptionItemClickedAnalytics({
chainId: currency.chainId, chainId: currency.chainId,
suggestion_type: searchContext?.isHistory suggestion_type: searchContext?.isHistory
? NavBarSearchTypes.RECENT_SEARCH ? NavBarSearchTypes.RECENT_SEARCH
: NavBarSearchTypes.TOKEN_SUGGESTION, : searchContext?.query && searchContext?.query.length > 0
? NavBarSearchTypes.TOKEN_SUGGESTION
: NavBarSearchTypes.TOKEN_TRENDING,
total_suggestions: searchContext?.suggestionCount, total_suggestions: searchContext?.suggestionCount,
query_text: searchContext?.query ?? '', query_text: searchContext?.query ?? '',
selected_search_result_name: currency.name ?? '', selected_search_result_name: currency.name ?? '',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment