@lifi/widget 3.14.0 → 3.14.2

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/esm/config/version.d.ts +1 -1
  3. package/dist/esm/config/version.js +1 -1
  4. package/dist/esm/hooks/useSetContentHeight.d.ts +1 -1
  5. package/dist/esm/hooks/useSetContentHeight.js +3 -2
  6. package/dist/esm/hooks/useSetContentHeight.js.map +1 -1
  7. package/dist/esm/index.d.ts +3 -0
  8. package/dist/esm/index.js +3 -0
  9. package/dist/esm/index.js.map +1 -1
  10. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +18 -12
  11. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  12. package/dist/esm/providers/I18nProvider/I18nProvider.js +1 -1
  13. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  14. package/dist/esm/stores/form/FormUpdater.js +3 -1
  15. package/dist/esm/stores/form/FormUpdater.js.map +1 -1
  16. package/dist/esm/stores/form/URLSearchParamsBuilder.js +40 -5
  17. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  18. package/dist/esm/utils/currencyExtendedFormatter.js.map +1 -0
  19. package/package.json +1 -1
  20. package/src/config/version.ts +1 -1
  21. package/src/hooks/useSetContentHeight.ts +4 -2
  22. package/src/index.ts +3 -0
  23. package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +72 -53
  24. package/src/providers/I18nProvider/I18nProvider.tsx +1 -1
  25. package/src/stores/form/FormUpdater.tsx +3 -2
  26. package/src/stores/form/URLSearchParamsBuilder.tsx +38 -4
  27. package/dist/esm/providers/I18nProvider/currencyExtendedFormatter.js.map +0 -1
  28. /package/dist/esm/{providers/I18nProvider → utils}/currencyExtendedFormatter.d.ts +0 -0
  29. /package/dist/esm/{providers/I18nProvider → utils}/currencyExtendedFormatter.js +0 -0
  30. /package/src/{providers/I18nProvider → utils}/currencyExtendedFormatter.ts +0 -0
