@lifi/widget 3.2.2 → 3.4.0-beta.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/_esm/components/ActiveTransactions/ActiveTransactionItem.js +1 -1
  3. package/_esm/components/Card/CardIconButton.d.ts +4 -1
  4. package/_esm/components/Card/CardIconButton.js.map +1 -1
  5. package/_esm/components/FeeBreakdownTooltip.d.ts +0 -2
  6. package/_esm/components/FeeBreakdownTooltip.js +2 -5
  7. package/_esm/components/FeeBreakdownTooltip.js.map +1 -1
  8. package/_esm/components/IconTypography.d.ts +3 -3
  9. package/_esm/components/IconTypography.js +2 -2
  10. package/_esm/components/IconTypography.js.map +1 -1
  11. package/_esm/components/RouteCard/RouteCardEssentials.js +10 -11
  12. package/_esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
  13. package/_esm/components/Step/DestinationWalletAddress.js +2 -2
  14. package/_esm/components/Step/DestinationWalletAddress.js.map +1 -1
  15. package/_esm/components/Step/Step.js +1 -1
  16. package/_esm/components/Step/StepProcess.js +3 -3
  17. package/_esm/components/Step/StepProcess.js.map +1 -1
  18. package/_esm/components/Step/StepTimer.js +44 -27
  19. package/_esm/components/Step/StepTimer.js.map +1 -1
  20. package/_esm/components/StepActions/StepActions.js +32 -12
  21. package/_esm/components/StepActions/StepActions.js.map +1 -1
  22. package/_esm/components/StepActions/StepActions.style.d.ts +0 -3
  23. package/_esm/components/StepActions/StepActions.style.js +0 -6
  24. package/_esm/components/StepActions/StepActions.style.js.map +1 -1
  25. package/_esm/components/StepActions/types.d.ts +2 -3
  26. package/_esm/components/TransactionDetails.js +24 -9
  27. package/_esm/components/TransactionDetails.js.map +1 -1
  28. package/_esm/config/version.d.ts +1 -1
  29. package/_esm/config/version.js +1 -1
  30. package/_esm/config/version.js.map +1 -1
  31. package/_esm/hooks/timer/useTimer.js +2 -2
  32. package/_esm/hooks/timer/useTimer.js.map +1 -1
  33. package/_esm/i18n/en.json +4 -2
  34. package/_esm/i18n/index.js +15 -15
  35. package/_esm/i18n/index.js.map +1 -1
  36. package/_esm/pages/TransactionDetailsPage/TransactionDetailsPage.js +3 -2
  37. package/_esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  38. package/_esm/pages/TransactionPage/TokenValueBottomSheet.d.ts +0 -1
  39. package/_esm/pages/TransactionPage/TokenValueBottomSheet.js +7 -14
  40. package/_esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  41. package/_esm/pages/TransactionPage/TransactionPage.js +16 -8
  42. package/_esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  43. package/_esm/pages/TransactionPage/utils.d.ts +2 -2
  44. package/_esm/pages/TransactionPage/utils.js +9 -5
  45. package/_esm/pages/TransactionPage/utils.js.map +1 -1
  46. package/_esm/stores/routes/types.d.ts +6 -6
  47. package/_esm/stores/routes/types.js +6 -6
  48. package/_esm/stores/routes/types.js.map +1 -1
  49. package/_esm/types/events.d.ts +5 -4
  50. package/_esm/types/widget.d.ts +7 -1
  51. package/_esm/types/widget.js +1 -0
  52. package/_esm/types/widget.js.map +1 -1
  53. package/_esm/utils/converters.js +1 -1
  54. package/_esm/utils/converters.js.map +1 -1
  55. package/_esm/utils/fees.d.ts +7 -0
  56. package/_esm/utils/fees.js +14 -0
  57. package/_esm/utils/fees.js.map +1 -1
  58. package/components/ActiveTransactions/ActiveTransactionItem.tsx +1 -1
  59. package/components/Card/CardIconButton.tsx +4 -1
  60. package/components/FeeBreakdownTooltip.tsx +4 -10
  61. package/components/IconTypography.ts +2 -2
  62. package/components/RouteCard/RouteCardEssentials.tsx +19 -15
  63. package/components/Step/DestinationWalletAddress.tsx +3 -3
  64. package/components/Step/Step.tsx +1 -1
  65. package/components/Step/StepProcess.tsx +6 -6
  66. package/components/Step/StepTimer.tsx +77 -32
  67. package/components/StepActions/StepActions.style.tsx +0 -8
  68. package/components/StepActions/StepActions.tsx +45 -28
  69. package/components/StepActions/types.ts +2 -2
  70. package/components/TransactionDetails.tsx +80 -44
  71. package/config/version.ts +1 -1
  72. package/hooks/timer/useTimer.ts +4 -2
  73. package/i18n/en.json +4 -2
  74. package/i18n/index.ts +15 -15
  75. package/package.json +10 -10
  76. package/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +6 -5
  77. package/pages/TransactionPage/TokenValueBottomSheet.tsx +32 -19
  78. package/pages/TransactionPage/TransactionPage.tsx +27 -10
  79. package/pages/TransactionPage/utils.ts +23 -8
  80. package/stores/routes/types.ts +6 -6
  81. package/types/events.ts +5 -4
  82. package/types/widget.ts +7 -0
  83. package/utils/converters.ts +1 -1
  84. package/utils/fees.ts +24 -0
  85. package/_esm/components/Step/StepProcess.style.d.ts +0 -9
  86. package/_esm/components/Step/StepProcess.style.js +0 -6
  87. package/_esm/components/Step/StepProcess.style.js.map +0 -1
  88. package/components/Step/StepProcess.style.tsx +0 -9
