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