@onepercentio/one-ui 0.29.4 → 0.29.6

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 (294) hide show
  1. package/dist/components/Portal/Portal.d.ts +5 -0
  2. package/dist/components/Portal/Portal.js +6 -1
  3. package/dist/components/Switch/Switch.d.ts +1 -1
  4. package/dist/components/Switch/Switch.js +1 -1
  5. package/dist/utils/e2e.d.ts +1 -1
  6. package/dist/utils/e2e.js +1 -1
  7. package/dist-ts/components/Portal/Portal.d.ts +5 -0
  8. package/dist-ts/components/Portal/Portal.js +5 -0
  9. package/dist-ts/components/Portal/Portal.js.map +1 -1
  10. package/dist-ts/components/Switch/Switch.d.ts +1 -1
  11. package/dist-ts/utils/e2e.d.ts +1 -1
  12. package/package.json +1 -1
  13. package/src/assets/img/svg/checkbox.svg +0 -3
  14. package/src/assets/styles/index.scss +0 -2
  15. package/src/assets/styles/mixins.scss +0 -12
  16. package/src/assets/styles/variables.scss +0 -49
  17. package/src/components/AdaptiveButton/AdaptiveButton.module.scss +0 -7
  18. package/src/components/AdaptiveButton/AdaptiveButton.tsx +0 -26
  19. package/src/components/AdaptiveButton/index.tsx +0 -2
  20. package/src/components/AdaptiveContainer/AdaptiveContainer.module.scss +0 -53
  21. package/src/components/AdaptiveContainer/AdaptiveContainer.tsx +0 -200
  22. package/src/components/AdaptiveContainer/index.tsx +0 -2
  23. package/src/components/AdaptiveDialog/AdaptiveDialog.module.scss +0 -147
  24. package/src/components/AdaptiveDialog/AdaptiveDialog.tsx +0 -97
  25. package/src/components/AdaptiveDialog/index.tsx +0 -2
  26. package/src/components/AdaptiveSidebar/AdaptiveSidebar.module.scss +0 -49
  27. package/src/components/AdaptiveSidebar/AdaptiveSidebar.sample.tsx +0 -10
  28. package/src/components/AdaptiveSidebar/AdaptiveSidebar.tsx +0 -123
  29. package/src/components/AdaptiveSidebar/index.tsx +0 -2
  30. package/src/components/AnchoredTooltip/AnchoredTooltip.module.scss +0 -64
  31. package/src/components/AnchoredTooltip/AnchoredTooltip.tsx +0 -250
  32. package/src/components/AnchoredTooltip/index.tsx +0 -2
  33. package/src/components/AnimatedEntrance/AnimatedEntrance.module.scss +0 -108
  34. package/src/components/AnimatedEntrance/AnimatedEntrance.tsx +0 -227
  35. package/src/components/AnimatedEntrance/index.tsx +0 -2
  36. package/src/components/AsyncWrapper/AsyncWrapper.tsx +0 -38
  37. package/src/components/AsyncWrapper/index.tsx +0 -2
  38. package/src/components/Avatar/Avatar.module.scss +0 -22
  39. package/src/components/Avatar/Avatar.tsx +0 -31
  40. package/src/components/Avatar/index.tsx +0 -2
  41. package/src/components/BucketFill/BucketFill.module.scss +0 -36
  42. package/src/components/BucketFill/BucketFill.tsx +0 -65
  43. package/src/components/BucketFill/index.tsx +0 -2
  44. package/src/components/Button/Button.module.scss +0 -45
  45. package/src/components/Button/Button.tsx +0 -40
  46. package/src/components/Button/index.tsx +0 -2
  47. package/src/components/Card/Card.module.scss +0 -12
  48. package/src/components/Card/Card.tsx +0 -9
  49. package/src/components/Card/index.tsx +0 -2
  50. package/src/components/Chart/Chart.e2e.ts +0 -4
  51. package/src/components/Chart/Chart.logic.tsx +0 -8
  52. package/src/components/Chart/Chart.module.scss +0 -58
  53. package/src/components/Chart/Chart.tsx +0 -2
  54. package/src/components/Chart/Chart.types.ts +0 -35
  55. package/src/components/Chart/Chart.view.tsx +0 -241
  56. package/src/components/Chart/index.tsx +0 -2
  57. package/src/components/CheckBox/CheckBox.module.scss +0 -36
  58. package/src/components/CheckBox/CheckBox.tsx +0 -63
  59. package/src/components/CheckBox/index.tsx +0 -2
  60. package/src/components/CodeInput/CodeInput.module.scss +0 -5
  61. package/src/components/CodeInput/CodeInput.tsx +0 -84
  62. package/src/components/CodeInput/index.tsx +0 -2
  63. package/src/components/Collapsable/Collapsable.module.scss +0 -42
  64. package/src/components/Collapsable/Collapsable.tsx +0 -253
  65. package/src/components/Collapsable/index.tsx +0 -2
  66. package/src/components/Countdown/Countdown.tsx +0 -130
  67. package/src/components/Countdown/index.tsx +0 -2
  68. package/src/components/CurrencyInput/CurrencyInput.hook.ts +0 -37
  69. package/src/components/CurrencyInput/CurrencyInput.tsx +0 -25
  70. package/src/components/CurrencyInput/index.tsx +0 -2
  71. package/src/components/Divider/Divider.module.scss +0 -7
  72. package/src/components/Divider/Divider.tsx +0 -13
  73. package/src/components/Divider/index.tsx +0 -2
  74. package/src/components/EmailInput/EmailInput.module.scss +0 -0
  75. package/src/components/EmailInput/EmailInput.tsx +0 -51
  76. package/src/components/EmailInput/index.tsx +0 -2
  77. package/src/components/FadeIn/FadeIn.module.scss +0 -9
  78. package/src/components/FadeIn/FadeIn.tsx +0 -77
  79. package/src/components/FadeIn/index.tsx +0 -2
  80. package/src/components/FileInput/FileInput.module.scss +0 -6
  81. package/src/components/FileInput/FileInput.tsx +0 -75
  82. package/src/components/FileInput/View/BigFactory/BigFactory.module.scss +0 -20
  83. package/src/components/FileInput/View/BigFactory/BigFactory.tsx +0 -48
  84. package/src/components/FileInput/View/BigFactory/index.tsx +0 -2
  85. package/src/components/FileInput/View/Compact/Compact.module.scss +0 -68
  86. package/src/components/FileInput/View/Compact/Compact.tsx +0 -151
  87. package/src/components/FileInput/View/Compact/index.tsx +0 -2
  88. package/src/components/FileInput/View/View.types.ts +0 -12
  89. package/src/components/FileInput/index.tsx +0 -2
  90. package/src/components/FlowController/FlowController.module.scss +0 -47
  91. package/src/components/FlowController/FlowController.tsx +0 -93
  92. package/src/components/FlowController/index.tsx +0 -2
  93. package/src/components/Form/Form.tsx +0 -243
  94. package/src/components/Form/index.ts +0 -2
  95. package/src/components/Form/v2/Form.hook.ts +0 -341
  96. package/src/components/Form/v2/Form.module.scss +0 -0
  97. package/src/components/Form/v2/Form.tsx +0 -78
  98. package/src/components/Form/v2/Form.types.ts +0 -118
  99. package/src/components/Form/v2/FormField/Extensions/DateField/DateField.module.scss +0 -0
  100. package/src/components/Form/v2/FormField/Extensions/DateField/DateField.tsx +0 -73
  101. package/src/components/Form/v2/FormField/Extensions/DateField/index.tsx +0 -2
  102. package/src/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
  103. package/src/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.tsx +0 -91
  104. package/src/components/Form/v2/FormField/Extensions/PhoneField/index.tsx +0 -2
  105. package/src/components/Form/v2/FormField/FormField.module.scss +0 -0
  106. package/src/components/Form/v2/FormField/FormField.tsx +0 -378
  107. package/src/components/Form/v2/FormField/FormField.types.ts +0 -129
  108. package/src/components/Form/v2/FormField/index.tsx +0 -2
  109. package/src/components/Form/v2/index.tsx +0 -2
  110. package/src/components/Freeze/Freeze.tsx +0 -9
  111. package/src/components/Freeze/index.tsx +0 -2
  112. package/src/components/HSForms/HSForms.tsx +0 -57
  113. package/src/components/HSForms/index.tsx +0 -2
  114. package/src/components/Header/Header.module.scss +0 -119
  115. package/src/components/Header/Header.tsx +0 -138
  116. package/src/components/Header/index.tsx +0 -2
  117. package/src/components/HeaderCloseBtn/HeaderCloseBtn.module.scss +0 -44
  118. package/src/components/HeaderCloseBtn/HeaderCloseBtn.tsx +0 -28
  119. package/src/components/HeaderCloseBtn/index.tsx +0 -2
  120. package/src/components/InfinityScroll/InfinityScroll.module.scss +0 -30
  121. package/src/components/InfinityScroll/InfinityScroll.tsx +0 -187
  122. package/src/components/InfinityScroll/index.tsx +0 -2
  123. package/src/components/Input/Input.module.scss +0 -71
  124. package/src/components/Input/Input.tsx +0 -134
  125. package/src/components/Input/index.tsx +0 -2
  126. package/src/components/InstantCounter/InstantCounter.tsx +0 -77
  127. package/src/components/InstantCounter/index.tsx +0 -2
  128. package/src/components/LavaLamp/LavaLamp.data.tsx +0 -114
  129. package/src/components/LavaLamp/LavaLamp.module.scss +0 -26
  130. package/src/components/LavaLamp/LavaLamp.tsx +0 -131
  131. package/src/components/LavaLamp/index.tsx +0 -2
  132. package/src/components/LavaLamp/v2/LavaLamp.module.scss +0 -23
  133. package/src/components/LavaLamp/v2/LavaLamp.tsx +0 -197
  134. package/src/components/LinkToId/LinkToId.module.scss +0 -4
  135. package/src/components/LinkToId/LinkToId.tsx +0 -51
  136. package/src/components/LinkToId/index.tsx +0 -2
  137. package/src/components/Loader/Loader.module.scss +0 -40
  138. package/src/components/Loader/Loader.tsx +0 -18
  139. package/src/components/Loader/index.tsx +0 -2
  140. package/src/components/LoaderDotsIndicator/LoaderDotsIndicator.tsx +0 -34
  141. package/src/components/LoaderDotsIndicator/index.tsx +0 -2
  142. package/src/components/LoopableVideo/LoopableVideo.tsx +0 -37
  143. package/src/components/LoopableVideo/index.tsx +0 -2
  144. package/src/components/MainGrid/MainGrid.module.scss +0 -28
  145. package/src/components/MainGrid/MainGrid.tsx +0 -68
  146. package/src/components/MainGrid/index.tsx +0 -2
  147. package/src/components/MutableHamburgerButton/MutableHamburgerButton.module.scss +0 -220
  148. package/src/components/MutableHamburgerButton/MutableHamburgerButton.tsx +0 -38
  149. package/src/components/MutableHamburgerButton/index.tsx +0 -2
  150. package/src/components/Notification/Notification.module.scss +0 -25
  151. package/src/components/Notification/Notification.tsx +0 -13
  152. package/src/components/Notification/index.tsx +0 -2
  153. package/src/components/OrderableList/OrderableList.module.scss +0 -98
  154. package/src/components/OrderableList/OrderableList.tsx +0 -564
  155. package/src/components/OrderableList/index.tsx +0 -2
  156. package/src/components/PaginationIndicator/PaginationIndicator.tsx +0 -365
  157. package/src/components/PaginationIndicator/index.tsx +0 -2
  158. package/src/components/Parallax/Parallax.module.scss +0 -28
  159. package/src/components/Parallax/Parallax.tsx +0 -225
  160. package/src/components/Parallax/index.tsx +0 -2
  161. package/src/components/Parallax/math/helpers.ts +0 -289
  162. package/src/components/PasswordInput/PasswordInput.module.scss +0 -17
  163. package/src/components/PasswordInput/PasswordInput.tsx +0 -154
  164. package/src/components/PasswordInput/index.tsx +0 -2
  165. package/src/components/PingPongText/PingPongText.module.scss +0 -4
  166. package/src/components/PingPongText/PingPongText.tsx +0 -83
  167. package/src/components/PingPongText/index.tsx +0 -2
  168. package/src/components/PixelatedScan/PixelatedScan.module.scss +0 -86
  169. package/src/components/PixelatedScan/PixelatedScan.tsx +0 -175
  170. package/src/components/PixelatedScan/index.tsx +0 -2
  171. package/src/components/Portal/Portal.module.scss +0 -3
  172. package/src/components/Portal/Portal.tsx +0 -68
  173. package/src/components/Portal/index.tsx +0 -2
  174. package/src/components/ProgressBar/ProgressBar.module.scss +0 -44
  175. package/src/components/ProgressBar/ProgressBar.tsx +0 -124
  176. package/src/components/ProgressBar/index.tsx +0 -2
  177. package/src/components/ProgressTexts/ProgressTexts.module.scss +0 -37
  178. package/src/components/ProgressTexts/ProgressTexts.tsx +0 -85
  179. package/src/components/ProgressTexts/index.tsx +0 -2
  180. package/src/components/Radio/Radio.module.scss +0 -36
  181. package/src/components/Radio/Radio.tsx +0 -53
  182. package/src/components/Radio/index.tsx +0 -2
  183. package/src/components/SectionContainer/SectionContainer.module.scss +0 -30
  184. package/src/components/SectionContainer/SectionContainer.tsx +0 -49
  185. package/src/components/SectionContainer/index.tsx +0 -2
  186. package/src/components/Select/Select.module.scss +0 -58
  187. package/src/components/Select/Select.tsx +0 -192
  188. package/src/components/Select/index.tsx +0 -2
  189. package/src/components/Skeleton/Skeleton.module.scss +0 -21
  190. package/src/components/Skeleton/Skeleton.tsx +0 -29
  191. package/src/components/Skeleton/index.tsx +0 -2
  192. package/src/components/Spacing/Spacing.module.scss +0 -13
  193. package/src/components/Spacing/Spacing.tsx +0 -24
  194. package/src/components/Spacing/index.tsx +0 -2
  195. package/src/components/StaticScroller/StaticScroller.module.scss +0 -14
  196. package/src/components/StaticScroller/StaticScroller.tsx +0 -83
  197. package/src/components/StaticScroller/index.tsx +0 -2
  198. package/src/components/Switch/Switch.module.scss +0 -43
  199. package/src/components/Switch/Switch.tsx +0 -41
  200. package/src/components/Switch/index.tsx +0 -2
  201. package/src/components/Table/Table.module.scss +0 -76
  202. package/src/components/Table/Table.tsx +0 -152
  203. package/src/components/Table/index.tsx +0 -2
  204. package/src/components/Tabs/Tabs.module.scss +0 -40
  205. package/src/components/Tabs/Tabs.tsx +0 -104
  206. package/src/components/Tabs/index.tsx +0 -2
  207. package/src/components/Text/Text.module.scss +0 -81
  208. package/src/components/Text/Text.tsx +0 -42
  209. package/src/components/Text/index.tsx +0 -2
  210. package/src/components/Transition/MasksFactory/DiagonalReveal.tsx +0 -47
  211. package/src/components/Transition/MasksFactory/DiagonalSquareToBalls.tsx +0 -78
  212. package/src/components/Transition/MasksFactory/PhysicsSquares.tsx +0 -106
  213. package/src/components/Transition/MasksFactory/SquareToBalls.tsx +0 -66
  214. package/src/components/Transition/MasksFactory/utils.ts +0 -35
  215. package/src/components/Transition/Transition.module.scss +0 -211
  216. package/src/components/Transition/Transition.tsx +0 -495
  217. package/src/components/Transition/index.tsx +0 -2
  218. package/src/components/UncontrolledTransition/UncontrolledTransition.ai.md +0 -9
  219. package/src/components/UncontrolledTransition/UncontrolledTransition.sample.tsx +0 -34
  220. package/src/components/UncontrolledTransition/UncontrolledTransition.tsx +0 -143
  221. package/src/components/UncontrolledTransition/index.tsx +0 -2
  222. package/src/components/WalletConnectionWrapper/WalletConnectionWrapper.tsx +0 -212
  223. package/src/components/WalletConnectionWrapper/index.tsx +0 -2
  224. package/src/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.module.scss +0 -5
  225. package/src/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.tsx +0 -52
  226. package/src/components/utilitary/ScrollAndFocusLock/index.tsx +0 -2
  227. package/src/context/AsyncProcess.tsx +0 -107
  228. package/src/context/ContextAsyncControl.tsx +0 -89
  229. package/src/context/CustomBrowserRouter.tsx +0 -55
  230. package/src/context/OneUIProvider.tsx +0 -308
  231. package/src/hooks/logs/useDependencyChangeDetection.ts +0 -25
  232. package/src/hooks/logs/useIsMounting.ts +0 -7
  233. package/src/hooks/persistence/useLocalStorage.ts +0 -45
  234. package/src/hooks/shims/ObjectWatchShim.ts +0 -56
  235. package/src/hooks/ui/useAdaptiveImage.tsx +0 -36
  236. package/src/hooks/ui/useAlternating.tsx +0 -22
  237. package/src/hooks/ui/useBreakpoint.tsx +0 -21
  238. package/src/hooks/ui/useCustomScrollbar.module.scss +0 -20
  239. package/src/hooks/ui/useCustomScrollbar.tsx +0 -22
  240. package/src/hooks/ui/useEffectIf.ts +0 -11
  241. package/src/hooks/ui/useMouseHover.tsx +0 -26
  242. package/src/hooks/ui/usePaginationControls.module.scss +0 -16
  243. package/src/hooks/ui/usePaginationControls.tsx +0 -176
  244. package/src/hooks/ui/useSnapToViewport.module.scss +0 -6
  245. package/src/hooks/ui/useSnapToViewport.ts +0 -28
  246. package/src/hooks/ui/useTilt.tsx +0 -219
  247. package/src/hooks/ui/useZoomable.module.scss +0 -34
  248. package/src/hooks/ui/useZoomable.tsx +0 -144
  249. package/src/hooks/useAsyncControl.ai.md +0 -25
  250. package/src/hooks/useAsyncControl.ts +0 -101
  251. package/src/hooks/useContainedRepositioning.ts +0 -110
  252. package/src/hooks/useCustomHistory.ts +0 -14
  253. package/src/hooks/useElementFit.ts +0 -82
  254. package/src/hooks/useFirestoreWatch.ts +0 -54
  255. package/src/hooks/useForm.ts +0 -49
  256. package/src/hooks/useFreeze.ts +0 -12
  257. package/src/hooks/useHero.module.scss +0 -41
  258. package/src/hooks/useHero.ts +0 -514
  259. package/src/hooks/useIntersection.ts +0 -32
  260. package/src/hooks/useMergeRefs.ts +0 -29
  261. package/src/hooks/useObserve.ts +0 -24
  262. package/src/hooks/usePagination.ts +0 -228
  263. package/src/hooks/usePooledOperation.ts +0 -54
  264. package/src/hooks/usePooling.ts +0 -46
  265. package/src/hooks/useRebound.ts +0 -23
  266. package/src/hooks/useShortIntl.ai.md +0 -5
  267. package/src/hooks/useShortIntl.ts +0 -97
  268. package/src/hooks/utility/useAsyncMemo.ts +0 -43
  269. package/src/hooks/utility/useDepChange.ts +0 -11
  270. package/src/hooks/utility/useEvents.ts +0 -33
  271. package/src/hooks/utility/useImmediate.ts +0 -8
  272. package/src/hooks/utility/useManualInit.ts +0 -24
  273. package/src/hooks/utility/useModule.ts +0 -15
  274. package/src/hooks/utility/useQuery.ts +0 -15
  275. package/src/hooks/utility/useUniqueEffect.ts +0 -22
  276. package/src/index.preprocess.ts +0 -82
  277. package/src/index.ts +0 -229
  278. package/src/models/DebugLogger.ts +0 -7
  279. package/src/models/GenericContract.ts +0 -169
  280. package/src/models/Orbs.ts +0 -97
  281. package/src/reac-app-env.d.ts +0 -6
  282. package/src/storybook/assets/video/txt-reversed.mp4 +0 -0
  283. package/src/storybookUtils/index.tsx +0 -53
  284. package/src/test.tsx +0 -0
  285. package/src/type-utils.ts +0 -49
  286. package/src/types.ts +0 -199
  287. package/src/utility.d.ts +0 -70
  288. package/src/utils/blockchain.ts +0 -43
  289. package/src/utils/e2e.ts +0 -55
  290. package/src/utils/flatten.ts +0 -17
  291. package/src/utils/formatters.ts +0 -36
  292. package/src/utils/html.utils.ts +0 -3
  293. package/src/utils/ownEvent.ts +0 -8
  294. package/src/utils/test.ts +0 -20