@@ -1 +1 @@
1
- {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../utils/converters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converters.js","sourceRoot":"","sources":["../../utils/converters.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,13 @@ export interface FeesBreakdown {
4
4
  amountUSD: number;
5
5
  token: Token;
6
6
  }
7
+ export declare const getAccumulatedFeeCostsBreakdown: (route: RouteExtended, included?: boolean) => {
8
+ gasCosts: FeesBreakdown[];
9
+ feeCosts: FeesBreakdown[];
10
+ gasCostUSD: number;
11
+ feeCostUSD: number;
12
+ combinedFeesUSD: number;
13
+ };
7
14
  export declare const getGasCostsBreakdown: (route: RouteExtended) => FeesBreakdown[];
8
15
  export declare const getFeeCostsBreakdown: (route: RouteExtended, included?: boolean) => FeesBreakdown[];
9
16
  export declare const getStepFeeCostsBreakdown: (feeCosts: FeeCost[] | GasCost[]) => FeesBreakdown;
@@ -1,4 +1,18 @@
1
1
  import { formatUnits } from 'viem';
2
+ export const getAccumulatedFeeCostsBreakdown = (route, included = false) => {
3
+ const gasCosts = getGasCostsBreakdown(route);
4
+ const feeCosts = getFeeCostsBreakdown(route, included);
5
+ const gasCostUSD = gasCosts.reduce((sum, gasCost) => sum + gasCost.amountUSD, 0);
6
+ const feeCostUSD = feeCosts.reduce((sum, feeCost) => sum + feeCost.amountUSD, 0);
7
+ const combinedFeesUSD = gasCostUSD + feeCostUSD;
8
+ return {
9
+ gasCosts,
10
+ feeCosts,
11
+ gasCostUSD,
12
+ feeCostUSD,
13
+ combinedFeesUSD,
14
+ };
15
+ };
2
16
  export const getGasCostsBreakdown = (route) => {
3
17
  return Array.from(route.steps
4
18
  .reduce((groupedGasCosts, step) => {
@@ -1 +1 @@
1
- {"version":3,"file":"fees.js","sourceRoot":"","sources":["../../utils/fees.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fees.js","sourceRoot":"","sources":["../../utils/fees.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export const ActiveTransactionItem: React.FC<{
41
41
  return <ErrorRounded color="error" fontSize="small" />;
42
42
  default:
43
43
  return (
44
- <Typography fontSize={14} fontWeight={500}>
44
+ <Typography fontSize={14} fontWeight={600}>
45
45
  <StepTimer step={lastActiveStep} hideInProgress />
46
46
  </Typography>
47
47
  );
@@ -1,7 +1,10 @@
1
+ import type { IconButtonProps, LinkProps } from '@mui/material';
1
2
  import { IconButton as MuiIconButton, styled } from '@mui/material';
2
3
  import { getContrastAlphaColor } from '../../utils/colors.js';
3
4
 
4
- export const CardIconButton = styled(MuiIconButton)(({ theme }) => {
5
+ export const CardIconButton = styled(MuiIconButton)<
6
+ IconButtonProps & Pick<LinkProps, 'href' | 'target' | 'rel'>
7
+ >(({ theme }) => {
5
8
  return {
6
9
  padding: theme.spacing(0.5),
7
10
  backgroundColor: getContrastAlphaColor(theme, 0.04),
@@ -1,42 +1,36 @@
1
- import type { Route } from '@lifi/sdk';
2
1
  import { Box, Tooltip, Typography } from '@mui/material';
3
2
  import type { TFunction } from 'i18next';
4
3
  import type { ReactElement } from 'react';
5
4
  import { useTranslation } from 'react-i18next';
6
5
  import { formatUnits } from 'viem';
7
6
  import type { FeesBreakdown } from '../utils/fees.js';
8
- import { getFeeCostsBreakdown, getGasCostsBreakdown } from '../utils/fees.js';
9
7
 
10
8
  export interface FeeBreakdownTooltipProps {
11
- route: Route;
12
9
  gasCosts?: FeesBreakdown[];
13
10
  feeCosts?: FeesBreakdown[];
14
11
  children: ReactElement<any, any>;
15
12
  }
16
13
 
17
14
  export const FeeBreakdownTooltip: React.FC<FeeBreakdownTooltipProps> = ({
18
- route,
19
15
  gasCosts,
20
16
  feeCosts,
21
17
  children,
22
18
  }) => {
23
19
  const { t } = useTranslation();
24
- const _gasCosts = gasCosts ?? getGasCostsBreakdown(route);
25
- const _feeCosts = feeCosts ?? getFeeCostsBreakdown(route, false);
26
20
  return (
27
21
  <Tooltip
28
22
  title={
29
23
  <Box>
30
- {_gasCosts.length ? (
24
+ {gasCosts?.length ? (
31
25
  <Box>
32
26
  {t('main.fees.network')}
33
- {getFeeBreakdownTypography(_gasCosts, t)}
27
+ {getFeeBreakdownTypography(gasCosts, t)}
34
28
  </Box>
35
29
  ) : null}
36
- {_feeCosts.length ? (
30
+ {feeCosts?.length ? (
37
31
  <Box mt={0.5}>
38
32
  {t('main.fees.provider')}
39
- {getFeeBreakdownTypography(_feeCosts, t)}
33
+ {getFeeBreakdownTypography(feeCosts, t)}
40
34
  </Box>
41
35
  ) : null}
42
36
  </Box>
@@ -1,6 +1,6 @@
1
- import { Typography, alpha, styled } from '@mui/material';
1
+ import { alpha, Box, styled } from '@mui/material';
2
2
 
3
- export const IconTypography = styled(Typography)(({ theme }) => ({
3
+ export const IconTypography = styled(Box)(({ theme }) => ({
4
4
  color:
5
5
  theme.palette.mode === 'light'
6
6
  ? alpha(theme.palette.common.black, 0.32)
@@ -1,7 +1,7 @@
1
1
  import { AccessTimeFilled, LocalGasStationRounded } from '@mui/icons-material';
2
2
  import { Box, Tooltip, Typography } from '@mui/material';
3
3
  import { useTranslation } from 'react-i18next';
4
- import { getFeeCostsBreakdown } from '../../utils/fees.js';
4
+ import { getAccumulatedFeeCostsBreakdown } from '../../utils/fees.js';
5
5
  import { FeeBreakdownTooltip } from '../FeeBreakdownTooltip.js';
6
6
  import { IconTypography } from '../IconTypography.js';
7
7
  import { TokenRate } from '../TokenRate/TokenRate.js';
@@ -11,15 +11,15 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
11
11
  route,
12
12
  }) => {
13
13
  const { t, i18n } = useTranslation();
14
- const executionTimeMinutes = Math.ceil(
15
- route.steps
16
- .map((step) => step.estimate.executionDuration)
17
- .reduce((duration, x) => duration + x, 0) / 60,
14
+ const executionTimeSeconds = Math.floor(
15
+ route.steps.reduce(
16
+ (duration, step) => duration + step.estimate.executionDuration,
17
+ 0,
18
+ ),
18
19
  );
19
- const gasCostUSD = parseFloat(route.gasCostUSD || '0');
20
- const feeCosts = getFeeCostsBreakdown(route, false);
21
- const fees =
22
- gasCostUSD + feeCosts.reduce((sum, feeCost) => sum + feeCost.amountUSD, 0);
20
+ const executionTimeMinutes = Math.floor(executionTimeSeconds / 60);
21
+ const { gasCosts, feeCosts, combinedFeesUSD } =
22
+ getAccumulatedFeeCostsBreakdown(route);
23
23
  return (
24
24
  <Box
25
25
  display="flex"
@@ -30,7 +30,7 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
30
30
  >
31
31
  <TokenRate route={route} />
32
32
  <Box display="flex" alignItems="center">
33
- <FeeBreakdownTooltip route={route} feeCosts={feeCosts}>
33
+ <FeeBreakdownTooltip gasCosts={gasCosts} feeCosts={feeCosts}>
34
34
  <Box display="flex" mr={1.5} alignItems="center">
35
35
  <IconTypography mr={0.5} fontSize={16}>
36
36
  <LocalGasStationRounded fontSize="inherit" />
@@ -38,11 +38,12 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
38
38
  <Typography
39
39
  fontSize={14}
40
40
  color="text.primary"
41
- fontWeight="500"
41
+ fontWeight={600}
42
42
  lineHeight={1}
43
+ data-value={combinedFeesUSD}
43
44
  >
44
45
  {t(`format.currency`, {
45
- value: fees,
46
+ value: combinedFeesUSD,
46
47
  })}
47
48
  </Typography>
48
49
  </Box>
@@ -55,12 +56,15 @@ export const RouteCardEssentials: React.FC<RouteCardEssentialsProps> = ({
55
56
  <Typography
56
57
  fontSize={14}
57
58
  color="text.primary"
58
- fontWeight="500"
59
+ fontWeight={600}
59
60
  lineHeight={1}
60
61
  >
61
- {executionTimeMinutes.toLocaleString(i18n.language, {
62
+ {(executionTimeSeconds < 60
63
+ ? executionTimeSeconds
64
+ : executionTimeMinutes
65
+ ).toLocaleString(i18n.language, {
62
66
  style: 'unit',
63
- unit: 'minute',
67
+ unit: executionTimeSeconds < 60 ? 'second' : 'minute',
64
68
  unitDisplay: 'narrow',
65
69
  })}
66
70
  </Typography>
@@ -2,8 +2,8 @@ import type { LiFiStepExtended } from '@lifi/sdk';
2
2
  import { LinkRounded, Wallet } from '@mui/icons-material';
3
3
  import { Box, Link, Typography } from '@mui/material';
4
4
  import { useTranslation } from 'react-i18next';
5
+ import { CardIconButton } from '../Card/CardIconButton.js';
5
6
  import { CircularIcon } from './CircularProgress.style.js';
6
- import { LinkButton } from './StepProcess.style.js';
7
7
 
8
8
  export const DestinationWalletAddress: React.FC<{
9
9
  step: LiFiStepExtended;
@@ -38,7 +38,7 @@ export const DestinationWalletAddress: React.FC<{
38
38
  address: toAddress,
39
39
  })}
40
40
  </Typography>
41
- <LinkButton
41
+ <CardIconButton
42
42
  size="medium"
43
43
  LinkComponent={Link}
44
44
  href={toAddressLink}
@@ -46,7 +46,7 @@ export const DestinationWalletAddress: React.FC<{
46
46
  rel="nofollow noreferrer"
47
47
  >
48
48
  <LinkRounded />
49
- </LinkButton>
49
+ </CardIconButton>
50
50
  </Box>
51
51
  </Box>
52
52
  );
@@ -73,7 +73,7 @@ export const Step: React.FC<{
73
73
  }}
74
74
  >
75
75
  <CardTitle flex={1}>{getCardTitle()}</CardTitle>
76
- <CardTitle sx={{ fontWeight: 500 }}>
76
+ <CardTitle sx={{ fontWeight: 600 }}>
77
77
  <StepTimer step={step} />
78
78
  </CardTitle>
79
79
  </Box>
@@ -1,9 +1,9 @@
1
1
  import type { LiFiStep, Process } from '@lifi/sdk';
2
- import { LinkRounded } from '@mui/icons-material';
2
+ import { OpenInNewRounded } from '@mui/icons-material';
3
3
  import { Box, Link, Typography } from '@mui/material';
4
4
  import { useProcessMessage } from '../../hooks/useProcessMessage.js';
5
+ import { CardIconButton } from '../Card/CardIconButton.js';
5
6
  import { CircularProgress } from './CircularProgress.js';
6
- import { LinkButton } from './StepProcess.style.js';
7
7
 
8
8
  export const StepProcess: React.FC<{
9
9
  step: LiFiStep;
@@ -28,15 +28,15 @@ export const StepProcess: React.FC<{
28
28
  {title}
29
29
  </Typography>
30
30
  {process.txLink ? (
31
- <LinkButton
32
- size="medium"
31
+ <CardIconButton
32
+ size="small"
33
33
  LinkComponent={Link}
34
34
  href={process.txLink}
35
35
  target="_blank"
36
36
  rel="nofollow noreferrer"
37
37
  >
38
- <LinkRounded />
39
- </LinkButton>
38
+ <OpenInNewRounded fontSize="inherit" />
39
+ </CardIconButton>
40
40
  ) : null}
41
41
  </Box>
42
42
  {message ? (
@@ -1,11 +1,22 @@
1
1
  import type { LiFiStepExtended } from '@lifi/sdk';
2
+ import { AccessTimeFilled } from '@mui/icons-material';
3
+ import { Box, Tooltip } from '@mui/material';
2
4
  import { useEffect, useState } from 'react';
3
5
  import { useTranslation } from 'react-i18next';
4
6
  import { useTimer } from '../../hooks/timer/useTimer.js';
7
+ import { IconTypography } from '../IconTypography.js';
8
+
9
+ const getExecutionProcess = (step: LiFiStepExtended) =>
10
+ step.execution?.process.findLast(
11
+ (process) =>
12
+ process.type === 'SWAP' ||
13
+ process.type === 'CROSS_CHAIN' ||
14
+ process.type === 'RECEIVING_CHAIN',
15
+ );
5
16
 
6
17
  const getExpiryTimestamp = (step: LiFiStepExtended) =>
7
18
  new Date(
8
- (step.execution?.process[0]?.startedAt ?? Date.now()) +
19
+ (getExecutionProcess(step)?.startedAt ?? Date.now()) +
9
20
  step.estimate.executionDuration * 1000,
10
21
  );
11
22
 
@@ -15,8 +26,12 @@ export const StepTimer: React.FC<{
15
26
  }> = ({ step, hideInProgress }) => {
16
27
  const { t, i18n } = useTranslation();
17
28
  const [isExpired, setExpired] = useState(false);
18
- const [isExecutionStarted, setExecutionStarted] = useState(!!step.execution);
19
- const [expiryTimestamp] = useState(() => getExpiryTimestamp(step));
29
+ const [isExecutionStarted, setExecutionStarted] = useState(
30
+ () => !!getExecutionProcess(step),
31
+ );
32
+ const [expiryTimestamp, setExpiryTimestamp] = useState(() =>
33
+ getExpiryTimestamp(step),
34
+ );
20
35
  const { seconds, minutes, isRunning, pause, resume, restart } = useTimer({
21
36
  autoStart: false,
22
37
  expiryTimestamp,
@@ -24,41 +39,59 @@ export const StepTimer: React.FC<{
24
39
  });
25
40
 
26
41
  useEffect(() => {
27
- if (isExpired || !step.execution) {
42
+ const executionProcess = getExecutionProcess(step);
43
+ if (!executionProcess) {
44
+ return;
45
+ }
46
+ const shouldRestart = executionProcess.status === 'FAILED';
47
+ const shouldPause = executionProcess.status === 'ACTION_REQUIRED';
48
+ const shouldStart =
49
+ executionProcess.status === 'STARTED' ||
50
+ executionProcess.status === 'PENDING';
51
+ const shouldResume = executionProcess.status === 'PENDING';
52
+ if (isExecutionStarted && shouldRestart) {
53
+ setExecutionStarted(false);
54
+ setExpired(false);
28
55
  return;
29
56
  }
30
- if (!isExecutionStarted) {
57
+ if (isExecutionStarted && isExpired) {
58
+ return;
59
+ }
60
+ if (!isExecutionStarted && shouldStart) {
61
+ const expiryTimestamp = getExpiryTimestamp(step);
31
62
  setExecutionStarted(true);
32
- restart(getExpiryTimestamp(step));
63
+ setExpired(false);
64
+ setExpiryTimestamp(expiryTimestamp);
65
+ restart(expiryTimestamp);
66
+ return;
33
67
  }
34
- const shouldBePaused = step.execution.process.some(
35
- (process) =>
36
- process.status === 'ACTION_REQUIRED' || process.status === 'FAILED',
37
- );
38
- if (isRunning && shouldBePaused) {
68
+ if (isRunning && shouldPause) {
39
69
  pause();
40
- } else if (!isRunning && !shouldBePaused) {
70
+ } else if (!isRunning && shouldResume) {
41
71
  resume();
42
72
  }
43
- }, [
44
- expiryTimestamp,
45
- isExecutionStarted,
46
- isExpired,
47
- isRunning,
48
- pause,
49
- restart,
50
- resume,
51
- step,
52
- ]);
73
+ }, [isExecutionStarted, isExpired, isRunning, pause, restart, resume, step]);
53
74
 
54
75
  if (!isExecutionStarted) {
55
- return Math.ceil(step.estimate.executionDuration / 60).toLocaleString(
56
- i18n.language,
57
- {
58
- style: 'unit',
59
- unit: 'minute',
60
- unitDisplay: 'narrow',
61
- },
76
+ const showSeconds = step.estimate.executionDuration < 60;
77
+ const duration = showSeconds
78
+ ? Math.floor(step.estimate.executionDuration)
79
+ : Math.floor(step.estimate.executionDuration / 60);
80
+ return (
81
+ <Tooltip title={t(`tooltip.estimatedTime`)} sx={{ cursor: 'help' }}>
82
+ <Box component="span" display="flex" alignItems="center">
83
+ <IconTypography component="span" mr={0.5} fontSize={16}>
84
+ <AccessTimeFilled fontSize="inherit" />
85
+ </IconTypography>
86
+ <Box component="span">
87
+ {duration.toLocaleString(i18n.language, {
88
+ style: 'unit',
89
+ unit: showSeconds ? 'second' : 'minute',
90
+ unitDisplay: 'narrow',
91
+ })}
92
+ </Box>
93
+ </Box>
94
+ </Tooltip>
62
95
  );
63
96
  }
64
97
 
@@ -72,7 +105,19 @@ export const StepTimer: React.FC<{
72
105
  return null;
73
106
  }
74
107
 
75
- return isTimerExpired
76
- ? t('main.inProgress')
77
- : `${minutes}:${seconds < 10 ? `0${seconds}` : seconds}`;
108
+ return isTimerExpired ? (
109
+ t('main.inProgress')
110
+ ) : (
111
+ <Tooltip title={t(`tooltip.estimatedTime`)} sx={{ cursor: 'help' }}>
112
+ <Box component="span" display="flex" alignItems="center">
113
+ <IconTypography component="span" mr={0.5} fontSize={16}>
114
+ <AccessTimeFilled fontSize="inherit" />
115
+ </IconTypography>
116
+ <Box
117
+ component="span"
118
+ sx={{ fontVariantNumeric: 'tabular-nums', cursor: 'help' }}
119
+ >{`${minutes}:${seconds < 10 ? `0${seconds}` : seconds}`}</Box>
120
+ </Box>
121
+ </Tooltip>
122
+ );
78
123
  };
@@ -71,11 +71,3 @@ export const StepAvatar = styled(AvatarMasked)(({ theme }) => ({
71
71
  color: theme.palette.text.primary,
72
72
  backgroundColor: 'transparent',
73
73
  }));
74
-
75
- export const IconTypography = styled(Typography)(({ theme }) => ({
76
- color:
77
- theme.palette.mode === 'light'
78
- ? alpha(theme.palette.common.black, 0.32)
79
- : alpha(theme.palette.common.white, 0.4),
80
- lineHeight: 0,
81
- }));
@@ -16,6 +16,7 @@ import { formatUnits } from 'viem';
16
16
  import { useAvailableChains } from '../../hooks/useAvailableChains.js';
17
17
  import { LiFiToolLogo } from '../../icons/lifi.js';
18
18
  import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js';
19
+ import { HiddenUI } from '../../types/widget.js';
19
20
  import { formatTokenAmount } from '../../utils/format.js';
20
21
  import { CardIconButton } from '../Card/CardIconButton.js';
21
22
  import { SmallAvatar } from '../SmallAvatar.js';
@@ -39,7 +40,7 @@ export const StepActions: React.FC<StepActionsProps> = ({
39
40
  ...other
40
41
  }) => {
41
42
  const { t } = useTranslation();
42
- const { subvariant, subvariantOptions } = useWidgetConfig();
43
+ const { subvariant } = useWidgetConfig();
43
44
  const [cardExpanded, setCardExpanded] = useState(false);
44
45
 
45
46
  const handleExpand: MouseEventHandler<HTMLButtonElement> = (e) => {
@@ -93,41 +94,53 @@ export const StepActions: React.FC<StepActionsProps> = ({
93
94
  </Box>
94
95
  {dense ? (
95
96
  <Collapse timeout={225} in={cardExpanded} mountOnEnter unmountOnExit>
96
- <IncludedSteps
97
- step={step}
98
- subvariant={subvariant}
99
- subvariantOptions={subvariantOptions}
100
- />
97
+ <IncludedSteps step={step} />
101
98
  </Collapse>
102
99
  ) : (
103
- <IncludedSteps
104
- step={step}
105
- subvariant={subvariant}
106
- subvariantOptions={subvariantOptions}
107
- />
100
+ <IncludedSteps step={step} />
108
101
  )}
109
102
  </Box>
110
103
  );
111
104
  };
112
105
 
113
- export const IncludedSteps: React.FC<IncludedStepsProps> = ({
114
- step,
115
- subvariant,
116
- subvariantOptions,
117
- }) => {
106
+ export const IncludedSteps: React.FC<IncludedStepsProps> = ({ step }) => {
107
+ const { subvariant, subvariantOptions, feeTool, hiddenUI } =
108
+ useWidgetConfig();
109
+
110
+ let includedSteps = step.includedSteps;
111
+ if (hiddenUI?.includes(HiddenUI.FeeCollectionStepDetails)) {
112
+ const feeCollectionStep = includedSteps.find(
113
+ (step) => step.tool === 'feeCollection',
114
+ );
115
+ if (feeCollectionStep) {
116
+ includedSteps = structuredClone(
117
+ includedSteps.filter((step) => step.tool !== 'feeCollection'),
118
+ );
119
+ includedSteps[0].estimate.fromAmount =
120
+ feeCollectionStep.estimate.fromAmount;
121
+ }
122
+ }
123
+
118
124
  // eslint-disable-next-line react/no-unstable-nested-components
119
125
  const StepIconComponent = ({ icon }: StepIconProps) => {
120
- const tool = step.includedSteps?.[Number(icon) - 1];
126
+ const includedStep = includedSteps?.[Number(icon) - 1];
127
+ const tool =
128
+ includedStep?.type === 'protocol' &&
129
+ includedStep?.tool === 'feeCollection' &&
130
+ feeTool
131
+ ? feeTool
132
+ : includedStep?.toolDetails;
121
133
  return tool ? (
122
134
  <SmallAvatar
123
- src={tool.toolDetails.logoURI}
124
- alt={tool.toolDetails.name}
135
+ src={tool.logoURI}
136
+ alt={tool.name}
125
137
  sx={{ width: 20, height: 20 }}
126
138
  >
127
- {tool.toolDetails.name[0]}
139
+ {tool.name?.[0]}
128
140
  </SmallAvatar>
129
141
  ) : null;
130
142
  };
143
+
131
144
  return (
132
145
  <Box mt={1}>
133
146
  <Stepper
@@ -135,7 +148,7 @@ export const IncludedSteps: React.FC<IncludedStepsProps> = ({
135
148
  connector={<StepConnector />}
136
149
  activeStep={-1}
137
150
  >
138
- {step.includedSteps.map((step, i, includedSteps) => (
151
+ {includedSteps.map((step, i, includedSteps) => (
139
152
  <MuiStep key={step.id} expanded>
140
153
  <StepLabel StepIconComponent={StepIconComponent}>
141
154
  {step.type === 'custom' && subvariant === 'custom' ? (
@@ -147,7 +160,7 @@ export const IncludedSteps: React.FC<IncludedStepsProps> = ({
147
160
  ) : step.type === 'cross' ? (
148
161
  <BridgeStepDetailsLabel step={step} />
149
162
  ) : step.type === 'protocol' ? (
150
- <ProtocolStepDetailsLabel step={step} />
163
+ <ProtocolStepDetailsLabel step={step} feeTool={feeTool} />
151
164
  ) : (
152
165
  <SwapStepDetailsLabel step={step} />
153
166
  )}
@@ -302,15 +315,19 @@ export const SwapStepDetailsLabel: React.FC<
302
315
 
303
316
  export const ProtocolStepDetailsLabel: React.FC<
304
317
  Omit<StepDetailsLabelProps, 'variant'>
305
- > = ({ step }) => {
318
+ > = ({ step, feeTool }) => {
306
319
  const { t } = useTranslation();
307
320
  return (
308
321
  <StepLabelTypography>
309
- {step.toolDetails.key === 'lifuelProtocol'
310
- ? t('main.refuelStepDetails', {
311
- tool: step.toolDetails.name,
312
- })
313
- : step.toolDetails.name}
322
+ {step.toolDetails.key === 'feeCollection'
323
+ ? feeTool?.name
324
+ ? t('main.fees.integrator', { tool: feeTool.name })
325
+ : t('main.fees.defaultIntegrator')
326
+ : step.toolDetails.key === 'lifuelProtocol'
327
+ ? t('main.refuelStepDetails', {
328
+ tool: step.toolDetails.name,
329
+ })
330
+ : step.toolDetails.name}
314
331
  </StepLabelTypography>
315
332
  );
316
333
  };
@@ -2,6 +2,7 @@ import type { LiFiStep, Step } from '@lifi/sdk';
2
2
  import type { BoxProps } from '@mui/material';
3
3
  import type {
4
4
  SubvariantOptions,
5
+ WidgetFeeTool,
5
6
  WidgetSubvariant,
6
7
  } from '../../types/widget.js';
7
8
 
@@ -14,10 +15,9 @@ export interface StepDetailsLabelProps {
14
15
  step: Step;
15
16
  subvariant?: Extract<WidgetSubvariant, 'custom'>;
16
17
  subvariantOptions?: SubvariantOptions;
18
+ feeTool?: WidgetFeeTool;
17
19
  }
18
20
 
19
21
  export interface IncludedStepsProps {
20
22
  step: LiFiStep;
21
- subvariant?: WidgetSubvariant;
22
- subvariantOptions?: SubvariantOptions;
23
23
  }