@onepercentio/one-ui 0.29.2 → 0.29.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 (289) hide show
  1. package/dist/components/Switch/Switch.d.ts +1 -1
  2. package/dist/components/Switch/Switch.js +1 -1
  3. package/dist/hooks/useHero.js +3 -2
  4. package/dist-ts/components/Switch/Switch.d.ts +1 -1
  5. package/dist-ts/hooks/useHero.js +5 -4
  6. package/dist-ts/hooks/useHero.js.map +1 -1
  7. package/package.json +5 -1
  8. package/src/assets/img/svg/checkbox.svg +0 -3
  9. package/src/assets/styles/index.scss +0 -2
  10. package/src/assets/styles/mixins.scss +0 -12
  11. package/src/assets/styles/variables.scss +0 -49
  12. package/src/components/AdaptiveButton/AdaptiveButton.module.scss +0 -7
  13. package/src/components/AdaptiveButton/AdaptiveButton.tsx +0 -26
  14. package/src/components/AdaptiveButton/index.tsx +0 -2
  15. package/src/components/AdaptiveContainer/AdaptiveContainer.module.scss +0 -53
  16. package/src/components/AdaptiveContainer/AdaptiveContainer.tsx +0 -200
  17. package/src/components/AdaptiveContainer/index.tsx +0 -2
  18. package/src/components/AdaptiveDialog/AdaptiveDialog.module.scss +0 -147
  19. package/src/components/AdaptiveDialog/AdaptiveDialog.tsx +0 -97
  20. package/src/components/AdaptiveDialog/index.tsx +0 -2
  21. package/src/components/AdaptiveSidebar/AdaptiveSidebar.module.scss +0 -49
  22. package/src/components/AdaptiveSidebar/AdaptiveSidebar.sample.tsx +0 -10
  23. package/src/components/AdaptiveSidebar/AdaptiveSidebar.tsx +0 -123
  24. package/src/components/AdaptiveSidebar/index.tsx +0 -2
  25. package/src/components/AnchoredTooltip/AnchoredTooltip.module.scss +0 -64
  26. package/src/components/AnchoredTooltip/AnchoredTooltip.tsx +0 -250
  27. package/src/components/AnchoredTooltip/index.tsx +0 -2
  28. package/src/components/AnimatedEntrance/AnimatedEntrance.module.scss +0 -108
  29. package/src/components/AnimatedEntrance/AnimatedEntrance.tsx +0 -227
  30. package/src/components/AnimatedEntrance/index.tsx +0 -2
  31. package/src/components/AsyncWrapper/AsyncWrapper.tsx +0 -38
  32. package/src/components/AsyncWrapper/index.tsx +0 -2
  33. package/src/components/Avatar/Avatar.module.scss +0 -22
  34. package/src/components/Avatar/Avatar.tsx +0 -31
  35. package/src/components/Avatar/index.tsx +0 -2
  36. package/src/components/BucketFill/BucketFill.module.scss +0 -36
  37. package/src/components/BucketFill/BucketFill.tsx +0 -65
  38. package/src/components/BucketFill/index.tsx +0 -2
  39. package/src/components/Button/Button.module.scss +0 -45
  40. package/src/components/Button/Button.tsx +0 -40
  41. package/src/components/Button/index.tsx +0 -2
  42. package/src/components/Card/Card.module.scss +0 -12
  43. package/src/components/Card/Card.tsx +0 -9
  44. package/src/components/Card/index.tsx +0 -2
  45. package/src/components/Chart/Chart.e2e.ts +0 -4
  46. package/src/components/Chart/Chart.logic.tsx +0 -8
  47. package/src/components/Chart/Chart.module.scss +0 -58
  48. package/src/components/Chart/Chart.tsx +0 -2
  49. package/src/components/Chart/Chart.types.ts +0 -35
  50. package/src/components/Chart/Chart.view.tsx +0 -241
  51. package/src/components/Chart/index.tsx +0 -2
  52. package/src/components/CheckBox/CheckBox.module.scss +0 -36
  53. package/src/components/CheckBox/CheckBox.tsx +0 -63
  54. package/src/components/CheckBox/index.tsx +0 -2
  55. package/src/components/CodeInput/CodeInput.module.scss +0 -5
  56. package/src/components/CodeInput/CodeInput.tsx +0 -84
  57. package/src/components/CodeInput/index.tsx +0 -2
  58. package/src/components/Collapsable/Collapsable.module.scss +0 -42
  59. package/src/components/Collapsable/Collapsable.tsx +0 -253
  60. package/src/components/Collapsable/index.tsx +0 -2
  61. package/src/components/Countdown/Countdown.tsx +0 -130
  62. package/src/components/Countdown/index.tsx +0 -2
  63. package/src/components/CurrencyInput/CurrencyInput.hook.ts +0 -37
  64. package/src/components/CurrencyInput/CurrencyInput.tsx +0 -25
  65. package/src/components/CurrencyInput/index.tsx +0 -2
  66. package/src/components/Divider/Divider.module.scss +0 -7
  67. package/src/components/Divider/Divider.tsx +0 -13
  68. package/src/components/Divider/index.tsx +0 -2
  69. package/src/components/EmailInput/EmailInput.module.scss +0 -0
  70. package/src/components/EmailInput/EmailInput.tsx +0 -51
  71. package/src/components/EmailInput/index.tsx +0 -2
  72. package/src/components/FadeIn/FadeIn.module.scss +0 -9
  73. package/src/components/FadeIn/FadeIn.tsx +0 -77
  74. package/src/components/FadeIn/index.tsx +0 -2
  75. package/src/components/FileInput/FileInput.module.scss +0 -6
  76. package/src/components/FileInput/FileInput.tsx +0 -75
  77. package/src/components/FileInput/View/BigFactory/BigFactory.module.scss +0 -20
  78. package/src/components/FileInput/View/BigFactory/BigFactory.tsx +0 -48
  79. package/src/components/FileInput/View/BigFactory/index.tsx +0 -2
  80. package/src/components/FileInput/View/Compact/Compact.module.scss +0 -68
  81. package/src/components/FileInput/View/Compact/Compact.tsx +0 -151
  82. package/src/components/FileInput/View/Compact/index.tsx +0 -2
  83. package/src/components/FileInput/View/View.types.ts +0 -12
  84. package/src/components/FileInput/index.tsx +0 -2
  85. package/src/components/FlowController/FlowController.module.scss +0 -47
  86. package/src/components/FlowController/FlowController.tsx +0 -93
  87. package/src/components/FlowController/index.tsx +0 -2
  88. package/src/components/Form/Form.tsx +0 -243
  89. package/src/components/Form/index.ts +0 -2
  90. package/src/components/Form/v2/Form.hook.ts +0 -341
  91. package/src/components/Form/v2/Form.module.scss +0 -0
  92. package/src/components/Form/v2/Form.tsx +0 -78
  93. package/src/components/Form/v2/Form.types.ts +0 -118
  94. package/src/components/Form/v2/FormField/Extensions/DateField/DateField.module.scss +0 -0
  95. package/src/components/Form/v2/FormField/Extensions/DateField/DateField.tsx +0 -73
  96. package/src/components/Form/v2/FormField/Extensions/DateField/index.tsx +0 -2
  97. package/src/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.module.scss +0 -0
  98. package/src/components/Form/v2/FormField/Extensions/PhoneField/PhoneField.tsx +0 -91
  99. package/src/components/Form/v2/FormField/Extensions/PhoneField/index.tsx +0 -2
  100. package/src/components/Form/v2/FormField/FormField.module.scss +0 -0
  101. package/src/components/Form/v2/FormField/FormField.tsx +0 -378
  102. package/src/components/Form/v2/FormField/FormField.types.ts +0 -129
  103. package/src/components/Form/v2/FormField/index.tsx +0 -2
  104. package/src/components/Form/v2/index.tsx +0 -2
  105. package/src/components/Freeze/Freeze.tsx +0 -9
  106. package/src/components/Freeze/index.tsx +0 -2
  107. package/src/components/HSForms/HSForms.tsx +0 -57
  108. package/src/components/HSForms/index.tsx +0 -2
  109. package/src/components/Header/Header.module.scss +0 -119
  110. package/src/components/Header/Header.tsx +0 -138
  111. package/src/components/Header/index.tsx +0 -2
  112. package/src/components/HeaderCloseBtn/HeaderCloseBtn.module.scss +0 -44
  113. package/src/components/HeaderCloseBtn/HeaderCloseBtn.tsx +0 -28
  114. package/src/components/HeaderCloseBtn/index.tsx +0 -2
  115. package/src/components/InfinityScroll/InfinityScroll.module.scss +0 -30
  116. package/src/components/InfinityScroll/InfinityScroll.tsx +0 -187
  117. package/src/components/InfinityScroll/index.tsx +0 -2
  118. package/src/components/Input/Input.module.scss +0 -71
  119. package/src/components/Input/Input.tsx +0 -134
  120. package/src/components/Input/index.tsx +0 -2
  121. package/src/components/InstantCounter/InstantCounter.tsx +0 -77
  122. package/src/components/InstantCounter/index.tsx +0 -2
  123. package/src/components/LavaLamp/LavaLamp.data.tsx +0 -114
  124. package/src/components/LavaLamp/LavaLamp.module.scss +0 -26
  125. package/src/components/LavaLamp/LavaLamp.tsx +0 -131
  126. package/src/components/LavaLamp/index.tsx +0 -2
  127. package/src/components/LavaLamp/v2/LavaLamp.module.scss +0 -23
  128. package/src/components/LavaLamp/v2/LavaLamp.tsx +0 -197
  129. package/src/components/LinkToId/LinkToId.module.scss +0 -4
  130. package/src/components/LinkToId/LinkToId.tsx +0 -51
  131. package/src/components/LinkToId/index.tsx +0 -2
  132. package/src/components/Loader/Loader.module.scss +0 -40
  133. package/src/components/Loader/Loader.tsx +0 -18
  134. package/src/components/Loader/index.tsx +0 -2
  135. package/src/components/LoaderDotsIndicator/LoaderDotsIndicator.tsx +0 -34
  136. package/src/components/LoaderDotsIndicator/index.tsx +0 -2
  137. package/src/components/LoopableVideo/LoopableVideo.tsx +0 -37
  138. package/src/components/LoopableVideo/index.tsx +0 -2
  139. package/src/components/MainGrid/MainGrid.module.scss +0 -28
  140. package/src/components/MainGrid/MainGrid.tsx +0 -68
  141. package/src/components/MainGrid/index.tsx +0 -2
  142. package/src/components/MutableHamburgerButton/MutableHamburgerButton.module.scss +0 -220
  143. package/src/components/MutableHamburgerButton/MutableHamburgerButton.tsx +0 -38
  144. package/src/components/MutableHamburgerButton/index.tsx +0 -2
  145. package/src/components/Notification/Notification.module.scss +0 -25
  146. package/src/components/Notification/Notification.tsx +0 -13
  147. package/src/components/Notification/index.tsx +0 -2
  148. package/src/components/OrderableList/OrderableList.module.scss +0 -98
  149. package/src/components/OrderableList/OrderableList.tsx +0 -564
  150. package/src/components/OrderableList/index.tsx +0 -2
  151. package/src/components/PaginationIndicator/PaginationIndicator.tsx +0 -365
  152. package/src/components/PaginationIndicator/index.tsx +0 -2
  153. package/src/components/Parallax/Parallax.module.scss +0 -28
  154. package/src/components/Parallax/Parallax.tsx +0 -225
  155. package/src/components/Parallax/index.tsx +0 -2
  156. package/src/components/Parallax/math/helpers.ts +0 -289
  157. package/src/components/PasswordInput/PasswordInput.module.scss +0 -17
  158. package/src/components/PasswordInput/PasswordInput.tsx +0 -154
  159. package/src/components/PasswordInput/index.tsx +0 -2
  160. package/src/components/PingPongText/PingPongText.module.scss +0 -4
  161. package/src/components/PingPongText/PingPongText.tsx +0 -83
  162. package/src/components/PingPongText/index.tsx +0 -2
  163. package/src/components/PixelatedScan/PixelatedScan.module.scss +0 -86
  164. package/src/components/PixelatedScan/PixelatedScan.tsx +0 -175
  165. package/src/components/PixelatedScan/index.tsx +0 -2
  166. package/src/components/Portal/Portal.module.scss +0 -3
  167. package/src/components/Portal/Portal.tsx +0 -68
  168. package/src/components/Portal/index.tsx +0 -2
  169. package/src/components/ProgressBar/ProgressBar.module.scss +0 -44
  170. package/src/components/ProgressBar/ProgressBar.tsx +0 -124
  171. package/src/components/ProgressBar/index.tsx +0 -2
  172. package/src/components/ProgressTexts/ProgressTexts.module.scss +0 -37
  173. package/src/components/ProgressTexts/ProgressTexts.tsx +0 -85
  174. package/src/components/ProgressTexts/index.tsx +0 -2
  175. package/src/components/Radio/Radio.module.scss +0 -36
  176. package/src/components/Radio/Radio.tsx +0 -53
  177. package/src/components/Radio/index.tsx +0 -2
  178. package/src/components/SectionContainer/SectionContainer.module.scss +0 -30
  179. package/src/components/SectionContainer/SectionContainer.tsx +0 -49
  180. package/src/components/SectionContainer/index.tsx +0 -2
  181. package/src/components/Select/Select.module.scss +0 -58
  182. package/src/components/Select/Select.tsx +0 -192
  183. package/src/components/Select/index.tsx +0 -2
  184. package/src/components/Skeleton/Skeleton.module.scss +0 -21
  185. package/src/components/Skeleton/Skeleton.tsx +0 -29
  186. package/src/components/Skeleton/index.tsx +0 -2
  187. package/src/components/Spacing/Spacing.module.scss +0 -13
  188. package/src/components/Spacing/Spacing.tsx +0 -24
  189. package/src/components/Spacing/index.tsx +0 -2
  190. package/src/components/StaticScroller/StaticScroller.module.scss +0 -14
  191. package/src/components/StaticScroller/StaticScroller.tsx +0 -83
  192. package/src/components/StaticScroller/index.tsx +0 -2
  193. package/src/components/Switch/Switch.module.scss +0 -43
  194. package/src/components/Switch/Switch.tsx +0 -41
  195. package/src/components/Switch/index.tsx +0 -2
  196. package/src/components/Table/Table.module.scss +0 -76
  197. package/src/components/Table/Table.tsx +0 -152
  198. package/src/components/Table/index.tsx +0 -2
  199. package/src/components/Tabs/Tabs.module.scss +0 -40
  200. package/src/components/Tabs/Tabs.tsx +0 -104
  201. package/src/components/Tabs/index.tsx +0 -2
  202. package/src/components/Text/Text.module.scss +0 -81
  203. package/src/components/Text/Text.tsx +0 -42
  204. package/src/components/Text/index.tsx +0 -2
  205. package/src/components/Transition/MasksFactory/DiagonalReveal.tsx +0 -47
  206. package/src/components/Transition/MasksFactory/DiagonalSquareToBalls.tsx +0 -78
  207. package/src/components/Transition/MasksFactory/PhysicsSquares.tsx +0 -106
  208. package/src/components/Transition/MasksFactory/SquareToBalls.tsx +0 -66
  209. package/src/components/Transition/MasksFactory/utils.ts +0 -35
  210. package/src/components/Transition/Transition.module.scss +0 -211
  211. package/src/components/Transition/Transition.tsx +0 -495
  212. package/src/components/Transition/index.tsx +0 -2
  213. package/src/components/UncontrolledTransition/UncontrolledTransition.ai.md +0 -9
  214. package/src/components/UncontrolledTransition/UncontrolledTransition.sample.tsx +0 -34
  215. package/src/components/UncontrolledTransition/UncontrolledTransition.tsx +0 -143
  216. package/src/components/UncontrolledTransition/index.tsx +0 -2
  217. package/src/components/WalletConnectionWrapper/WalletConnectionWrapper.tsx +0 -212
  218. package/src/components/WalletConnectionWrapper/index.tsx +0 -2
  219. package/src/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.module.scss +0 -5
  220. package/src/components/utilitary/ScrollAndFocusLock/ScrollAndFocusLock.tsx +0 -52
  221. package/src/components/utilitary/ScrollAndFocusLock/index.tsx +0 -2
  222. package/src/context/AsyncProcess.tsx +0 -107
  223. package/src/context/ContextAsyncControl.tsx +0 -89
  224. package/src/context/CustomBrowserRouter.tsx +0 -55
  225. package/src/context/OneUIProvider.tsx +0 -308
  226. package/src/hooks/logs/useDependencyChangeDetection.ts +0 -25
  227. package/src/hooks/logs/useIsMounting.ts +0 -7
  228. package/src/hooks/persistence/useLocalStorage.ts +0 -45
  229. package/src/hooks/shims/ObjectWatchShim.ts +0 -56
  230. package/src/hooks/ui/useAdaptiveImage.tsx +0 -36
  231. package/src/hooks/ui/useAlternating.tsx +0 -22
  232. package/src/hooks/ui/useBreakpoint.tsx +0 -21
  233. package/src/hooks/ui/useCustomScrollbar.module.scss +0 -20
  234. package/src/hooks/ui/useCustomScrollbar.tsx +0 -22
  235. package/src/hooks/ui/useEffectIf.ts +0 -11
  236. package/src/hooks/ui/useMouseHover.tsx +0 -26
  237. package/src/hooks/ui/usePaginationControls.module.scss +0 -16
  238. package/src/hooks/ui/usePaginationControls.tsx +0 -176
  239. package/src/hooks/ui/useSnapToViewport.module.scss +0 -6
  240. package/src/hooks/ui/useSnapToViewport.ts +0 -28
  241. package/src/hooks/ui/useTilt.tsx +0 -219
  242. package/src/hooks/ui/useZoomable.module.scss +0 -34
  243. package/src/hooks/ui/useZoomable.tsx +0 -144
  244. package/src/hooks/useAsyncControl.ai.md +0 -25
  245. package/src/hooks/useAsyncControl.ts +0 -101
  246. package/src/hooks/useContainedRepositioning.ts +0 -110
  247. package/src/hooks/useCustomHistory.ts +0 -14
  248. package/src/hooks/useElementFit.ts +0 -82
  249. package/src/hooks/useFirestoreWatch.ts +0 -54
  250. package/src/hooks/useForm.ts +0 -49
  251. package/src/hooks/useFreeze.ts +0 -12
  252. package/src/hooks/useHero.module.scss +0 -41
  253. package/src/hooks/useHero.ts +0 -512
  254. package/src/hooks/useIntersection.ts +0 -32
  255. package/src/hooks/useMergeRefs.ts +0 -29
  256. package/src/hooks/useObserve.ts +0 -24
  257. package/src/hooks/usePagination.ts +0 -228
  258. package/src/hooks/usePooledOperation.ts +0 -54
  259. package/src/hooks/usePooling.ts +0 -46
  260. package/src/hooks/useRebound.ts +0 -23
  261. package/src/hooks/useShortIntl.ai.md +0 -5
  262. package/src/hooks/useShortIntl.ts +0 -97
  263. package/src/hooks/utility/useAsyncMemo.ts +0 -43
  264. package/src/hooks/utility/useDepChange.ts +0 -11
  265. package/src/hooks/utility/useEvents.ts +0 -33
  266. package/src/hooks/utility/useImmediate.ts +0 -8
  267. package/src/hooks/utility/useManualInit.ts +0 -24
  268. package/src/hooks/utility/useModule.ts +0 -15
  269. package/src/hooks/utility/useQuery.ts +0 -15
  270. package/src/hooks/utility/useUniqueEffect.ts +0 -22
  271. package/src/index.preprocess.ts +0 -82
  272. package/src/index.ts +0 -229
  273. package/src/models/DebugLogger.ts +0 -7
  274. package/src/models/GenericContract.ts +0 -169
  275. package/src/models/Orbs.ts +0 -97
  276. package/src/reac-app-env.d.ts +0 -6
  277. package/src/storybook/assets/video/txt-reversed.mp4 +0 -0
  278. package/src/storybookUtils/index.tsx +0 -53
  279. package/src/test.tsx +0 -0
  280. package/src/type-utils.ts +0 -49
  281. package/src/types.ts +0 -199
  282. package/src/utility.d.ts +0 -70
  283. package/src/utils/blockchain.ts +0 -43
  284. package/src/utils/e2e.ts +0 -55
  285. package/src/utils/flatten.ts +0 -17
  286. package/src/utils/formatters.ts +0 -36
  287. package/src/utils/html.utils.ts +0 -3
  288. package/src/utils/ownEvent.ts +0 -8
  289. 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
- }