@@ -1,212 +0,0 @@
1
- import React, {
2
- createRef,
3
- ForwardedRef,
4
- forwardRef,
5
- PropsWithChildren,
6
- ReactElement,
7
- ReactNode,
8
- useEffect,
9
- useImperativeHandle,
10
- useMemo,
11
- useState,
12
- } from "react";
13
- import { useWallet, UseWalletProvider } from "use-wallet";
14
- import useAsyncControl from "../../hooks/useAsyncControl";
15
-
16
- export type WalletConnectionProps = PropsWithChildren<
17
- Omit<ReturnType<typeof useAsyncControl>, "process"> & {
18
- chainId?: number;
19
- isChainIdValid: boolean | undefined;
20
- isProviderAvailable: boolean;
21
- isConnectedAndValidChain: boolean;
22
- isConnected: boolean;
23
- wallet?: string;
24
-
25
- connect: () => Promise<void>;
26
- disconnect: () => void;
27
- changeChainId: () => Promise<void>;
28
- }
29
- >;
30
-
31
- type Props = {
32
- /**
33
- * The chain id that the user is expected to connect to
34
- */
35
- chain?: {
36
- id: number;
37
- rpcUrl: string;
38
- explorerUrl: string;
39
- name: string;
40
- currency: string;
41
- };
42
-
43
- /**
44
- * When the user doesn't have a provider like metamask available
45
- */
46
- ProviderUnavailable?: React.FunctionComponent;
47
-
48
- /**
49
- * This is invoked when the chain ID is not available
50
- */
51
- ChainIdInvalid?: React.FunctionComponent<{
52
- changeChainId: () => void;
53
- }>;
54
-
55
- /**
56
- * This renders the content that is shown inside the wallet content
57
- */
58
- Content: (props: WalletConnectionProps) => ReactElement;
59
- };
60
- function _WalletConnectionWrapper(
61
- props: PropsWithChildren<Props>,
62
- ref: ForwardedRef<{
63
- connect: () => Promise<void>;
64
- disconnect: () => void;
65
- }>
66
- ) {
67
- return (
68
- <UseWalletProvider>
69
- <Content compRef={ref || createRef()} {...props} />
70
- </UseWalletProvider>
71
- );
72
- }
73
- /**
74
- * This component handles a lot of cenarios when dealing with the wallet connection to different providers (ex: Metamask)
75
- **/
76
- function _BaseWalletConnectionWrapper(
77
- props: Props & {
78
- children?: any;
79
- },
80
- ref: ForwardedRef<{
81
- connect: () => Promise<void>;
82
- disconnect: () => void;
83
- }>
84
- ) {
85
- return <Content compRef={ref || createRef()} {...props} />;
86
- }
87
-
88
- function Content({
89
- ProviderUnavailable,
90
- ChainIdInvalid,
91
- chain,
92
- Content: ProvidedContentWrapper,
93
- compRef,
94
- children,
95
- }: PropsWithChildren<
96
- Props & {
97
- compRef: ForwardedRef<{
98
- connect: () => Promise<void>;
99
- disconnect: () => void;
100
- }>;
101
- }
102
- >) {
103
- const wallet = useWallet();
104
- const connectionAsyncWrapper = useAsyncControl();
105
- const connect = async () => {
106
- await connectionAsyncWrapper.process(async () => {
107
- await wallet.connect("injected");
108
- localStorage.setItem("auto_connect", "true");
109
- });
110
- };
111
- const disconnect = () => {
112
- wallet.reset();
113
- localStorage.removeItem("auto_connect");
114
- };
115
- useEffect(() => {
116
- const autoConnect = !!localStorage.getItem("auto_connect");
117
- if (autoConnect && !wallet.account) connect();
118
- }, []);
119
- useImperativeHandle(
120
- compRef,
121
- () => ({
122
- connect,
123
- disconnect,
124
- }),
125
- [wallet]
126
- );
127
- const [isProviderAvailable] = useState(() => !!window.ethereum);
128
- /**
129
- * true - Mostrar o conteudo (ex: form de transferencia)
130
- * false - Mostrar o botão de trocar a chain
131
- *
132
- * undefined ???
133
- */
134
- const isChainIdValid = useMemo(
135
- () =>
136
- chain
137
- ? wallet.isConnected()
138
- ? wallet.chainId === chain.id
139
- : true
140
- : undefined,
141
- [wallet, chain?.id]
142
- );
143
-
144
- async function changeChainId() {
145
- try {
146
- await window.ethereum!.request({
147
- method: "wallet_switchEthereumChain",
148
- params: [
149
- {
150
- chainId: `0x${chain!.id.toString(16).padStart(2, "0")}`,
151
- },
152
- ],
153
- });
154
- } catch (e: any) {
155
- switch (e.code) {
156
- case 4902:
157
- await window.ethereum!.request({
158
- method: "wallet_addEthereumChain",
159
- params: [
160
- {
161
- chainId: `0x${chain!.id.toString(16).padStart(2, "0")}`,
162
- chainName: chain!.name,
163
- rpcUrls: [chain!.rpcUrl],
164
- blockExplorerUrls: [chain!.explorerUrl],
165
- nativeCurrency: {
166
- symbol: chain!.currency,
167
- decimals: 18,
168
- },
169
- },
170
- ],
171
- });
172
- default:
173
- throw e;
174
- }
175
- }
176
- }
177
- const ContentWrapper = ProvidedContentWrapper as any;
178
- return (
179
- <>
180
- {ProviderUnavailable && !isProviderAvailable && <ProviderUnavailable />}
181
- {ChainIdInvalid && !isChainIdValid && (
182
- <ChainIdInvalid changeChainId={changeChainId} />
183
- )}
184
- {
185
- <ContentWrapper
186
- {...connectionAsyncWrapper}
187
- isChainIdValid={isChainIdValid}
188
- isProviderAvailable={isProviderAvailable}
189
- isConnectedAndValidChain={isChainIdValid && wallet.isConnected()}
190
- connect={connect}
191
- disconnect={disconnect}
192
- changeChainId={changeChainId}
193
- chainId={wallet.chainId}
194
- isConnected={wallet.isConnected()}
195
- wallet={wallet.account}
196
- >
197
- {children}
198
- </ContentWrapper>
199
- }
200
- </>
201
- );
202
- }
203
-
204
- /**
205
- * This component handles some cenarios when dealing with the wallet connection to different providers (ex: Metamask)
206
- **/
207
- const WalletConnectionWrapper = forwardRef(_WalletConnectionWrapper);
208
- export default WalletConnectionWrapper;
209
-
210
- export const BaseWalletConnectionWrapper = forwardRef(
211
- _BaseWalletConnectionWrapper
212
- );
@@ -1,2 +0,0 @@
1
- export { default } from "./WalletConnectionWrapper";
2
- export * from "./WalletConnectionWrapper";
@@ -1,5 +0,0 @@
1
- .lockClass {
2
- @media screen and (max-width: 639px) {
3
- overflow: hidden;
4
- }
5
- }
@@ -1,52 +0,0 @@
1
- import React, { PropsWithChildren, useEffect, useRef } from "react";
2
- import Styles from "./ScrollAndFocusLock.module.scss";
3
- /**
4
- * This utilitary component shall be used to lock the focus and disable scroll over the wrapped component
5
- **/
6
- export default function ScrollAndFocusLock({
7
- open,
8
- children,
9
- }: PropsWithChildren<{
10
- open: boolean;
11
- }>) {
12
- const firstAnchor = useRef<HTMLDivElement>(null);
13
- const lastAnchor = useRef<HTMLDivElement>(null);
14
- const startOfModal = useRef<HTMLDivElement>(null);
15
- useEffect(() => {
16
- if (open) startOfModal.current!.focus();
17
- }, []);
18
- useEffect(() => {
19
- if (open) {
20
- startOfModal.current!.focus();
21
- document.body.classList.add(Styles.lockClass)
22
-
23
- return () => {
24
- document.body.classList.remove(Styles.lockClass)
25
- };
26
- }
27
- }, [open]);
28
-
29
- function onFocusAnchors(e: React.FocusEvent<HTMLDivElement>) {
30
- const focusOnStartOfModal = () => {
31
- const nextSibling = firstAnchor.current!.nextElementSibling;
32
- if (nextSibling instanceof HTMLDivElement) nextSibling.focus();
33
- };
34
- if (e.target === firstAnchor.current) {
35
- if (e.relatedTarget === startOfModal.current) lastAnchor.current!.focus();
36
- else focusOnStartOfModal();
37
- } else if (
38
- e.target === lastAnchor.current &&
39
- e.relatedTarget !== firstAnchor.current
40
- ) {
41
- focusOnStartOfModal();
42
- }
43
- }
44
- return (
45
- <>
46
- <div ref={firstAnchor} tabIndex={0} onFocus={onFocusAnchors} />
47
- <div ref={startOfModal} tabIndex={0} />
48
- {children}
49
- <div ref={lastAnchor} tabIndex={0} onFocus={onFocusAnchors} />
50
- </>
51
- );
52
- }
@@ -1,2 +0,0 @@
1
- export { default } from "./ScrollAndFocusLock";
2
- export * from "./ScrollAndFocusLock";
@@ -1,107 +0,0 @@
1
- import React, { useMemo } from "react";
2
- import {
3
- createContext,
4
- PropsWithChildren,
5
- useContext,
6
- useEffect,
7
- useRef,
8
- } from "react";
9
- import useEvents from "../hooks/utility/useEvents";
10
-
11
- const AsyncProcessContext = createContext<{
12
- _subscriber: ReturnType<typeof useEvents>["subscriber"];
13
- _wrappedFunctions: {
14
- [k in keyof OnepercentUtility.AsyncQueue.Processes]: (
15
- ...args: OnepercentUtility.AsyncQueue.Processes[k]
16
- ) => Promise<void>;
17
- };
18
- }>(null as any);
19
-
20
- type PersistedIdentifier = string;
21
-
22
- export default function AsyncProcessProvider({
23
- children,
24
- triggers,
25
- persistence,
26
- }: PropsWithChildren<{
27
- /** Functions that will be provided to those that use the async process */
28
- triggers: {
29
- [k in keyof OnepercentUtility.AsyncQueue.Processes]: (
30
- ...args: OnepercentUtility.AsyncQueue.Processes[k]
31
- ) => Promise<void>;
32
- };
33
- /** This will persist the data required for restoring the async processes when required */
34
- persistence: {
35
- write: <K extends keyof OnepercentUtility.AsyncQueue.Processes>(
36
- k: K,
37
- ...args: OnepercentUtility.AsyncQueue.Processes[K]
38
- ) => PersistedIdentifier;
39
- remove: (id: PersistedIdentifier) => void;
40
- recover: () => [PersistedIdentifier, Promise<void>][];
41
- };
42
- }>) {
43
- const { subscriber, dispatcher } = useEvents();
44
-
45
- const wrappedFunctions = useMemo(() => {
46
- return Object.keys(triggers).reduce(
47
- (r, k) => ({
48
- ...r,
49
- [k]: (
50
- ...args: OnepercentUtility.AsyncQueue.Processes[keyof OnepercentUtility.AsyncQueue.Processes]
51
- ) => {
52
- let persisted = persistence.write(k as any, ...args);
53
- return (triggers as any)[k as any](...args).finally(() => {
54
- persistence.remove(persisted);
55
- dispatcher(k as any);
56
- });
57
- },
58
- }),
59
- {} as typeof triggers
60
- );
61
- }, []);
62
-
63
- useEffect(() => {
64
- const recoveries = persistence.recover();
65
- for (let [recoveryId, recoveryProcess] of recoveries)
66
- recoveryProcess.finally(() => {
67
- persistence.remove(recoveryId);
68
- });
69
- }, []);
70
-
71
- return (
72
- <AsyncProcessContext.Provider
73
- value={{ _subscriber: subscriber, _wrappedFunctions: wrappedFunctions }}
74
- >
75
- {children}
76
- </AsyncProcessContext.Provider>
77
- );
78
- }
79
-
80
- export function useAsyncProcess(): {
81
- [k in keyof OnepercentUtility.AsyncQueue.Processes]: (
82
- ...args: OnepercentUtility.AsyncQueue.Processes[k]
83
- ) => Promise<void>;
84
- } & {
85
- on: (
86
- k: keyof OnepercentUtility.AsyncQueue.Processes,
87
- whatToDo: () => void
88
- ) => void;
89
- } {
90
- const { _subscriber: subscriber, _wrappedFunctions } =
91
- useContext(AsyncProcessContext);
92
- const subscriptions = useRef<Function[]>([]);
93
-
94
- useEffect(
95
- () => () => {
96
- for (let unsubscribe of subscriptions.current) unsubscribe();
97
- },
98
- []
99
- );
100
-
101
- return {
102
- on: (k, whatToDo) => {
103
- subscriptions.current.push(subscriber(k, whatToDo));
104
- },
105
- ..._wrappedFunctions,
106
- };
107
- }
@@ -1,89 +0,0 @@
1
- import React, {
2
- createContext,
3
- useContext,
4
- PropsWithChildren,
5
- useInsertionEffect,
6
- useMemo,
7
- useEffect,
8
- useState,
9
- } from "react";
10
- import { FunctionMap, useRawAsynControl } from "../hooks/useAsyncControl";
11
-
12
- type CB = (...args: any[]) => void;
13
- class Subscriber {
14
- private sharedCbs: { [id: string]: Function[] } = {};
15
- private latest: {
16
- [id: string]: any;
17
- } = {};
18
-
19
- register<C extends CB>(cbId: string, cb: C) {
20
- if (!this.sharedCbs[cbId]) this.sharedCbs[cbId] = [];
21
- this.sharedCbs[cbId].push(cb);
22
- return (...args: Parameters<C>) => {
23
- this.latest[cbId] = args;
24
- for (let cb of this.sharedCbs[cbId]) cb(...args);
25
- };
26
- }
27
- unregister<C extends CB>(cbId: string, cb: C) {
28
- const cbIdx = this.sharedCbs[cbId].indexOf(cb);
29
- this.sharedCbs[cbId].splice(cbIdx, 1);
30
- }
31
- current(cbId: string) {
32
- return this.latest[cbId];
33
- }
34
- }
35
-
36
- export type ContextAsyncControlContextShape = {
37
- [controlId: string]: Subscriber;
38
- };
39
- export const ContextAsyncControlContext =
40
- createContext<ContextAsyncControlContextShape>(null as any);
41
-
42
- export default function ContextAsyncControlProvider({
43
- children,
44
- }: PropsWithChildren<{}>) {
45
- return (
46
- <ContextAsyncControlContext.Provider value={{}}>
47
- {children}
48
- </ContextAsyncControlContext.Provider>
49
- );
50
- }
51
-
52
- export function useShareState<E>(controlId: string, stateId: string) {
53
- const ctx = useContext(ContextAsyncControlContext);
54
- const [state, setLocalState] = useState<E>(() => {
55
- if (!ctx[controlId]) ctx[controlId] = new Subscriber();
56
- const initAs = ctx[controlId].current(stateId)?.[0] as E;
57
- return initAs;
58
- });
59
-
60
- const wrappedSetState = useMemo(() => {
61
- return ctx[controlId].register(stateId, setLocalState);
62
- }, []);
63
-
64
- useInsertionEffect(
65
- () => () => {
66
- ctx[controlId].unregister(stateId, setLocalState);
67
- },
68
- []
69
- );
70
-
71
- return [state, wrappedSetState] as const;
72
- }
73
-
74
- export function useContextControl<E, F extends FunctionMap>(
75
- controlId: string,
76
- functionsToWrap: F
77
- ) {
78
- const [error, setError] = useShareState<E | Error | undefined>(
79
- controlId,
80
- "error"
81
- );
82
- const [loading, setLoading] = useShareState<boolean>(controlId, "loading");
83
-
84
- return useRawAsynControl(
85
- functionsToWrap,
86
- [error, setError],
87
- [loading, setLoading]
88
- );
89
- }
@@ -1,55 +0,0 @@
1
- import { Router, useHistory } from "react-router-dom";
2
- import { createBrowserHistory } from "history";
3
- import React, {
4
- PropsWithChildren,
5
- useEffect,
6
- useLayoutEffect,
7
- useRef,
8
- } from "react";
9
-
10
- export type CustomState = {
11
- internalNavigation?: boolean;
12
- };
13
-
14
- export default function CustomBrowserRouter({
15
- children,
16
- beforeRouteChange = (s) => s,
17
- }: PropsWithChildren<{
18
- /**
19
- * Allows the dev to modify the route before commiting the route change
20
- *
21
- * @returns The new route
22
- */
23
- beforeRouteChange?: (
24
- newRoute: string,
25
- history: ReturnType<typeof createBrowserHistory>
26
- ) => string;
27
- }>) {
28
- const { current: historyCustom } = useRef(createBrowserHistory<any>());
29
- useLayoutEffect(() => {
30
- function overrideFunction(name: keyof typeof historyCustom) {
31
- const orig = historyCustom[name] as any;
32
- (historyCustom as any)[name] = (
33
- route: string,
34
- state: CustomState | null,
35
- ...args: any[]
36
- ) => {
37
- const isReplacingAnInternalNavigation =
38
- name === "replace" && history.state?.state?.internalNavigation;
39
- const isARouteChange = name !== "replace";
40
- if ((isARouteChange || isReplacingAnInternalNavigation) && !state)
41
- state = {};
42
- if (state)
43
- state.internalNavigation =
44
- name === "replace"
45
- ? history.state?.state?.internalNavigation
46
- : true;
47
- const modifiedRoute = beforeRouteChange(route, historyCustom);
48
- return orig(modifiedRoute, state, ...args);
49
- };
50
- }
51
- overrideFunction("push");
52
- overrideFunction("replace");
53
- }, [historyCustom]);
54
- return <Router history={historyCustom}>{children as any}</Router>;
55
- }