Skip to content

Commit

Permalink
ci(release): publish latest release
Browse files Browse the repository at this point in the history
  • Loading branch information
hello-happy-puppy committed Jun 26, 2024
1 parent ca10b1c commit 2f7d16c
Show file tree
Hide file tree
Showing 662 changed files with 7,845 additions and 4,796 deletions.
42 changes: 0 additions & 42 deletions .yarn/patches/react-native-wagmi-charts-npm-2.5.1-c9e2637be7.patch

This file was deleted.

48 changes: 41 additions & 7 deletions RELEASE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
IPFS hash of the deployment:
- CIDv0: `Qmcit8DbnQtQk8ZzSa9E4PFXjU1ENfbMQXYv5VwfNLvF1N`
- CIDv1: `bafybeigvwwif77wmthgzo7xqqnjpxbqfsodjbwg3mafmnrwtcojewqpveu`
- CIDv0: `QmW47HPC4SPLcqU9J19iTWNzjsqyaTmbUyhxUyNLcPNqhu`
- CIDv1: `bafybeidsucvs434zirxhib6npfzfqg4jagv6xkccfxjz3gmegib2bu36zq`

The latest release is always mirrored at [app.uniswap.org](https://app.uniswap.org).

Expand All @@ -10,15 +10,49 @@ You can also access the Uniswap Interface from an IPFS gateway.
Your Uniswap settings are never remembered across different URLs.

IPFS gateways:
- https://bafybeigvwwif77wmthgzo7xqqnjpxbqfsodjbwg3mafmnrwtcojewqpveu.ipfs.dweb.link/
- https://bafybeigvwwif77wmthgzo7xqqnjpxbqfsodjbwg3mafmnrwtcojewqpveu.ipfs.cf-ipfs.com/
- [ipfs://Qmcit8DbnQtQk8ZzSa9E4PFXjU1ENfbMQXYv5VwfNLvF1N/](ipfs://Qmcit8DbnQtQk8ZzSa9E4PFXjU1ENfbMQXYv5VwfNLvF1N/)
- https://bafybeidsucvs434zirxhib6npfzfqg4jagv6xkccfxjz3gmegib2bu36zq.ipfs.dweb.link/
- https://bafybeidsucvs434zirxhib6npfzfqg4jagv6xkccfxjz3gmegib2bu36zq.ipfs.cf-ipfs.com/
- [ipfs://QmW47HPC4SPLcqU9J19iTWNzjsqyaTmbUyhxUyNLcPNqhu/](ipfs://QmW47HPC4SPLcqU9J19iTWNzjsqyaTmbUyhxUyNLcPNqhu/)

### 5.36.3 (2024-06-26)
## 5.37.0 (2024-06-26)


### Features

* **web:** add fiat currency selection to buy flow (#8868) 25d35a7
* **web:** country picker for buy flow (+ tests/snapshots) (#8825) a342a3a
* **web:** Enable Avax on /explore (#8965) c9f8ed5
* **web:** move BaseCard and dependencies to uniswap (#9084) 61c6c15


### Bug Fixes

* **web:** legacy nav should not transition out of view on scroll (#9538) 435b634
* **web:** Divide 1 day APR by 100 (#9343) 838a3c7
* **web:** ensure explore and pools tabs are highlighted when active (#9151) 63673b1
* **web:** fix a few translations where components need a tag for inte… (#9152) cfe7ed5
* **web:** fix broken link, translation, and importing v2 positions (#9543) 51335c2
* **web:** fix height of token safety modal (#9258) f8bb7f4
* **web:** fix moonpay modal height (#9270) ce92266
* **web:** ignore GQL errors in SearchTokens query (#9544) e687bd0
* **web:** language/currency label (#9158) af0c676
* **web:** legacy nav should not transition out of view on scroll (#9540) 1ae4664
* **web:** reconcile multichainUx with refreshedNavbar (#9122) 6519f2c
* **web:** unblock ENS namewrapper contract address (#9254) 050fe29
* **web:** update redux store to v12 to match migrations (#8844) a9c162b
* **web:** use Add/Remove language in Transactions table (#9133) f78bb31
* **web:** use nullable valueModifiers (#9268) 8ccdf1c
* **web:** use uniswapx-sdk for cancel limits params (#8912) 83d70ab
* **web:** use valueModifiers in web portfolio query (#8942) ff5a840
* **web:** web config (#9169) 39c336a


### Reverts

* **web:** place hotkeys under feature flag for nav release (#9196) c1fff38


### Continuous Integration

* **web:** update sitemaps be4b927


2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
web/5.36.3
web/5.37.0
41 changes: 0 additions & 41 deletions apps/mobile/ios/Modifiers.swift

This file was deleted.

46 changes: 46 additions & 0 deletions apps/mobile/ios/Shared/RelativeOffsetView.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
//
// RelativeOffsetView.swift
// Uniswap
//
// Created by Mateusz Łopaciński on 18/06/2024.
//

import SwiftUI

struct RelativeOffsetView<Content: View>: View {
var x: CGFloat
var y: CGFloat
var onOffsetCalculated: (CGFloat, CGFloat) -> Void
var content: Content

@State private var contentSize: CGSize = .zero

init(x: CGFloat = 0, y: CGFloat = 0, onOffsetCalculated: @escaping (CGFloat, CGFloat) -> Void = { _, _ in }, @ViewBuilder content: () -> Content) {
self.x = x
self.y = y
self.onOffsetCalculated = onOffsetCalculated
self.content = content()
}

var body: some View {
content
.background(
GeometryReader { geometry in
Color.clear
.onAppear {
let offsetX = x * geometry.size.width
let offsetY = y * geometry.size.height
contentSize = geometry.size
onOffsetCalculated(offsetX, offsetY)
}
.onChange(of: geometry.size) { newSize in
let offsetX = x * newSize.width
let offsetY = y * newSize.height
contentSize = newSize
onOffsetCalculated(offsetX, offsetY)
}
}
)
.offset(x: x * contentSize.width, y: y * contentSize.height)
}
}
8 changes: 4 additions & 4 deletions apps/mobile/ios/Uniswap.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
00E356F31AD99517003FC87E /* UniswapTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* UniswapTests.m */; };
037C5AAA2C04970B00B1D808 /* CopyIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 037C5AA92C04970B00B1D808 /* CopyIcon.swift */; };
03C788232C10E7390011E5DC /* ActionButtons.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03C788222C10E7390011E5DC /* ActionButtons.swift */; };
03C788252C10F2810011E5DC /* Modifiers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03C788242C10F2810011E5DC /* Modifiers.swift */; };
03D2F3182C218D390030D987 /* RelativeOffsetView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03D2F3172C218D380030D987 /* RelativeOffsetView.swift */; };
0703EE032A5734A600AED1DA /* UserDefaults.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0703EE022A5734A600AED1DA /* UserDefaults.swift */; };
0703EE052A57351800AED1DA /* Logging.swift in Sources */ = {isa = PBXBuildFile; fileRef = 072F6C372A44BECC00DA720A /* Logging.swift */; };
072E238E2A44D5BD006AD6C9 /* WidgetsCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 072E23862A44D5BC006AD6C9 /* WidgetsCore.framework */; };
Expand Down Expand Up @@ -304,7 +304,7 @@
00E356F21AD99517003FC87E /* UniswapTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UniswapTests.m; sourceTree = "<group>"; };
037C5AA92C04970B00B1D808 /* CopyIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CopyIcon.swift; sourceTree = "<group>"; };
03C788222C10E7390011E5DC /* ActionButtons.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionButtons.swift; sourceTree = "<group>"; };
03C788242C10F2810011E5DC /* Modifiers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Modifiers.swift; sourceTree = "<group>"; };
03D2F3172C218D380030D987 /* RelativeOffsetView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelativeOffsetView.swift; sourceTree = "<group>"; };
065A981F892F7A06A900FCD5 /* Pods-WidgetsCoreTests.dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WidgetsCoreTests.dev.xcconfig"; path = "Target Support Files/Pods-WidgetsCoreTests/Pods-WidgetsCoreTests.dev.xcconfig"; sourceTree = "<group>"; };
0703EE022A5734A600AED1DA /* UserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaults.swift; sourceTree = "<group>"; };
070480372A58A507009006CE /* WidgetIntentExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = WidgetIntentExtension.entitlements; sourceTree = "<group>"; };
Expand Down Expand Up @@ -623,6 +623,7 @@
isa = PBXGroup;
children = (
03C788222C10E7390011E5DC /* ActionButtons.swift */,
03D2F3172C218D380030D987 /* RelativeOffsetView.swift */,
);
path = Shared;
sourceTree = "<group>";
Expand Down Expand Up @@ -925,7 +926,6 @@
BF9176E944C84910B1C0B057 /* SplashScreen.storyboard */,
FD7304CD28A364FC0085BDEA /* Colors.xcassets */,
FD7304CF28A3650A0085BDEA /* Colors.swift */,
03C788242C10F2810011E5DC /* Modifiers.swift */,
);
name = Uniswap;
sourceTree = "<group>";
Expand Down Expand Up @@ -1996,7 +1996,7 @@
6BC7D0802B5FF02400617C95 /* EncryptionUtils.swift in Sources */,
03C788232C10E7390011E5DC /* ActionButtons.swift in Sources */,
8EA8AB3B2AB7ED3C004E7EF3 /* SeedPhraseInputManager.m in Sources */,
03C788252C10F2810011E5DC /* Modifiers.swift in Sources */,
03D2F3182C218D390030D987 /* RelativeOffsetView.swift in Sources */,
6CA91BDB2A95223C00C4063E /* RNEthersRS.swift in Sources */,
8EA8AB3C2AB7ED3C004E7EF3 /* SeedPhraseInputViewModel.swift in Sources */,
072F6C2E2A44A32F00DA720A /* TokenPriceWidget.intentdefinition in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/ios/Uniswap/Icons/AlertTriangleIcon.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

import SwiftUI

struct AlertTriangeIcon: Shape {
struct AlertTriangleIcon: Shape {
func path(in rect: CGRect) -> Path {
var path = Path()
let width = rect.size.width
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -110,16 +110,17 @@ struct MnemonicDisplay: View {
.overlay(
HStack {
Spacer()
CopyButton(
copyButtonText: props.copyText,
copiedButtonText: props.copiedText,
textToCopy: props.mnemonicWords.joined(separator: " ")
)
Spacer()
}
.relativeOffset(y: -0.5) { _, offsetY in
RelativeOffsetView(y: -0.5, onOffsetCalculated: { _, offsetY in
buttonPadding = abs(offsetY)
},
}) {
CopyButton(
copyButtonText: props.copyText,
copiedButtonText: props.copiedText,
textToCopy: props.mnemonicWords.joined(separator: " ")
)
}
Spacer()
},
alignment: .top
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,10 @@ struct SeedPhraseInput: View {
if (viewModel.input.isEmpty) {
Text(viewModel.strings.inputPlaceholder)
.font(subtitleFont)
.padding(.horizontal, 6)
.padding(.vertical, 8)
.foregroundColor(Colors.neutral3)
.allowsHitTesting(false) // Prevents capturing touch events by the placeholder instead of input
}
}
.fixedSize(horizontal: false, vertical: true)
Expand All @@ -148,13 +151,14 @@ struct SeedPhraseInput: View {
if viewModel.input.isEmpty {
HStack {
Spacer()
PasteButton(
pasteButtonText: viewModel.strings.pasteButton,
onPaste: handlePastePress
)
RelativeOffsetView(y: 0.5) {
PasteButton(
pasteButtonText: viewModel.strings.pasteButton,
onPaste: handlePastePress
)
}
Spacer()
}
.relativeOffset(y: 0.5)
}
},
alignment: .bottom
Expand All @@ -163,7 +167,7 @@ struct SeedPhraseInput: View {

if (errorMessage() != nil) {
HStack(spacing: 4) {
AlertTriangeIcon()
AlertTriangleIcon()
.frame(width: 14, height: 14)
.foregroundColor(Colors.statusCritical)
Text(errorMessage() ?? "")
Expand Down
2 changes: 1 addition & 1 deletion apps/mobile/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@
"react-native-svg": "15.1.0",
"react-native-tab-view": "3.5.2",
"react-native-url-polyfill": "1.3.0",
"react-native-wagmi-charts": "2.5.1",
"react-native-wagmi-charts": "2.5.2",
"react-native-webview": "11.23.1",
"react-native-widgetkit": "1.0.9",
"react-redux": "8.0.5",
Expand Down
33 changes: 32 additions & 1 deletion apps/mobile/src/app/hooks.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { useFocusEffect } from '@react-navigation/core'
import { ThunkDispatch } from '@reduxjs/toolkit'
import { useState } from 'react'
import { useCallback, useRef, useState } from 'react'
import { LayoutChangeEvent } from 'react-native'
import { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux'
import type { MobileState } from 'src/app/reducer'
Expand Down Expand Up @@ -59,3 +60,33 @@ export function useShouldShowNativeKeyboard(): {
isLayoutPending || showNativeKeyboard ? undefined : decimalPadY - MIN_INPUT_DECIMAL_PAD_GAP,
}
}

const getNativeComponentKey = (): string => `native-component-${Math.random().toString()}`

export function useNativeComponentKey(autoUpdate = true): {
key: string
triggerUpdate: () => void
} {
const isInitialRenderRef = useRef(true)

const [key, setKey] = useState(getNativeComponentKey)

useFocusEffect(
useCallback(() => {
if (isInitialRenderRef.current || !autoUpdate) {
isInitialRenderRef.current = false
return
}
setKey(getNativeComponentKey())
}, [autoUpdate])
)

const triggerUpdate = useCallback(() => {
setKey(getNativeComponentKey())
}, [])

return {
key,
triggerUpdate,
}
}
Loading

0 comments on commit 2f7d16c

Please sign in to comment.