@lifi/widget 3.8.1 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/dist/esm/components/Avatar/Avatar.style.js +3 -3
- package/dist/esm/components/Avatar/Avatar.style.js.map +1 -1
- package/dist/esm/components/Header/WalletHeader.js +9 -3
- package/dist/esm/components/Header/WalletHeader.js.map +1 -1
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js +16 -1
- package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
- package/dist/esm/components/TokenList/TokenList.js +6 -4
- package/dist/esm/components/TokenList/TokenList.js.map +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js +1 -1
- package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
- package/dist/esm/components/TokenList/types.d.ts +2 -2
- package/dist/esm/components/TokenList/useTokenSelect.d.ts +4 -0
- package/dist/esm/components/TokenList/useTokenSelect.js +19 -10
- package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
- package/dist/esm/config/version.d.ts +1 -1
- package/dist/esm/config/version.js +1 -1
- package/dist/esm/hooks/useAvailableChains.d.ts +2 -1
- package/dist/esm/hooks/useAvailableChains.js.map +1 -1
- package/dist/esm/hooks/useChain.d.ts +1 -0
- package/dist/esm/hooks/useChain.js +1 -0
- package/dist/esm/hooks/useChain.js.map +1 -1
- package/dist/esm/hooks/useChains.d.ts +1 -1
- package/dist/esm/hooks/useGasSufficiency.js +5 -5
- package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
- package/dist/esm/hooks/useIsContractAddress.d.ts +2 -0
- package/dist/esm/hooks/useIsContractAddress.js +16 -0
- package/dist/esm/hooks/useIsContractAddress.js.map +1 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.d.ts +12 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.js +68 -0
- package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -0
- package/dist/esm/hooks/useToAddressRequirements.d.ts +1 -1
- package/dist/esm/hooks/useToAddressRequirements.js +9 -1
- package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
- package/dist/esm/hooks/useToAddressReset.js +15 -8
- package/dist/esm/hooks/useToAddressReset.js.map +1 -1
- package/dist/esm/i18n/bn.json +8 -2
- package/dist/esm/i18n/de.json +8 -2
- package/dist/esm/i18n/es.json +8 -2
- package/dist/esm/i18n/fr.json +8 -2
- package/dist/esm/i18n/hi.json +8 -2
- package/dist/esm/i18n/id.json +8 -2
- package/dist/esm/i18n/it.json +8 -2
- package/dist/esm/i18n/ja.json +8 -2
- package/dist/esm/i18n/ko.json +8 -2
- package/dist/esm/i18n/pt.json +8 -2
- package/dist/esm/i18n/th.json +8 -2
- package/dist/esm/i18n/tr.json +8 -2
- package/dist/esm/i18n/uk.json +8 -2
- package/dist/esm/i18n/vi.json +8 -2
- package/dist/esm/i18n/zh.json +8 -2
- package/dist/esm/pages/SendToWallet/BookmarksPage.js +1 -0
- package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
- package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +1 -0
- package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
- package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js +1 -0
- package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
- package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +1 -0
- package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
- package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js +4 -1
- package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -1
- package/dist/esm/stores/form/createFormStore.js +1 -0
- package/dist/esm/stores/form/createFormStore.js.map +1 -1
- package/dist/esm/stores/form/types.d.ts +1 -0
- package/dist/esm/stores/form/types.js.map +1 -1
- package/dist/esm/stores/form/useFieldActions.d.ts +1 -0
- package/dist/esm/stores/form/useFieldActions.js +1 -0
- package/dist/esm/stores/form/useFieldActions.js.map +1 -1
- package/package.json +11 -11
- package/src/components/Avatar/Avatar.style.tsx +3 -3
- package/src/components/Header/WalletHeader.tsx +14 -5
- package/src/components/ReverseTokensButton/ReverseTokensButton.tsx +25 -6
- package/src/components/TokenList/TokenList.tsx +7 -4
- package/src/components/TokenList/TokenListItem.tsx +1 -1
- package/src/components/TokenList/types.ts +2 -2
- package/src/components/TokenList/useTokenSelect.ts +39 -16
- package/src/config/version.ts +1 -1
- package/src/hooks/useAvailableChains.ts +6 -1
- package/src/hooks/useChain.ts +1 -0
- package/src/hooks/useGasSufficiency.ts +11 -8
- package/src/hooks/useIsContractAddress.ts +21 -0
- package/src/hooks/useToAddressAutoPopulate.ts +95 -0
- package/src/hooks/useToAddressRequirements.ts +13 -2
- package/src/hooks/useToAddressReset.ts +15 -8
- package/src/i18n/bn.json +8 -2
- package/src/i18n/de.json +8 -2
- package/src/i18n/es.json +8 -2
- package/src/i18n/fr.json +8 -2
- package/src/i18n/hi.json +8 -2
- package/src/i18n/id.json +8 -2
- package/src/i18n/it.json +8 -2
- package/src/i18n/ja.json +8 -2
- package/src/i18n/ko.json +8 -2
- package/src/i18n/pt.json +8 -2
- package/src/i18n/th.json +8 -2
- package/src/i18n/tr.json +8 -2
- package/src/i18n/uk.json +8 -2
- package/src/i18n/vi.json +8 -2
- package/src/i18n/zh.json +8 -2
- package/src/pages/SendToWallet/BookmarksPage.tsx +1 -0
- package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +1 -0
- package/src/pages/SendToWallet/ConnectedWalletsPage.tsx +1 -0
- package/src/pages/SendToWallet/RecentWalletsPage.tsx +1 -0
- package/src/pages/SendToWallet/SendToConfiguredWalletPage.tsx +4 -1
- package/src/stores/form/createFormStore.ts +2 -0
- package/src/stores/form/types.ts +1 -0
- package/src/stores/form/useFieldActions.ts +1 -0
- package/src/stores/header/useHeaderStore.tsx +1 -1
package/src/i18n/uk.json
CHANGED
|
@@ -82,6 +82,9 @@
|
|
|
82
82
|
"autoRefuel": "У вас замало {{chainName}} газу. Продовжуючи, ви отримаєте достатньо газу, щоб завершити обмін.",
|
|
83
83
|
"emptyActiveTransactions": "Тут показуються незавершені транзакції. Після завершення ви можете знайти їх в історії транзакцій.",
|
|
84
84
|
"emptyTokenList": "Нам не вдалося знайти токени на {{chainName}}, або у вас їх немає. Будь ласка, спробуйте пошук за адресою контракту або виберіть інший чейн.",
|
|
85
|
+
"emptyChainList": "Ми не змогли знайти жодного чейна, що відповідає вашому запиту",
|
|
86
|
+
"emptyBridgesList": "Ми не змогли знайти жодного моста, що відповідає вашому запиту",
|
|
87
|
+
"emptyExchangesList": "Ми не змогли знайти жодного обмінника, що відповідає вашому запиту",
|
|
85
88
|
"emptyTransactionHistory": "Історія транзакцій зберігається лише локально та буде видалена, якщо ви очистите дані браузера.",
|
|
86
89
|
"fundsToExchange": "Кошти, відправлені на біржі, можуть бути втрачені",
|
|
87
90
|
"toAddressIsRequired": "Будь ласка, надайте адресу цільового гаманця, на яку будуть перераховані кошти.",
|
|
@@ -265,7 +268,7 @@
|
|
|
265
268
|
"stepSwapAndBridge": "Своп та бридж",
|
|
266
269
|
"stepSwapAndBuy": "Своп та покупка",
|
|
267
270
|
"stepSwapAndDeposit": "Своп та депозит",
|
|
268
|
-
"
|
|
271
|
+
"transferId": "Ідентифікатор переказу",
|
|
269
272
|
"swapStepDetails": "Своп на {{chain}} через {{tool}}",
|
|
270
273
|
"tags": {
|
|
271
274
|
"cheapest": "Найкращий курс",
|
|
@@ -275,7 +278,10 @@
|
|
|
275
278
|
"tokenOnChain": "{{tokenSymbol}} на {{chainName}}",
|
|
276
279
|
"tokenOnChainAmount": "{{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} на {{chainName}}",
|
|
277
280
|
"tokenSearch": "Шукати за ім'ям або адресою",
|
|
278
|
-
"valueLoss": "Втрата вартості"
|
|
281
|
+
"valueLoss": "Втрата вартості",
|
|
282
|
+
"searchChains": "Пошук за назвою чейна",
|
|
283
|
+
"searchBridges": "Пошук за назвою моста",
|
|
284
|
+
"searchExchanges": "Пошук за назвою обмінника"
|
|
279
285
|
},
|
|
280
286
|
"settings": {
|
|
281
287
|
"theme": "Тема",
|
package/src/i18n/vi.json
CHANGED
|
@@ -82,6 +82,9 @@
|
|
|
82
82
|
"autoRefuel": "Gas trên {{chainName}} chain của bạn đang thấp. Để tiếp tục, bạn nên có thêm gas để hoàn thành việc swap.",
|
|
83
83
|
"emptyActiveTransactions": "Các lệnh swap đang xử lý sẽ được hiện ở đây. Khi nào lệnh hoàn tất, bạn có thể kiểm tra lại tại mục lịch sử swap.",
|
|
84
84
|
"emptyTokenList": "Chúng tôi không thể tìm được token ở {{chainName}} hoặc số dư của bạn không có. Vui lòng thử tìm kiếm lại hoặc chọn một chain khác.",
|
|
85
|
+
"emptyChainList": "",
|
|
86
|
+
"emptyBridgesList": "",
|
|
87
|
+
"emptyExchangesList": "",
|
|
85
88
|
"emptyTransactionHistory": "Lịch sử Swap chỉ được lưu trữ cục bộ và sẽ bị xóa nếu bạn xóa dữ liệu trình duyệt của mình.",
|
|
86
89
|
"fundsToExchange": "Tiền gửi đến sàn giao dịch có thể bị mất",
|
|
87
90
|
"toAddressIsRequired": "Vui lòng cung cấp địa chỉ ví đích mà tiền sẽ được chuyển đến.",
|
|
@@ -265,7 +268,7 @@
|
|
|
265
268
|
"stepSwapAndBridge": "Swap và Bridge",
|
|
266
269
|
"stepSwapAndBuy": "Hoán đổi và mua",
|
|
267
270
|
"stepSwapAndDeposit": "",
|
|
268
|
-
"
|
|
271
|
+
"transferId": "",
|
|
269
272
|
"swapStepDetails": "Swap tại {{chain}} thông qua {{tool}}",
|
|
270
273
|
"tags": {
|
|
271
274
|
"cheapest": "Lợi nhuận tốt nhất",
|
|
@@ -275,7 +278,10 @@
|
|
|
275
278
|
"tokenOnChain": "{{tokenSymbol}} tại {{chainName}}",
|
|
276
279
|
"tokenOnChainAmount": "{{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} tại {{chainName}}",
|
|
277
280
|
"tokenSearch": "Tìm kiếm bằng tên token hoặc địa chỉ",
|
|
278
|
-
"valueLoss": "Bạn sẽ mất"
|
|
281
|
+
"valueLoss": "Bạn sẽ mất",
|
|
282
|
+
"searchChains": "",
|
|
283
|
+
"searchBridges": "",
|
|
284
|
+
"searchExchanges": ""
|
|
279
285
|
},
|
|
280
286
|
"settings": {
|
|
281
287
|
"theme": "Giao diện",
|
package/src/i18n/zh.json
CHANGED
|
@@ -82,6 +82,9 @@
|
|
|
82
82
|
"autoRefuel": "您在 {{chainName}} 链上的燃气费很低。如果启用该选项,您将获得足够的燃气费完成此次兑换。",
|
|
83
83
|
"emptyActiveTransactions": "正在进行的兑换将在这里显示。一旦完成,你可在兑换记录中找到它们。",
|
|
84
84
|
"emptyTokenList": "我们无法在 {{chainName}} 链上找到这些代币,或者你的钱包内没有这些代币。请再次搜索或者选择其他链再试一次。",
|
|
85
|
+
"emptyChainList": "",
|
|
86
|
+
"emptyBridgesList": "",
|
|
87
|
+
"emptyExchangesList": "",
|
|
85
88
|
"emptyTransactionHistory": "交易记录只存储在本地,如果您清除浏览器数据,交易记录将被删除。",
|
|
86
89
|
"fundsToExchange": "发送到交易所的资金可能会丢失",
|
|
87
90
|
"toAddressIsRequired": "请提供收款的钱包地址。",
|
|
@@ -265,7 +268,7 @@
|
|
|
265
268
|
"stepSwapAndBridge": "兑换和跨链",
|
|
266
269
|
"stepSwapAndBuy": "兑换并购买",
|
|
267
270
|
"stepSwapAndDeposit": "",
|
|
268
|
-
"
|
|
271
|
+
"transferId": "",
|
|
269
272
|
"swapStepDetails": "通过{{tool}}在{{chain}}链上兑换代币",
|
|
270
273
|
"tags": {
|
|
271
274
|
"cheapest": "最佳报价",
|
|
@@ -275,7 +278,10 @@
|
|
|
275
278
|
"tokenOnChain": "{{chainName}}链上的{{tokenSymbol}}",
|
|
276
279
|
"tokenOnChainAmount": "{{chainName}} 链上{{amount, number(maximumFractionDigits: 9)}} 个{{tokenSymbol}}",
|
|
277
280
|
"tokenSearch": "按代币名称或者地址搜索",
|
|
278
|
-
"valueLoss": "资金损失"
|
|
281
|
+
"valueLoss": "资金损失",
|
|
282
|
+
"searchChains": "",
|
|
283
|
+
"searchBridges": "",
|
|
284
|
+
"searchExchanges": ""
|
|
279
285
|
},
|
|
280
286
|
"settings": {
|
|
281
287
|
"theme": "主题",
|
|
@@ -43,7 +43,10 @@ export const SendToConfiguredWalletPage = () => {
|
|
|
43
43
|
|
|
44
44
|
const handleCuratedSelected = (toAddress: ToAddress) => {
|
|
45
45
|
setSelectedBookmark(toAddress)
|
|
46
|
-
setFieldValue('toAddress', toAddress.address, {
|
|
46
|
+
setFieldValue('toAddress', toAddress.address, {
|
|
47
|
+
isTouched: true,
|
|
48
|
+
isDirty: true,
|
|
49
|
+
})
|
|
47
50
|
navigateBack()
|
|
48
51
|
}
|
|
49
52
|
|
|
@@ -102,6 +102,8 @@ export const createFormStore = (defaultValues?: DefaultValues) =>
|
|
|
102
102
|
},
|
|
103
103
|
isTouched: (fieldName: FormFieldNames) =>
|
|
104
104
|
!!get().userValues[fieldName]?.isTouched,
|
|
105
|
+
isDirty: (fieldName: FormFieldNames) =>
|
|
106
|
+
!!get().userValues[fieldName]?.isDirty,
|
|
105
107
|
setAsTouched: (fieldName: FormFieldNames) => {
|
|
106
108
|
const userValues = {
|
|
107
109
|
...get().userValues,
|
package/src/stores/form/types.ts
CHANGED
|
@@ -70,6 +70,7 @@ export interface FormActions {
|
|
|
70
70
|
setDefaultValues: (formValues: DefaultValues) => void
|
|
71
71
|
setUserAndDefaultValues: (formValues: Partial<DefaultValues>) => void
|
|
72
72
|
isTouched: (fieldName: FormFieldNames) => boolean
|
|
73
|
+
isDirty: (fieldName: FormFieldNames) => boolean
|
|
73
74
|
setAsTouched: (fieldName: FormFieldNames) => void
|
|
74
75
|
resetField: (fieldName: FormFieldNames, resetOptions?: ResetOptions) => void
|
|
75
76
|
setFieldValue: (
|
|
@@ -18,6 +18,7 @@ export const useFieldActions = () => {
|
|
|
18
18
|
(store) => ({
|
|
19
19
|
getFieldValues: store.getFieldValues,
|
|
20
20
|
isTouched: store.isTouched,
|
|
21
|
+
isDirty: store.isDirty,
|
|
21
22
|
resetField: store.resetField,
|
|
22
23
|
setAsTouched: store.setAsTouched,
|
|
23
24
|
setDefaultValues: store.setDefaultValues,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createContext, useContext, useRef } from 'react'
|
|
2
2
|
import { shallow } from 'zustand/shallow'
|
|
3
3
|
import { createWithEqualityFn } from 'zustand/traditional'
|
|
4
|
-
import type {
|
|
4
|
+
import type { PersistStoreProviderProps } from '../types.js'
|
|
5
5
|
import type { HeaderState, HeaderStore } from './types.js'
|
|
6
6
|
|
|
7
7
|
export const HeaderStoreContext = createContext<HeaderStore | null>(null)
|