@lifi/widget 3.18.4 → 3.18.5

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 (71) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +2 -1
  3. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js +2 -2
  4. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js.map +1 -1
  5. package/dist/esm/components/Timer/StepTimer.js +69 -31
  6. package/dist/esm/components/Timer/StepTimer.js.map +1 -1
  7. package/dist/esm/config/version.d.ts +1 -1
  8. package/dist/esm/config/version.js +1 -1
  9. package/dist/esm/hooks/timer/time.d.ts +19 -0
  10. package/dist/esm/hooks/timer/time.js +25 -0
  11. package/dist/esm/hooks/timer/time.js.map +1 -0
  12. package/dist/esm/hooks/timer/useInterval.d.ts +1 -1
  13. package/dist/esm/hooks/timer/useInterval.js +3 -3
  14. package/dist/esm/hooks/timer/useInterval.js.map +1 -1
  15. package/dist/esm/hooks/timer/useTimer.d.ts +10 -10
  16. package/dist/esm/hooks/timer/useTimer.js +31 -24
  17. package/dist/esm/hooks/timer/useTimer.js.map +1 -1
  18. package/dist/esm/hooks/timer/validate.d.ts +2 -0
  19. package/dist/esm/hooks/timer/validate.js +15 -0
  20. package/dist/esm/hooks/timer/validate.js.map +1 -0
  21. package/dist/esm/i18n/bn.json +35 -17
  22. package/dist/esm/i18n/de.json +36 -18
  23. package/dist/esm/i18n/es.json +65 -47
  24. package/dist/esm/i18n/fr.json +40 -22
  25. package/dist/esm/i18n/hi.json +27 -9
  26. package/dist/esm/i18n/id.json +68 -50
  27. package/dist/esm/i18n/it.json +36 -18
  28. package/dist/esm/i18n/ja.json +40 -22
  29. package/dist/esm/i18n/ko.json +38 -20
  30. package/dist/esm/i18n/pt.json +42 -24
  31. package/dist/esm/i18n/th.json +40 -22
  32. package/dist/esm/i18n/tr.json +52 -34
  33. package/dist/esm/i18n/uk.json +43 -25
  34. package/dist/esm/i18n/vi.json +40 -22
  35. package/dist/esm/i18n/zh.json +43 -25
  36. package/package.json +6 -6
  37. package/package.json.tmp +5 -5
  38. package/src/components/ActiveTransactions/ActiveTransactionItem.tsx +2 -2
  39. package/src/components/Timer/StepTimer.tsx +97 -38
  40. package/src/config/version.ts +1 -1
  41. package/src/hooks/timer/time.ts +49 -0
  42. package/src/hooks/timer/useInterval.ts +4 -4
  43. package/src/hooks/timer/useTimer.ts +49 -35
  44. package/src/hooks/timer/validate.ts +15 -0
  45. package/src/i18n/bn.json +35 -17
  46. package/src/i18n/de.json +36 -18
  47. package/src/i18n/es.json +65 -47
  48. package/src/i18n/fr.json +40 -22
  49. package/src/i18n/hi.json +27 -9
  50. package/src/i18n/id.json +68 -50
  51. package/src/i18n/it.json +36 -18
  52. package/src/i18n/ja.json +40 -22
  53. package/src/i18n/ko.json +38 -20
  54. package/src/i18n/pt.json +42 -24
  55. package/src/i18n/th.json +40 -22
  56. package/src/i18n/tr.json +52 -34
  57. package/src/i18n/uk.json +43 -25
  58. package/src/i18n/vi.json +40 -22
  59. package/src/i18n/zh.json +43 -25
  60. package/dist/esm/components/Timer/RouteTimer.d.ts +0 -4
  61. package/dist/esm/components/Timer/RouteTimer.js +0 -23
  62. package/dist/esm/components/Timer/RouteTimer.js.map +0 -1
  63. package/dist/esm/hooks/timer/useStopwatch.d.ts +0 -16
  64. package/dist/esm/hooks/timer/useStopwatch.js +0 -41
  65. package/dist/esm/hooks/timer/useStopwatch.js.map +0 -1
  66. package/dist/esm/hooks/timer/utils.d.ts +0 -12
  67. package/dist/esm/hooks/timer/utils.js +0 -55
  68. package/dist/esm/hooks/timer/utils.js.map +0 -1
  69. package/src/components/Timer/RouteTimer.tsx +0 -33
  70. package/src/hooks/timer/useStopwatch.ts +0 -65
  71. package/src/hooks/timer/utils.ts +0 -64
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
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.18.5](https://github.com/lifinance/widget/compare/v3.18.4...v3.18.5) (2025-04-15)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * make transaction execution timer count down ([#376](https://github.com/lifinance/widget/issues/376)) ([0595587](https://github.com/lifinance/widget/commit/05955873b1d901efd7c6b0bd2f3143bdb44d5ab3))
11
+
5
12
  ### [3.18.4](https://github.com/lifinance/widget/compare/v3.18.3...v3.18.4) (2025-04-08)
6
13
 
7
14
 
package/README.md CHANGED
@@ -20,7 +20,8 @@
20
20
  - Embeddable variants - compact, wide, and drawer
21
21
  - Options to allow or deny certain chains, tokens, bridges, and exchanges
22
22
  - Pre-configured themes and lots of customization options with dark mode support so you can match the look and feel of your web app
23
- - Wallet management UI with the option to opt-out and use your own ([Wagmi](https://wagmi.sh/), [Bigmi](https://github.com/lifinance/bigmi) and [Solana Wallet Standard](https://github.com/anza-xyz/wallet-standard) support)
23
+ - Wallet management UI with the option to opt-out and use your own ([Wagmi](https://wagmi.sh/), [Bigmi](https://github.com/lifinance/bigmi) and [Wallet Standard](https://github.com/wallet-standard/wallet-standard) support)
24
+ - Supports widely adopted industry standards, including [EIP-5792](https://eips.ethereum.org/EIPS/eip-5792), [ERC-2612](https://eips.ethereum.org/EIPS/eip-2612), [EIP-712](https://eips.ethereum.org/EIPS/eip-712), [EIP-6963](https://eips.ethereum.org/EIPS/eip-6963), and [Permit2](https://github.com/Uniswap/permit2)
24
25
  - View of transactions in progress and transaction history
25
26
  - Curated wallet lists and wallet bookmarks
26
27
  - Route settings for advanced users (stored locally)
@@ -8,7 +8,7 @@ import { RouteExecutionStatus } from '../../stores/routes/types.js';
8
8
  import { navigationRoutes } from '../../utils/navigationRoutes.js';
9
9
  import { TokenAvatarGroup } from '../Avatar/Avatar.style.js';
10
10
  import { TokenAvatar } from '../Avatar/TokenAvatar.js';
11
- import { RouteTimer } from '../Timer/RouteTimer.js';
11
+ import { StepTimer } from '../Timer/StepTimer.js';
12
12
  import { ListItem, ListItemButton } from './ActiveTransactions.style.js';
13
13
  export const ActiveTransactionItem = ({ routeId, dense }) => {
14
14
  const navigate = useNavigate();
@@ -35,7 +35,7 @@ export const ActiveTransactionItem = ({ routeId, dense }) => {
35
35
  return (_jsx(Typography, { sx: {
36
36
  fontSize: 14,
37
37
  fontWeight: 600,
38
- }, children: _jsx(RouteTimer, { route: route }) }));
38
+ }, children: _jsx(StepTimer, { step: lastActiveStep, hideInProgress: true }) }));
39
39
  }
40
40
  };
41
41
  const ListItemComponent = dense ? ListItem : ListItemButton;
@@ -1 +1 @@
1
- {"version":3,"file":"ActiveTransactionItem.js","sourceRoot":"","sources":["../../../../src/components/ActiveTransactions/ActiveTransactionItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ActiveTransactionItem.js","sourceRoot":"","sources":["../../../../src/components/ActiveTransactions/ActiveTransactionItem.tsx"],"names":[],"mappings":"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"}
@@ -1,46 +1,84 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useEffect, useState } from 'react';
3
3
  import { useTranslation } from 'react-i18next';
4
- import { useStopwatch } from '../../hooks/timer/useStopwatch.js';
5
- import { useSettings } from '../../stores/settings/useSettings.js';
4
+ import { useTimer } from '../../hooks/timer/useTimer.js';
6
5
  import { formatTimer } from '../../utils/timer.js';
7
6
  import { TimerContent } from './TimerContent.js';
8
- const getFirstExecutionProcess = (step) => step.execution?.process.at(0);
9
- const getExecutionProcess = (step) => step.execution?.process.at(-1);
10
- const getStartTimestamp = (step) => new Date(getFirstExecutionProcess(step)?.startedAt ?? Date.now());
11
- export const StepTimer = ({ step }) => {
12
- const { i18n } = useTranslation();
13
- const { language } = useSettings(['language']);
14
- const [isExecutionStarted, setExecutionStarted] = useState(() => !!getExecutionProcess(step));
15
- const { seconds, minutes, days, hours, isRunning, pause, reset, start } = useStopwatch({
16
- autoStart: true,
17
- offsetTimestamp: getStartTimestamp(step),
7
+ /**
8
+ * Finds the most recent process that is either a SWAP, CROSS_CHAIN, or RECEIVING_CHAIN.
9
+ * Includes RECEIVING_CHAIN to track the complete transaction lifecycle for UI updates.
10
+ */
11
+ const getProgressProcess = (step) => step.execution?.process.findLast((process) => process.type === 'SWAP' ||
12
+ process.type === 'CROSS_CHAIN' ||
13
+ process.type === 'RECEIVING_CHAIN');
14
+ /**
15
+ * Finds the most recent SWAP or CROSS_CHAIN process, excluding RECEIVING_CHAIN.
16
+ * Expiry time is based on when the active transaction started, not the receiving phase.
17
+ */
18
+ const getExpiryProcess = (step) => step.execution?.process.findLast((process) => process.type === 'SWAP' || process.type === 'CROSS_CHAIN');
19
+ /**
20
+ * Calculates expiry timestamp based on process start time, estimated duration, and pause time.
21
+ * Pause time is added when action is required (usually for signature requests).
22
+ */
23
+ const getExpiryTimestamp = (step) => {
24
+ const lastProcess = getExpiryProcess(step);
25
+ let timeInPause = 0;
26
+ if (lastProcess?.actionRequiredAt) {
27
+ const actionDoneAt = lastProcess.pendingAt ?? lastProcess.doneAt ?? Date.now();
28
+ timeInPause = new Date(actionDoneAt - lastProcess.actionRequiredAt).getTime();
29
+ }
30
+ const expiry = new Date((lastProcess?.startedAt ?? Date.now()) +
31
+ step.estimate.executionDuration * 1000 +
32
+ timeInPause);
33
+ return expiry;
34
+ };
35
+ export const StepTimer = ({ step, hideInProgress }) => {
36
+ const { t, i18n } = useTranslation();
37
+ const [isExpired, setExpired] = useState(false);
38
+ const [isExecutionStarted, setExecutionStarted] = useState(() => !!getProgressProcess(step));
39
+ const [expiryTimestamp, setExpiryTimestamp] = useState(() => getExpiryTimestamp(step));
40
+ const { days, hours, minutes, seconds, isRunning, pause, resume, restart } = useTimer({
41
+ autoStart: false,
42
+ expiryTimestamp,
43
+ onExpire: () => setExpired(true),
18
44
  });
19
45
  useEffect(() => {
20
- const executionProcess = getExecutionProcess(step);
46
+ const executionProcess = getProgressProcess(step);
21
47
  if (!executionProcess) {
22
48
  return;
23
49
  }
24
- const shouldRestart = executionProcess.status === 'FAILED' || executionProcess.status === 'DONE';
25
- const shouldStart = executionProcess.status === 'STARTED' ||
26
- executionProcess.status === 'PENDING';
27
- const shouldResume = executionProcess.status === 'PENDING';
28
- if (isExecutionStarted && shouldRestart) {
29
- setExecutionStarted(false);
30
- pause();
31
- return;
32
- }
33
- if (isExecutionStarted && !isRunning && shouldResume) {
34
- start();
50
+ if (isExecutionStarted && isExpired) {
35
51
  return;
36
52
  }
37
- if (!isExecutionStarted && shouldStart) {
53
+ const isProcessStarted = executionProcess.status === 'STARTED' ||
54
+ executionProcess.status === 'PENDING';
55
+ const shouldRestart = !isExecutionStarted && isProcessStarted && !isRunning;
56
+ const shouldPause = isExecutionStarted &&
57
+ executionProcess.status === 'ACTION_REQUIRED' &&
58
+ isRunning;
59
+ const shouldStop = isExecutionStarted && executionProcess.status === 'FAILED';
60
+ const shouldResume = isExecutionStarted && isProcessStarted && !isRunning;
61
+ if (shouldRestart) {
62
+ const newExpiryTimestamp = getExpiryTimestamp(step);
38
63
  setExecutionStarted(true);
39
- reset();
40
- return;
64
+ setExpiryTimestamp(newExpiryTimestamp);
65
+ return restart(newExpiryTimestamp, true);
66
+ }
67
+ if (shouldPause) {
68
+ return pause();
69
+ }
70
+ if (shouldResume) {
71
+ return resume();
72
+ }
73
+ if (shouldStop) {
74
+ setExecutionStarted(false);
75
+ setExpired(false);
41
76
  }
42
- }, [isExecutionStarted, isRunning, pause, reset, start, step]);
43
- if (step.execution?.status === 'DONE') {
77
+ }, [isExecutionStarted, isExpired, isRunning, pause, restart, resume, step]);
78
+ const isTimerExpired = isExpired || (!minutes && !seconds);
79
+ if (step.execution?.status === 'DONE' ||
80
+ step.execution?.status === 'FAILED' ||
81
+ (isTimerExpired && hideInProgress)) {
44
82
  return null;
45
83
  }
46
84
  if (!isExecutionStarted) {
@@ -54,8 +92,8 @@ export const StepTimer = ({ step }) => {
54
92
  unitDisplay: 'narrow',
55
93
  }) }));
56
94
  }
57
- return (_jsx(TimerContent, { children: formatTimer({
58
- locale: language,
95
+ return isTimerExpired ? (t('main.inProgress')) : (_jsx(TimerContent, { children: formatTimer({
96
+ locale: i18n.language,
59
97
  days,
60
98
  hours,
61
99
  minutes,
@@ -1 +1 @@
1
- {"version":3,"file":"StepTimer.js","sourceRoot":"","sources":["../../../../src/components/Timer/StepTimer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepTimer.js","sourceRoot":"","sources":["../../../../src/components/Timer/StepTimer.tsx"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export declare const name = "@lifi/widget";
2
- export declare const version = "3.18.4";
2
+ export declare const version = "3.18.5";
@@ -1,3 +1,3 @@
1
1
  export const name = '@lifi/widget';
2
- export const version = '3.18.4';
2
+ export const version = '3.18.5';
3
3
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,19 @@
1
+ export type TimeFromMillisecondsType = {
2
+ totalMilliseconds: number;
3
+ totalSeconds: number;
4
+ milliseconds: number;
5
+ seconds: number;
6
+ minutes: number;
7
+ hours: number;
8
+ days: number;
9
+ };
10
+ export type AMPMType = '' | 'pm' | 'am';
11
+ export type FormattedTimeFromMillisecondsType = {
12
+ milliseconds: number;
13
+ seconds: number;
14
+ minutes: number;
15
+ hours: number;
16
+ ampm?: AMPMType;
17
+ };
18
+ export declare function getTimeFromMilliseconds(millisecs: number, isCountDown?: boolean): TimeFromMillisecondsType;
19
+ export declare function getMillisecondsFromExpiry(expiry: Date): number;
@@ -0,0 +1,25 @@
1
+ export function getTimeFromMilliseconds(millisecs, isCountDown = true) {
2
+ const totalSeconds = isCountDown
3
+ ? Math.ceil(millisecs / 1000)
4
+ : Math.floor(millisecs / 1000);
5
+ const days = Math.floor(totalSeconds / (60 * 60 * 24));
6
+ const hours = Math.floor((totalSeconds % (60 * 60 * 24)) / (60 * 60));
7
+ const minutes = Math.floor((totalSeconds % (60 * 60)) / 60);
8
+ const seconds = Math.floor(totalSeconds % 60);
9
+ const milliseconds = Math.floor(millisecs % 1000);
10
+ return {
11
+ totalMilliseconds: millisecs,
12
+ totalSeconds,
13
+ milliseconds,
14
+ seconds,
15
+ minutes,
16
+ hours,
17
+ days,
18
+ };
19
+ }
20
+ export function getMillisecondsFromExpiry(expiry) {
21
+ const now = new Date().getTime();
22
+ const milliSecondsDistance = expiry?.getTime() - now;
23
+ return milliSecondsDistance > 0 ? milliSecondsDistance : 0;
24
+ }
25
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../../../src/hooks/timer/time.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,WAAW,GAAG,IAAI;IAElB,MAAM,YAAY,GAAG,WAAW;QAC9B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAChC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;IACrE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,EAAE,CAAC,CAAA;IAC7C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAEjD,OAAO;QACL,iBAAiB,EAAE,SAAS;QAC5B,YAAY;QACZ,YAAY;QACZ,OAAO;QACP,OAAO;QACP,KAAK;QACL,IAAI;KACL,CAAA;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,MAAY;IACpD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;IAChC,MAAM,oBAAoB,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;IACpD,OAAO,oBAAoB,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,CAAC"}
@@ -1 +1 @@
1
- export declare function useInterval(callback: () => void, delay: number): void;
1
+ export declare function useInterval(callback: () => void, delay: number | null): void;
@@ -1,16 +1,16 @@
1
1
  import { useEffect, useRef } from 'react';
2
2
  export function useInterval(callback, delay) {
3
- const callbacRef = useRef(null);
3
+ const callbackRef = useRef(callback);
4
4
  // update callback function with current render callback that has access to latest props and state
5
5
  useEffect(() => {
6
- callbacRef.current = callback;
6
+ callbackRef.current = callback;
7
7
  });
8
8
  useEffect(() => {
9
9
  if (!delay) {
10
10
  return () => { };
11
11
  }
12
12
  const interval = setInterval(() => {
13
- callbacRef.current?.();
13
+ callbackRef?.current?.();
14
14
  }, delay);
15
15
  return () => clearInterval(interval);
16
16
  }, [delay]);
@@ -1 +1 @@
1
- {"version":3,"file":"useInterval.js","sourceRoot":"","sources":["../../../../src/hooks/timer/useInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,UAAU,WAAW,CAAC,QAAoB,EAAE,KAAa;IAC7D,MAAM,UAAU,GAAG,MAAM,CAAa,IAAI,CAAC,CAAA;IAE3C,kGAAkG;IAClG,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,OAAO,GAAG,QAAQ,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAA;QACxB,CAAC,EAAE,KAAK,CAAC,CAAA;QACT,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;AACb,CAAC"}
1
+ {"version":3,"file":"useInterval.js","sourceRoot":"","sources":["../../../../src/hooks/timer/useInterval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,MAAM,UAAU,WAAW,CAAC,QAAoB,EAAE,KAAoB;IACpE,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEpC,kGAAkG;IAClG,SAAS,CAAC,GAAG,EAAE;QACb,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,GAAG,EAAE,GAAE,CAAC,CAAA;QACjB,CAAC;QAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE;YAChC,WAAW,EAAE,OAAO,EAAE,EAAE,CAAA;QAC1B,CAAC,EAAE,KAAK,CAAC,CAAA;QACT,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;AACb,CAAC"}
@@ -1,18 +1,18 @@
1
- interface UseTimerProps {
1
+ import { type TimeFromMillisecondsType } from './time.js';
2
+ export type useTimerSettingsType = {
2
3
  expiryTimestamp: Date;
3
- onExpire: () => void;
4
+ onExpire?: () => void;
4
5
  autoStart?: boolean;
5
- }
6
- export declare function useTimer({ expiryTimestamp: expiry, onExpire, autoStart, }: UseTimerProps): {
6
+ interval?: number;
7
+ };
8
+ export type useTimerResultType = TimeFromMillisecondsType & {
7
9
  start: () => void;
8
10
  pause: () => void;
9
11
  resume: () => void;
10
12
  restart: (newExpiryTimestamp: Date, newAutoStart?: boolean) => void;
11
13
  isRunning: boolean;
12
- totalSeconds: number;
13
- seconds: number;
14
- minutes: number;
15
- hours: number;
16
- days: number;
17
14
  };
18
- export {};
15
+ /**
16
+ * `useTimer` from https://github.com/amrlabib/react-timer-hook
17
+ */
18
+ export declare function useTimer({ expiryTimestamp: expiry, onExpire, autoStart, interval: customInterval, }: useTimerSettingsType): useTimerResultType;
@@ -1,38 +1,42 @@
1
- import { useCallback, useState } from 'react';
1
+ import { useCallback, useEffect, useState } from 'react';
2
+ import { getMillisecondsFromExpiry, getTimeFromMilliseconds, } from './time.js';
2
3
  import { useInterval } from './useInterval.js';
3
- import { getDelayFromExpiryTimestamp, getSecondsFromExpiry, getTimeFromSeconds, validateOnExpire, } from './utils.js';
4
- const DEFAULT_DELAY = 1000;
5
- // This implementation was taken from the common js project - https://www.npmjs.com/package/react-timer-hook
6
- // modified to work in the Widget codebase with Typescript
7
- export function useTimer({ expiryTimestamp: expiry, onExpire, autoStart = true, }) {
4
+ import { validateExpiryTimestamp, validateOnExpire } from './validate.js';
5
+ const SECOND_INTERVAL = 1000;
6
+ /**
7
+ * `useTimer` from https://github.com/amrlabib/react-timer-hook
8
+ */
9
+ export function useTimer({ expiryTimestamp: expiry, onExpire = () => { }, autoStart = true, interval: customInterval = SECOND_INTERVAL, }) {
8
10
  const [expiryTimestamp, setExpiryTimestamp] = useState(expiry);
9
- const [seconds, setSeconds] = useState(() => getSecondsFromExpiry(expiryTimestamp));
11
+ const [milliseconds, setMilliseconds] = useState(getMillisecondsFromExpiry(expiryTimestamp));
10
12
  const [isRunning, setIsRunning] = useState(autoStart);
11
13
  const [didStart, setDidStart] = useState(autoStart);
12
- const [delay, setDelay] = useState(() => getDelayFromExpiryTimestamp(expiryTimestamp, DEFAULT_DELAY));
14
+ const [interval, setInterval] = useState(customInterval);
13
15
  const handleExpire = useCallback(() => {
14
- validateOnExpire(onExpire) && onExpire();
16
+ if (validateOnExpire(onExpire)) {
17
+ onExpire();
18
+ }
15
19
  setIsRunning(false);
16
- setDelay(0);
20
+ setInterval(null);
17
21
  }, [onExpire]);
18
22
  const pause = useCallback(() => {
19
23
  setIsRunning(false);
20
24
  }, []);
21
25
  const restart = useCallback((newExpiryTimestamp, newAutoStart = true) => {
22
- setDelay(getDelayFromExpiryTimestamp(newExpiryTimestamp, DEFAULT_DELAY));
26
+ setInterval(customInterval);
23
27
  setDidStart(newAutoStart);
24
28
  setIsRunning(newAutoStart);
25
29
  setExpiryTimestamp(newExpiryTimestamp);
26
- setSeconds(getSecondsFromExpiry(newExpiryTimestamp));
27
- }, []);
30
+ setMilliseconds(getMillisecondsFromExpiry(newExpiryTimestamp));
31
+ }, [customInterval]);
28
32
  const resume = useCallback(() => {
29
33
  const time = new Date();
30
- time.setMilliseconds(time.getMilliseconds() + seconds * 1000);
34
+ time.setMilliseconds(time.getMilliseconds() + milliseconds);
31
35
  restart(time);
32
- }, [seconds, restart]);
36
+ }, [milliseconds, restart]);
33
37
  const start = useCallback(() => {
34
38
  if (didStart) {
35
- setSeconds(getSecondsFromExpiry(expiryTimestamp));
39
+ setMilliseconds(getMillisecondsFromExpiry(expiryTimestamp));
36
40
  setIsRunning(true);
37
41
  }
38
42
  else {
@@ -40,17 +44,20 @@ export function useTimer({ expiryTimestamp: expiry, onExpire, autoStart = true,
40
44
  }
41
45
  }, [expiryTimestamp, didStart, resume]);
42
46
  useInterval(() => {
43
- if (delay !== DEFAULT_DELAY) {
44
- setDelay(DEFAULT_DELAY);
45
- }
46
- const secondsValue = getSecondsFromExpiry(expiryTimestamp);
47
- setSeconds(secondsValue);
48
- if (secondsValue <= 0) {
47
+ const millisecondsValue = getMillisecondsFromExpiry(expiryTimestamp);
48
+ setMilliseconds(millisecondsValue);
49
+ if (millisecondsValue <= 0) {
49
50
  handleExpire();
50
51
  }
51
- }, isRunning ? delay : 0);
52
+ else if (interval && millisecondsValue < interval) {
53
+ setInterval(millisecondsValue);
54
+ }
55
+ }, isRunning ? interval : null);
56
+ useEffect(() => {
57
+ validateExpiryTimestamp(expiryTimestamp);
58
+ }, [expiryTimestamp]);
52
59
  return {
53
- ...getTimeFromSeconds(seconds),
60
+ ...getTimeFromMilliseconds(milliseconds),
54
61
  start,
55
62
  pause,
56
63
  resume,
@@ -1 +1 @@
1
- {"version":3,"file":"useTimer.js","sourceRoot":"","sources":["../../../../src/hooks/timer/useTimer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTimer.js","sourceRoot":"","sources":["../../../../src/hooks/timer/useTimer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function validateExpiryTimestamp(expiryTimestamp: Date): boolean;
2
+ export declare function validateOnExpire(onExpire: () => void): boolean;
@@ -0,0 +1,15 @@
1
+ export function validateExpiryTimestamp(expiryTimestamp) {
2
+ const isValid = new Date(expiryTimestamp).getTime() > 0;
3
+ if (!isValid) {
4
+ console.warn('useTimer Invalid expiryTimestamp settings', expiryTimestamp);
5
+ }
6
+ return isValid;
7
+ }
8
+ export function validateOnExpire(onExpire) {
9
+ const isValid = onExpire && typeof onExpire === 'function';
10
+ if (onExpire && !isValid) {
11
+ console.warn('useTimer Invalid onExpire settings function', onExpire);
12
+ }
13
+ return isValid;
14
+ }
15
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../../src/hooks/timer/validate.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,uBAAuB,CAAC,eAAqB;IAC3D,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACvD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,eAAe,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAoB;IACnD,MAAM,OAAO,GAAG,QAAQ,IAAI,OAAO,QAAQ,KAAK,UAAU,CAAA;IAC1D,IAAI,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,QAAQ,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC"}
@@ -6,7 +6,8 @@
6
6
  "format": {
7
7
  "currency": "",
8
8
  "number": "{{value, number(maximumFractionDigits: 9)}}",
9
- "percent": ""
9
+ "percent": "",
10
+ "tokenAmount": ""
10
11
  },
11
12
  "button": {
12
13
  "auto": "স্বয়ংক্রিয়",
@@ -83,14 +84,13 @@
83
84
  "message": {
84
85
  "autoRefuel": "আপনার {{chainName}} গ্যাস কম। চালিয়ে যাওয়ার মাধ্যমে, আপনি সোওয়াপ সম্পূর্ণ করার জন্য পর্যাপ্ত গ্যাস পাবেন।",
85
86
  "emptyActiveTransactions": "",
86
- "emptyTokenList": "",
87
- "emptyChainList": "",
88
87
  "emptyBridgesList": "",
88
+ "emptyChainList": "",
89
89
  "emptyExchangesList": "",
90
+ "emptyTokenList": "",
90
91
  "emptyTransactionHistory": "",
91
- "fundsToExchange": "",
92
- "toAddressIsRequired": "",
93
- "routeNotFound": ""
92
+ "routeNotFound": "",
93
+ "toAddressIsRequired": ""
94
94
  },
95
95
  "title": {
96
96
  "autoRefuel": "",
@@ -117,14 +117,18 @@
117
117
  },
118
118
  "warning": {
119
119
  "message": {
120
+ "accountNotDeployedMessage": "",
121
+ "lowAddressActivity": "",
120
122
  "deleteActiveTransactions": "",
121
123
  "deleteTransactionHistory": "",
124
+ "fundsLossPrevention": "",
122
125
  "highValueLoss": "প্রাপ্ত টোকেনগুলির মান সোওয়াপ করা টোকেন এবং লেনদেনের খরচের তুলনায় উল্লেখযোগ্যভাবে কম।",
123
126
  "insufficientFunds": "সোওয়াপ সম্পূর্ণ করার জন্য আপনার কাছে পর্যাপ্ত তহবিল নেই।",
124
127
  "insufficientGas": "সোওয়াপ সম্পূর্ণ করার জন্য আপনার কাছে পর্যাপ্ত গ্যাস নেই। আপনাকে অন্তত যোগ করতে হবে:",
125
128
  "rateChanged": "বিনিময় হার পরিবর্তিত হয়েছে। সোওয়াপ চালিয়ে যাওয়ার মাধ্যমে, আপনি নতুন হার গ্রহণ করবেন।",
126
129
  "resetSettings": "এটি আপনার রুটের অগ্রাধিকার, স্লিপেজ, গ্যাসের দাম, সক্ষম ব্রিজ এবং এক্সচেঞ্জ রিসেট করবে।",
127
- "slippageOutsideRecommendedLimits": ""
130
+ "slippageOutsideRecommendedLimits": "",
131
+ "slippageUnderRecommendedLimits": ""
128
132
  },
129
133
  "title": {
130
134
  "deleteActiveTransactions": "",
@@ -133,7 +137,8 @@
133
137
  "highValueLoss": "উচ্চ মূল্য ক্ষতি",
134
138
  "insufficientGas": "অপর্যাপ্ত গ্যাস",
135
139
  "rateChanged": "হার পরিবর্তিত হয়েছে",
136
- "resetSettings": "রিসেট সেটিংস?"
140
+ "resetSettings": "রিসেট সেটিংস?",
141
+ "lowAddressActivity": ""
137
142
  }
138
143
  },
139
144
  "error": {
@@ -146,6 +151,7 @@
146
151
  "transactionCanceled": "",
147
152
  "transactionConflict": "",
148
153
  "transactionExpired": "",
154
+ "transactionRejected": "",
149
155
  "transactionFailed": "আরও তথ্যের জন্য ব্লক এক্সপ্লোরার চেক করুন।",
150
156
  "transactionNotSent": "",
151
157
  "transactionSimulationFailed": "",
@@ -167,6 +173,7 @@
167
173
  "transactionConflict": "",
168
174
  "transactionExpired": "",
169
175
  "transactionFailed": "লেনদেন ব্যর্থ হয়েছে",
176
+ "transactionRejected": "",
170
177
  "transactionSimulationFailed": "",
171
178
  "transactionUnderpriced": "লেনদেনের দাম কম",
172
179
  "transactionUnprepared": "লেনদেন প্রস্তুত করতে অক্ষম",
@@ -187,6 +194,7 @@
187
194
  "text": "আমরা এই পৃষ্ঠাটি খুঁজে পাইনি।",
188
195
  "title": "৪০৪"
189
196
  },
197
+ "relayerService": "",
190
198
  "numberOfSteps": "",
191
199
  "priceImpact": "",
192
200
  "progressToNextUpdate": "প্রদর্শিত ডেটা {{value}} সেকেন্ড পরে স্বয়ংক্রিয়ভাবে রিফ্রেশ হবে। ম্যানুয়ালি আপডেট করতে এখানে ক্লিক করুন।",
@@ -203,7 +211,9 @@
203
211
  "featuredTokens": "বৈশিষ্ট্যযুক্ত টোকেন",
204
212
  "fees": {
205
213
  "defaultIntegrator": "",
214
+ "relayerService": "",
206
215
  "estimated": "",
216
+ "free": "",
207
217
  "integrator": "",
208
218
  "network": "",
209
219
  "paid": "",
@@ -238,19 +248,26 @@
238
248
  "refunded": "ব্রিজ লেনদেন ফেরত করা হয়েছে"
239
249
  },
240
250
  "swap": {
241
- "actionRequired": "দয়াকরে লেনদেন স্বাক্ষর করুন",
251
+ "actionRequired": "",
242
252
  "done": "সোওয়াপ সম্পন্ন হয়েছে",
243
- "pending": "সোওয়াপ লেনদেনের জন্য অপেক্ষা করা হচ্ছে",
253
+ "pending": "",
244
254
  "started": "সোয়াপ লেনদেন প্রস্তুত করা হচ্ছে"
245
255
  },
246
256
  "switchChain": {
247
- "actionRequired": "চেইন সুইচ প্রয়োজন",
248
- "done": "চেইন সফলভাবে সুইচ করা হয়েছে"
257
+ "actionRequired": "",
258
+ "done": ""
259
+ },
260
+ "permit": {
261
+ "actionRequired": "",
262
+ "done": "",
263
+ "pending": "",
264
+ "started": ""
249
265
  },
250
266
  "tokenAllowance": {
251
- "done": "টোকেন অনুমতি অনুমোদিত",
252
- "pending": "টোকেন অনুমতির অপেক্ষায়",
253
- "started": "টোকেন অনুমতির অপেক্ষায়"
267
+ "actionRequired": "",
268
+ "done": "",
269
+ "pending": "",
270
+ "started": ""
254
271
  }
255
272
  },
256
273
  "quotedAmount": "উদ্ধৃত পরিমাণ",
@@ -278,11 +295,12 @@
278
295
  "transferId": "",
279
296
  "tags": {
280
297
  "cheapest": "",
281
- "fastest": ""
298
+ "fastest": "",
299
+ "gasless": ""
282
300
  },
283
301
  "to": "প্রতি",
284
302
  "tokenOnChain": "{{chainName}} -এ {{tokenSymbol}}",
285
- "tokenOnChainAmount": "{{amount, number(maximumFractionDigits: 9)}} {{tokenSymbol}} {{chainName}} -এ",
303
+ "tokenOnChainAmount": "",
286
304
  "tokenSearch": "আপনার টোকেন অনুসন্ধান করুন",
287
305
  "valueLoss": "মান ক্ষতি",
288
306
  "searchChains": "",