package/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [3.14.2](https://github.com/lifinance/widget/compare/v3.14.1...v3.14.2) (2025-01-28)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * validate address from URL params and bookmark it ([#343](https://github.com/lifinance/widget/issues/343)) ([688236e](https://github.com/lifinance/widget/commit/688236e6e374482155bcbab6d3a454a0cab9fa7f))
11
+
12
+ ### [3.14.1](https://github.com/lifinance/widget/compare/v3.14.0...v3.14.1) (2025-01-23)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * address confirmation bottom sheet height ([59d034b](https://github.com/lifinance/widget/commit/59d034b89b25d58345105de731fe3af2746e3119))
18
+
5
19
  ## [3.14.0](https://github.com/lifinance/widget/compare/v3.13.2...v3.14.0) (2025-01-22)
6
20
 
7
21
 
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "3.14.0";
2
+ export declare const version = "3.14.2";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.14.0';
2
+ export const version = '3.14.2';
3
3
  //# sourceMappingURL=version.js.map
@@ -1,2 +1,2 @@
1
1
  import type { MutableRefObject } from 'react';
2
- export declare const useSetContentHeight: (ref: MutableRefObject<HTMLElement | null>) => void;
2
+ export declare const useSetContentHeight: (ref: MutableRefObject<HTMLElement | null>, dependency?: unknown) => void;
@@ -4,8 +4,9 @@ import { useDefaultElementId } from './useDefaultElementId.js';
4
4
  // NOTE: this hook is implicitly tied to the widget height functionality in the
5
5
  // AppExpandedContainer, RelativeContainer and CssBaselineContainer components as defined in AppContainer.ts
6
6
  // CSS changes in those components can have implications for the functionality in this hook
7
- export const useSetContentHeight = (ref) => {
7
+ export const useSetContentHeight = (ref, dependency) => {
8
8
  const elementId = useDefaultElementId();
9
+ // biome-ignore lint/correctness/useExhaustiveDependencies: we use dependency to refresh height
9
10
  useLayoutEffect(() => {
10
11
  const relativeContainer = getRelativeContainer(elementId);
11
12
  if (!relativeContainer ||
@@ -17,6 +18,6 @@ export const useSetContentHeight = (ref) => {
17
18
  return () => {
18
19
  relativeContainer.style.removeProperty('min-height');
19
20
  };
20
- }, [elementId, ref]);
21
+ }, [elementId, ref, dependency]);
21
22
  };
22
23
  //# sourceMappingURL=useSetContentHeight.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSetContentHeight.js","sourceRoot":"","sources":["../../../src/hooks/useSetContentHeight.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,+EAA+E;AAC/E,8GAA8G;AAC9G,6FAA6F;AAE7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAyC,EACzC,EAAE;IACF,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAA;IACvC,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;QACzD,IACE,CAAC,iBAAiB;YAClB,CAAC,GAAG,CAAC,OAAO;YACZ,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,YAAY,EAC5D,CAAC;YACD,OAAM;QACR,CAAC;QACD,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAA;QACnE,OAAO,GAAG,EAAE;YACV,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAA;AACtB,CAAC,CAAA"}
1
+ {"version":3,"file":"useSetContentHeight.js","sourceRoot":"","sources":["../../../src/hooks/useSetContentHeight.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAE9D,+EAA+E;AAC/E,8GAA8G;AAC9G,6FAA6F;AAE7F,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,GAAyC,EACzC,UAAoB,EACpB,EAAE;IACF,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAA;IACvC,+FAA+F;IAC/F,eAAe,CAAC,GAAG,EAAE;QACnB,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;QACzD,IACE,CAAC,iBAAiB;YAClB,CAAC,GAAG,CAAC,OAAO;YACZ,GAAG,CAAC,OAAO,EAAE,YAAY,IAAI,iBAAiB,EAAE,YAAY,EAC5D,CAAC;YACD,OAAM;QACR,CAAC;QACD,iBAAiB,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,YAAY,IAAI,CAAA;QACnE,OAAO,GAAG,EAAE;YACV,iBAAiB,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAA;AAClC,CAAC,CAAA"}
@@ -24,4 +24,7 @@ export * from './types/events.js';
24
24
  export type { TokenAmount } from './types/token.js';
25
25
  export * from './types/widget.js';
26
26
  export { getPriceImpact } from './utils/getPriceImpact.js';
27
+ export { percentFormatter } from './utils/percentFormatter.js';
28
+ export { compactNumberFormatter } from './utils/compactNumberFormatter.js';
29
+ export { currencyExtendedFormatter } from './utils/currencyExtendedFormatter.js';
27
30
  export { navigationRoutes } from './utils/navigationRoutes.js';
package/dist/esm/index.js CHANGED
@@ -21,5 +21,8 @@ export { windows95Theme } from './themes/windows95.js';
21
21
  export * from './types/events.js';
22
22
  export * from './types/widget.js';
23
23
  export { getPriceImpact } from './utils/getPriceImpact.js';
24
+ export { percentFormatter } from './utils/percentFormatter.js';
25
+ export { compactNumberFormatter } from './utils/compactNumberFormatter.js';
26
+ export { currencyExtendedFormatter } from './utils/currencyExtendedFormatter.js';
24
27
  export { navigationRoutes } from './utils/navigationRoutes.js';
25
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE5C,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC1E,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,cAAc,mBAAmB,CAAA;AAEjC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACvD,OAAO,EAAE,GAAG,IAAI,UAAU,EAAE,MAAM,UAAU,CAAA;AAE5C,cAAc,6CAA6C,CAAA;AAC3D,cAAc,2CAA2C,CAAA;AACzD,cAAc,+CAA+C,CAAA;AAC7D,cAAc,6CAA6C,CAAA;AAC3D,cAAc,yCAAyC,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,cAAc,qBAAqB,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC1E,cAAc,wBAAwB,CAAA;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAA;AAChE,cAAc,6BAA6B,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,cAAc,sBAAsB,CAAA;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACtD,cAAc,mBAAmB,CAAA;AAEjC,cAAc,mBAAmB,CAAA;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAA;AAC1E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAA;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA"}
@@ -1,25 +1,31 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Info, Wallet, Warning } from '@mui/icons-material';
3
3
  import { Box, Button, Typography } from '@mui/material';
4
- import { forwardRef } from 'react';
4
+ import { forwardRef, useRef } from 'react';
5
5
  import { useTranslation } from 'react-i18next';
6
6
  import { AlertMessage } from '../../components/AlertMessage/AlertMessage.js';
7
7
  import { BottomSheet } from '../../components/BottomSheet/BottomSheet.js';
8
8
  import { useIsContractAddress } from '../../hooks/useIsContractAddress.js';
9
9
  import { useNavigateBack } from '../../hooks/useNavigateBack.js';
10
+ import { useSetContentHeight } from '../../hooks/useSetContentHeight.js';
10
11
  import { useFieldActions } from '../../stores/form/useFieldActions.js';
11
12
  import { useSendToWalletActions } from '../../stores/settings/useSendToWalletStore.js';
12
13
  import { IconContainer, SendToWalletButtonRow, SendToWalletSheetContainer, SheetAddressContainer, SheetTitle, } from './SendToWalletPage.style.js';
13
- export const ConfirmAddressSheet = forwardRef(({ validatedBookmark, onConfirm, chainId }, ref) => {
14
+ export const ConfirmAddressSheet = forwardRef((props, ref) => {
15
+ const handleClose = () => {
16
+ ;
17
+ ref.current?.close();
18
+ };
19
+ return (_jsx(BottomSheet, { ref: ref, children: _jsx(ConfirmAddressSheetContent, { ...props, onClose: handleClose }) }));
20
+ });
21
+ const ConfirmAddressSheetContent = ({ validatedBookmark, onConfirm, chainId, onClose, }) => {
14
22
  const { t } = useTranslation();
15
23
  const { navigateBack } = useNavigateBack();
16
24
  const { setFieldValue } = useFieldActions();
17
25
  const { setSendToWallet } = useSendToWalletActions();
18
26
  const isContractAddress = useIsContractAddress(validatedBookmark?.address, chainId, validatedBookmark?.chainType);
19
- const handleClose = () => {
20
- ;
21
- ref.current?.close();
22
- };
27
+ const containerRef = useRef(null);
28
+ useSetContentHeight(containerRef, isContractAddress);
23
29
  const handleConfirm = () => {
24
30
  if (validatedBookmark) {
25
31
  setFieldValue('toAddress', validatedBookmark.address, {
@@ -28,13 +34,13 @@ export const ConfirmAddressSheet = forwardRef(({ validatedBookmark, onConfirm, c
28
34
  });
29
35
  onConfirm?.(validatedBookmark);
30
36
  setSendToWallet(true);
31
- handleClose();
37
+ onClose();
32
38
  navigateBack();
33
39
  }
34
40
  };
35
- return (_jsx(BottomSheet, { ref: ref, children: _jsxs(SendToWalletSheetContainer, { children: [_jsx(IconContainer, { children: _jsx(Wallet, { sx: { fontSize: 40 } }) }), _jsx(SheetTitle, { children: t('sendToWallet.confirmWalletAddress') }), _jsxs(SheetAddressContainer, { children: [validatedBookmark?.name ? (_jsx(Typography, { sx: {
36
- fontWeight: 600,
37
- mb: 0.5,
38
- }, children: validatedBookmark?.name })) : null, _jsx(Typography, { children: validatedBookmark?.address })] }), _jsx(AlertMessage, { title: _jsx(Box, { sx: { display: 'grid', gap: 1 }, children: _jsx(Typography, { variant: "body2", fontWeight: 500, children: t('info.message.fundsToExchange') }) }), icon: _jsx(Info, {}), multiline: true }), isContractAddress ? (_jsx(AlertMessage, { title: _jsx(Typography, { variant: "body2", fontWeight: 500, children: t('info.message.smartContractAccount') }), icon: _jsx(Warning, {}), severity: "warning", multiline: true })) : null, _jsxs(SendToWalletButtonRow, { children: [_jsx(Button, { variant: "text", onClick: handleClose, fullWidth: true, children: t('button.cancel') }), _jsx(Button, { variant: "contained", onClick: handleConfirm, fullWidth: true, children: t('button.confirm') })] })] }) }));
39
- });
41
+ return (_jsxs(SendToWalletSheetContainer, { ref: containerRef, children: [_jsx(IconContainer, { children: _jsx(Wallet, { sx: { fontSize: 40 } }) }), _jsx(SheetTitle, { children: t('sendToWallet.confirmWalletAddress') }), _jsxs(SheetAddressContainer, { children: [validatedBookmark?.name ? (_jsx(Typography, { sx: {
42
+ fontWeight: 600,
43
+ mb: 0.5,
44
+ }, children: validatedBookmark?.name })) : null, _jsx(Typography, { children: validatedBookmark?.address })] }), _jsx(AlertMessage, { title: _jsx(Box, { sx: { display: 'grid', gap: 1 }, children: _jsx(Typography, { variant: "body2", fontWeight: 500, children: t('info.message.fundsToExchange') }) }), icon: _jsx(Info, {}), multiline: true }), isContractAddress ? (_jsx(AlertMessage, { title: _jsx(Typography, { variant: "body2", fontWeight: 500, children: t('info.message.smartContractAccount') }), icon: _jsx(Warning, {}), severity: "warning", multiline: true })) : null, _jsxs(SendToWalletButtonRow, { children: [_jsx(Button, { variant: "text", onClick: onClose, fullWidth: true, children: t('button.cancel') }), _jsx(Button, { variant: "contained", onClick: handleConfirm, fullWidth: true, children: t('button.confirm') })] })] }));
45
+ };
40
46
  //# sourceMappingURL=ConfirmAddressSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmAddressSheet.js","sourceRoot":"","sources":["../../../../src/pages/SendToWallet/ConfirmAddressSheet.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfirmAddressSheet.js","sourceRoot":"","sources":["../../../../src/pages/SendToWallet/ConfirmAddressSheet.tsx"],"names":[],"mappings":"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"}
@@ -5,11 +5,11 @@ import { I18nextProvider } from 'react-i18next';
5
5
  import * as supportedLanguages from '../../i18n/index.js';
6
6
  import { useSettings } from '../../stores/settings/useSettings.js';
7
7
  import { compactNumberFormatter } from '../../utils/compactNumberFormatter.js';
8
+ import { currencyExtendedFormatter } from '../../utils/currencyExtendedFormatter.js';
8
9
  import { deepMerge } from '../../utils/deepMerge.js';
9
10
  import { isItemAllowed } from '../../utils/item.js';
10
11
  import { percentFormatter } from '../../utils/percentFormatter.js';
11
12
  import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js';
12
- import { currencyExtendedFormatter } from './currencyExtendedFormatter.js';
13
13
  export const I18nProvider = ({ children, }) => {
14
14
  const { languageResources, languages } = useWidgetConfig();
15
15
  const { language } = useSettings(['language']);
@@ -1 +1 @@
1
- {"version":3,"file":"I18nProvider.js","sourceRoot":"","sources":["../../../../src/providers/I18nProvider/I18nProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"I18nProvider.js","sourceRoot":"","sources":["../../../../src/providers/I18nProvider/I18nProvider.tsx"],"names":[],"mappings":"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"}
@@ -46,7 +46,9 @@ export const FormUpdater = ({ reactiveFormValues }) => {
46
46
  if (reactiveFormValues.toAddress) {
47
47
  setSendToWallet(true);
48
48
  }
49
- setSelectedBookmark(toAddress);
49
+ if (toAddress) {
50
+ setSelectedBookmark(toAddress);
51
+ }
50
52
  setUserAndDefaultValues(accountForChainId(reactiveFormValues, account.chainId));
51
53
  }, [
52
54
  account.chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"FormUpdater.js","sourceRoot":"","sources":["../../../../src/stores/form/FormUpdater.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormUpdater.js","sourceRoot":"","sources":["../../../../src/stores/form/FormUpdater.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAA;AAClF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8CAA8C,CAAA;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AACxE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAA;AAEtF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,MAAM,CAAC,MAAM,WAAW,GAEnB,CAAC,EAAE,kBAAkB,EAAE,EAAE,EAAE;IAC9B,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,eAAe,EAAE,CAAA;IAC3D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;IAChC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,EAAE,eAAe,EAAE,GAAG,sBAAsB,EAAE,CAAA;IACpD,MAAM,EAAE,mBAAmB,EAAE,GAAG,kBAAkB,EAAE,CAAA;IACpD,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,uBAAuB,EAAE,GACrE,eAAe,EAAE,CAAA;IAEnB,mHAAmH;IACnH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAChB,OAAO,CAAC,OAAO,IAAI,MAAM,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;QAE1E,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC9D,OAAM;QACR,CAAC;QAED,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;YACrE,UAAU,CAAC,WAAW,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YAC1D,aAAa,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;YAC9B,IAAI,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC5B,aAAa,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;YACjC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,UAAU,CAAC,SAAS,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;YACxD,aAAa,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC9B,CAAC;IACH,CAAC,EAAE;QACD,OAAO,CAAC,OAAO;QACf,OAAO,CAAC,WAAW;QACnB,MAAM;QACN,SAAS;QACT,OAAO;QACP,SAAS;QACT,UAAU;QACV,aAAa;KACd,CAAC,CAAA;IAEF,kDAAkD;IAClD,+FAA+F;IAC/F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACjC,eAAe,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,mBAAmB,CAAC,SAAS,CAAC,CAAA;QAChC,CAAC;QAED,uBAAuB,CACrB,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,CACvD,CAAA;IACH,CAAC,EAAE;QACD,OAAO,CAAC,OAAO;QACf,SAAS;QACT,kBAAkB;QAClB,uBAAuB;QACvB,eAAe;QACf,mBAAmB;KACpB,CAAC,CAAA;IAEF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,iBAAiB,GAAG,CACxB,aAAqC,EACrC,OAAgB,EAChB,EAAE;IACF,MAAM,MAAM,GAA2B,EAAE,GAAG,aAAa,EAAE,CAAA;IAC3D,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAA0B,CAAA;QACpC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC;gBACtD,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC,CAAA"}
@@ -1,7 +1,9 @@
1
1
  import { useEffect } from 'react';
2
2
  import { useLocation } from 'react-router-dom';
3
+ import { useAddressValidation } from '../../hooks/useAddressValidation.js';
3
4
  import { useSendToWalletActions } from '../../stores/settings/useSendToWalletStore.js';
4
5
  import { formatInputAmount } from '../../utils/format.js';
6
+ import { useBookmarkActions } from '../bookmarks/useBookmarkActions.js';
5
7
  import { useFieldActions } from '../form/useFieldActions.js';
6
8
  import { useFieldValues } from '../form/useFieldValues.js';
7
9
  import { useTouchedFields } from '../form/useTouchedFields.js';
@@ -40,18 +42,51 @@ export const URLSearchParamsBuilder = () => {
40
42
  const touchedFields = useTouchedFields();
41
43
  const values = useFieldValues(...formValueKeys);
42
44
  const { setSendToWallet } = useSendToWalletActions();
45
+ const { setSelectedBookmark, addRecentWallet } = useBookmarkActions();
46
+ const { validateAddress } = useAddressValidation();
43
47
  // Using these methods as trying to use the touchedFields and values above
44
48
  // often has a lag that can effect the widgets initialisation sequence
45
49
  // and accidentally cause values to be wiped from the query string
46
50
  const { getFieldValues, isTouched, setUserAndDefaultValues } = useFieldActions();
47
51
  useEffect(() => {
48
- // get the initial values from the querysting
52
+ // get the initial values from the querystring
49
53
  const formValues = getDefaultValuesFromQueryString();
50
- if (formValues.toAddress) {
51
- setSendToWallet(true);
52
- }
54
+ /**
55
+ * When URL builder is enabled and user opens a page with toAddress parameter,
56
+ * validate the address and set it up as a bookmark. This allows direct linking
57
+ * to the widget with a pre-filled destination address that will be treated the
58
+ * same way as a manually entered and validated address.
59
+ */
60
+ const initializeFromAddress = async () => {
61
+ if (formValues.toAddress) {
62
+ try {
63
+ const validationResult = await validateAddress({
64
+ value: formValues.toAddress,
65
+ });
66
+ if (validationResult.isValid) {
67
+ const bookmark = {
68
+ address: validationResult.address,
69
+ chainType: validationResult.chainType,
70
+ };
71
+ setSelectedBookmark(bookmark);
72
+ addRecentWallet(bookmark);
73
+ setSendToWallet(true);
74
+ }
75
+ }
76
+ catch (_) {
77
+ // Address validation failed
78
+ }
79
+ }
80
+ };
81
+ initializeFromAddress();
53
82
  setUserAndDefaultValues(formValues);
54
- }, [setUserAndDefaultValues, setSendToWallet]);
83
+ }, [
84
+ setUserAndDefaultValues,
85
+ setSendToWallet,
86
+ validateAddress,
87
+ setSelectedBookmark,
88
+ addRecentWallet,
89
+ ]);
55
90
  // biome-ignore lint/correctness/useExhaustiveDependencies:
56
91
  useEffect(() => {
57
92
  // set the values on the querysting
@@ -1 +1 @@
1
- {"version":3,"file":"URLSearchParamsBuilder.js","sourceRoot":"","sources":["../../../../src/stores/form/URLSearchParamsBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAA;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAE9D,MAAM,aAAa,GAAqB;IACtC,YAAY;IACZ,WAAW;IACX,WAAW;IACX,WAAW;IACX,SAAS;IACT,SAAS;CACV,CAAA;AAED,MAAM,+BAA+B,GAAG,GAA2B,EAAE;IACnE,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CACrC,IAAI,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAC7C,CAGA;IAAA,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,IAAI,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;YAChE,OAAO,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,CAAA;QACpC,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,OAAO;QACL,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC9D,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC5D,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE;YACxD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YAC7D,CAAC,CAAC,EAAE,UAAU,EAAE,iBAAiB,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;YAC5D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzE,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACzC,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAA;IAClC,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAA;IACxC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,aAAa,CAAC,CAAA;IAC/C,MAAM,EAAE,eAAe,EAAE,GAAG,sBAAsB,EAAE,CAAA;IAEpD,0EAA0E;IAC1E,sEAAsE;IACtE,kEAAkE;IAClE,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,uBAAuB,EAAE,GAC1D,eAAe,EAAE,CAAA;IAEnB,SAAS,CAAC,GAAG,EAAE;QACb,8CAA8C;QAC9C,MAAM,UAAU,GAAG,+BAA+B,EAAE,CAAA;QAEpD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YACzB,eAAe,CAAC,IAAI,CAAC,CAAA;QACvB,CAAC;QAED,uBAAuB,CAAC,UAAU,CAAC,CAAA;IACrC,CAAC,EAAE,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC,CAAA;IAE9C,2DAA2D;IAC3D,SAAS,CAAC,GAAG,EAAE;QACb,mCAAmC;QACnC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAe,CAAC,CAAA;QAC3C,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACpC,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;gBAC5B,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;YAC7C,CAAC;iBAAM,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gBAC/C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA;QACvB,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE,GAAG,CAAC,CAAA;IAC5D,CAAC,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;IAEhE,OAAO,IAAI,CAAA;AACb,CAAC,CAAA"}
1
+ {"version":3,"file":"URLSearchParamsBuilder.js","sourceRoot":"","sources":["../../../../src/stores/form/URLSearchParamsBuilder.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"currencyExtendedFormatter.js","sourceRoot":"","sources":["../../../src/utils/currencyExtendedFormatter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,GAAuB,EACvB,OAAY,EACZ,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;QAC3C,GAAG,OAAO;QACV,KAAK,EAAE,UAAU;KAClB,CAAC,CAAA;IACF,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAC9B,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;QACrC,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifi/widget",
3
- "version": "3.14.0",
3
+ "version": "3.14.2",
4
4
  "description": "LI.FI Widget for cross-chain bridging and swapping. It will drive your multi-chain strategy and attract new users from everywhere.",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -1,2 +1,2 @@
1
1
  export const name = '@lifi/widget'
2
- export const version = '3.14.0'
2
+ export const version = '3.14.2'
@@ -8,9 +8,11 @@ import { useDefaultElementId } from './useDefaultElementId.js'
8
8
  // CSS changes in those components can have implications for the functionality in this hook
9
9
 
10
10
  export const useSetContentHeight = (
11
- ref: MutableRefObject<HTMLElement | null>
11
+ ref: MutableRefObject<HTMLElement | null>,
12
+ dependency?: unknown
12
13
  ) => {
13
14
  const elementId = useDefaultElementId()
15
+ // biome-ignore lint/correctness/useExhaustiveDependencies: we use dependency to refresh height
14
16
  useLayoutEffect(() => {
15
17
  const relativeContainer = getRelativeContainer(elementId)
16
18
  if (
@@ -24,5 +26,5 @@ export const useSetContentHeight = (
24
26
  return () => {
25
27
  relativeContainer.style.removeProperty('min-height')
26
28
  }
27
- }, [elementId, ref])
29
+ }, [elementId, ref, dependency])
28
30
  }
package/src/index.ts CHANGED
@@ -24,4 +24,7 @@ export * from './types/events.js'
24
24
  export type { TokenAmount } from './types/token.js'
25
25
  export * from './types/widget.js'
26
26
  export { getPriceImpact } from './utils/getPriceImpact.js'
27
+ export { percentFormatter } from './utils/percentFormatter.js'
28
+ export { compactNumberFormatter } from './utils/compactNumberFormatter.js'
29
+ export { currencyExtendedFormatter } from './utils/currencyExtendedFormatter.js'
27
30
  export { navigationRoutes } from './utils/navigationRoutes.js'
@@ -1,13 +1,14 @@
1
1
  import { Info, Wallet, Warning } from '@mui/icons-material'
2
2
  import { Box, Button, Typography } from '@mui/material'
3
3
  import type { MutableRefObject } from 'react'
4
- import { forwardRef } from 'react'
4
+ import { forwardRef, useRef } from 'react'
5
5
  import { useTranslation } from 'react-i18next'
6
6
  import { AlertMessage } from '../../components/AlertMessage/AlertMessage.js'
7
7
  import { BottomSheet } from '../../components/BottomSheet/BottomSheet.js'
8
8
  import type { BottomSheetBase } from '../../components/BottomSheet/types.js'
9
9
  import { useIsContractAddress } from '../../hooks/useIsContractAddress.js'
10
10
  import { useNavigateBack } from '../../hooks/useNavigateBack.js'
11
+ import { useSetContentHeight } from '../../hooks/useSetContentHeight.js'
11
12
  import type { Bookmark } from '../../stores/bookmarks/types.js'
12
13
  import { useFieldActions } from '../../stores/form/useFieldActions.js'
13
14
  import { useSendToWalletActions } from '../../stores/settings/useSendToWalletStore.js'
@@ -25,10 +26,31 @@ interface ConfirmAddressSheetProps {
25
26
  chainId?: number
26
27
  }
27
28
 
29
+ interface ConfirmAddressSheetContentProps extends ConfirmAddressSheetProps {
30
+ onClose: () => void
31
+ }
32
+
28
33
  export const ConfirmAddressSheet = forwardRef<
29
34
  BottomSheetBase,
30
35
  ConfirmAddressSheetProps
31
- >(({ validatedBookmark, onConfirm, chainId }, ref) => {
36
+ >((props, ref) => {
37
+ const handleClose = () => {
38
+ ;(ref as MutableRefObject<BottomSheetBase>).current?.close()
39
+ }
40
+
41
+ return (
42
+ <BottomSheet ref={ref}>
43
+ <ConfirmAddressSheetContent {...props} onClose={handleClose} />
44
+ </BottomSheet>
45
+ )
46
+ })
47
+
48
+ const ConfirmAddressSheetContent: React.FC<ConfirmAddressSheetContentProps> = ({
49
+ validatedBookmark,
50
+ onConfirm,
51
+ chainId,
52
+ onClose,
53
+ }) => {
32
54
  const { t } = useTranslation()
33
55
  const { navigateBack } = useNavigateBack()
34
56
  const { setFieldValue } = useFieldActions()
@@ -39,9 +61,8 @@ export const ConfirmAddressSheet = forwardRef<
39
61
  validatedBookmark?.chainType
40
62
  )
41
63
 
42
- const handleClose = () => {
43
- ;(ref as MutableRefObject<BottomSheetBase>).current?.close()
44
- }
64
+ const containerRef = useRef<HTMLElement>(null)
65
+ useSetContentHeight(containerRef, isContractAddress)
45
66
 
46
67
  const handleConfirm = () => {
47
68
  if (validatedBookmark) {
@@ -51,63 +72,61 @@ export const ConfirmAddressSheet = forwardRef<
51
72
  })
52
73
  onConfirm?.(validatedBookmark)
53
74
  setSendToWallet(true)
54
- handleClose()
75
+ onClose()
55
76
  navigateBack()
56
77
  }
57
78
  }
58
79
 
59
80
  return (
60
- <BottomSheet ref={ref}>
61
- <SendToWalletSheetContainer>
62
- <IconContainer>
63
- <Wallet sx={{ fontSize: 40 }} />
64
- </IconContainer>
65
- <SheetTitle>{t('sendToWallet.confirmWalletAddress')}</SheetTitle>
66
- <SheetAddressContainer>
67
- {validatedBookmark?.name ? (
68
- <Typography
69
- sx={{
70
- fontWeight: 600,
71
- mb: 0.5,
72
- }}
73
- >
74
- {validatedBookmark?.name}
81
+ <SendToWalletSheetContainer ref={containerRef}>
82
+ <IconContainer>
83
+ <Wallet sx={{ fontSize: 40 }} />
84
+ </IconContainer>
85
+ <SheetTitle>{t('sendToWallet.confirmWalletAddress')}</SheetTitle>
86
+ <SheetAddressContainer>
87
+ {validatedBookmark?.name ? (
88
+ <Typography
89
+ sx={{
90
+ fontWeight: 600,
91
+ mb: 0.5,
92
+ }}
93
+ >
94
+ {validatedBookmark?.name}
95
+ </Typography>
96
+ ) : null}
97
+ <Typography>{validatedBookmark?.address}</Typography>
98
+ </SheetAddressContainer>
99
+ <AlertMessage
100
+ title={
101
+ <Box sx={{ display: 'grid', gap: 1 }}>
102
+ <Typography variant="body2" fontWeight={500}>
103
+ {t('info.message.fundsToExchange')}
75
104
  </Typography>
76
- ) : null}
77
- <Typography>{validatedBookmark?.address}</Typography>
78
- </SheetAddressContainer>
105
+ </Box>
106
+ }
107
+ icon={<Info />}
108
+ multiline
109
+ />
110
+ {isContractAddress ? (
79
111
  <AlertMessage
80
112
  title={
81
- <Box sx={{ display: 'grid', gap: 1 }}>
82
- <Typography variant="body2" fontWeight={500}>
83
- {t('info.message.fundsToExchange')}
84
- </Typography>
85
- </Box>
113
+ <Typography variant="body2" fontWeight={500}>
114
+ {t('info.message.smartContractAccount')}
115
+ </Typography>
86
116
  }
87
- icon={<Info />}
117
+ icon={<Warning />}
118
+ severity="warning"
88
119
  multiline
89
120
  />
90
- {isContractAddress ? (
91
- <AlertMessage
92
- title={
93
- <Typography variant="body2" fontWeight={500}>
94
- {t('info.message.smartContractAccount')}
95
- </Typography>
96
- }
97
- icon={<Warning />}
98
- severity="warning"
99
- multiline
100
- />
101
- ) : null}
102
- <SendToWalletButtonRow>
103
- <Button variant="text" onClick={handleClose} fullWidth>
104
- {t('button.cancel')}
105
- </Button>
106
- <Button variant="contained" onClick={handleConfirm} fullWidth>
107
- {t('button.confirm')}
108
- </Button>
109
- </SendToWalletButtonRow>
110
- </SendToWalletSheetContainer>
111
- </BottomSheet>
121
+ ) : null}
122
+ <SendToWalletButtonRow>
123
+ <Button variant="text" onClick={onClose} fullWidth>
124
+ {t('button.cancel')}
125
+ </Button>
126
+ <Button variant="contained" onClick={handleConfirm} fullWidth>
127
+ {t('button.confirm')}
128
+ </Button>
129
+ </SendToWalletButtonRow>
130
+ </SendToWalletSheetContainer>
112
131
  )
113
- })
132
+ }
@@ -5,11 +5,11 @@ import { I18nextProvider } from 'react-i18next'
5
5
  import * as supportedLanguages from '../../i18n/index.js'
6
6
  import { useSettings } from '../../stores/settings/useSettings.js'
7
7
  import { compactNumberFormatter } from '../../utils/compactNumberFormatter.js'
8
+ import { currencyExtendedFormatter } from '../../utils/currencyExtendedFormatter.js'
8
9
  import { deepMerge } from '../../utils/deepMerge.js'
9
10
  import { isItemAllowed } from '../../utils/item.js'
10
11
  import { percentFormatter } from '../../utils/percentFormatter.js'
11
12
  import { useWidgetConfig } from '../WidgetProvider/WidgetProvider.js'
12
- import { currencyExtendedFormatter } from './currencyExtendedFormatter.js'
13
13
  import type { LanguageKey, LanguageTranslationResources } from './types.js'
14
14
 
15
15
  export const I18nProvider: React.FC<React.PropsWithChildren> = ({
@@ -56,8 +56,9 @@ export const FormUpdater: React.FC<{
56
56
  if (reactiveFormValues.toAddress) {
57
57
  setSendToWallet(true)
58
58
  }
59
-
60
- setSelectedBookmark(toAddress)
59
+ if (toAddress) {
60
+ setSelectedBookmark(toAddress)
61
+ }
61
62
 
62
63
  setUserAndDefaultValues(
63
64
  accountForChainId(reactiveFormValues, account.chainId)
@@ -1,7 +1,9 @@
1
1
  import { useEffect } from 'react'
2
2
  import { useLocation } from 'react-router-dom'
3
+ import { useAddressValidation } from '../../hooks/useAddressValidation.js'
3
4
  import { useSendToWalletActions } from '../../stores/settings/useSendToWalletStore.js'
4
5
  import { formatInputAmount } from '../../utils/format.js'
6
+ import { useBookmarkActions } from '../bookmarks/useBookmarkActions.js'
5
7
  import type { DefaultValues, FormFieldNames } from '../form/types.js'
6
8
  import { useFieldActions } from '../form/useFieldActions.js'
7
9
  import { useFieldValues } from '../form/useFieldValues.js'
@@ -49,6 +51,8 @@ export const URLSearchParamsBuilder = () => {
49
51
  const touchedFields = useTouchedFields()
50
52
  const values = useFieldValues(...formValueKeys)
51
53
  const { setSendToWallet } = useSendToWalletActions()
54
+ const { setSelectedBookmark, addRecentWallet } = useBookmarkActions()
55
+ const { validateAddress } = useAddressValidation()
52
56
 
53
57
  // Using these methods as trying to use the touchedFields and values above
54
58
  // often has a lag that can effect the widgets initialisation sequence
@@ -57,15 +61,45 @@ export const URLSearchParamsBuilder = () => {
57
61
  useFieldActions()
58
62
 
59
63
  useEffect(() => {
60
- // get the initial values from the querysting
64
+ // get the initial values from the querystring
61
65
  const formValues = getDefaultValuesFromQueryString()
62
66
 
63
- if (formValues.toAddress) {
64
- setSendToWallet(true)
67
+ /**
68
+ * When URL builder is enabled and user opens a page with toAddress parameter,
69
+ * validate the address and set it up as a bookmark. This allows direct linking
70
+ * to the widget with a pre-filled destination address that will be treated the
71
+ * same way as a manually entered and validated address.
72
+ */
73
+ const initializeFromAddress = async () => {
74
+ if (formValues.toAddress) {
75
+ try {
76
+ const validationResult = await validateAddress({
77
+ value: formValues.toAddress,
78
+ })
79
+ if (validationResult.isValid) {
80
+ const bookmark = {
81
+ address: validationResult.address,
82
+ chainType: validationResult.chainType,
83
+ }
84
+ setSelectedBookmark(bookmark)
85
+ addRecentWallet(bookmark)
86
+ setSendToWallet(true)
87
+ }
88
+ } catch (_) {
89
+ // Address validation failed
90
+ }
91
+ }
65
92
  }
66
93
 
94
+ initializeFromAddress()
67
95
  setUserAndDefaultValues(formValues)
68
- }, [setUserAndDefaultValues, setSendToWallet])
96
+ }, [
97
+ setUserAndDefaultValues,
98
+ setSendToWallet,
99
+ validateAddress,
100
+ setSelectedBookmark,
101
+ addRecentWallet,
102
+ ])
69
103
 
70
104
  // biome-ignore lint/correctness/useExhaustiveDependencies:
71
105
  useEffect(() => {
@@ -1 +0,0 @@
1
- {"version":3,"file":"currencyExtendedFormatter.js","sourceRoot":"","sources":["../../../../src/providers/I18nProvider/currencyExtendedFormatter.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,yBAAyB,GAAG,CACvC,GAAuB,EACvB,OAAY,EACZ,EAAE;IACF,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;QAC3C,GAAG,OAAO;QACV,KAAK,EAAE,UAAU;KAClB,CAAC,CAAA;IACF,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,EAAE,CAAC;YAC9B,OAAO,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAA;QACrC,CAAC;QACD,OAAO,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC,CAAA;AACH,CAAC,CAAA"}