@fountain-ui/core 2.0.0-beta.16 → 2.0.0-beta.19

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 (129) hide show
  1. package/build/commonjs/Tabs/IndexAwareTab.js +13 -7
  2. package/build/commonjs/Tabs/IndexAwareTab.js.map +1 -1
  3. package/build/commonjs/Tabs/InternalContext.js +17 -0
  4. package/build/commonjs/Tabs/InternalContext.js.map +1 -0
  5. package/build/commonjs/Tabs/ScrollableTabsView.js +34 -0
  6. package/build/commonjs/Tabs/ScrollableTabsView.js.map +1 -0
  7. package/build/commonjs/Tabs/TabIndicator.js +46 -19
  8. package/build/commonjs/Tabs/TabIndicator.js.map +1 -1
  9. package/build/commonjs/Tabs/TabIndicatorProps.js.map +1 -1
  10. package/build/commonjs/Tabs/Tabs.js +35 -30
  11. package/build/commonjs/Tabs/Tabs.js.map +1 -1
  12. package/build/commonjs/Tabs/TabsProps.js.map +1 -1
  13. package/build/commonjs/Tabs/index.js.map +1 -1
  14. package/build/commonjs/Tabs/types.js +2 -0
  15. package/build/commonjs/Tabs/types.js.map +1 -0
  16. package/build/commonjs/Tabs/useIndexStore.js +35 -0
  17. package/build/commonjs/Tabs/useIndexStore.js.map +1 -0
  18. package/build/commonjs/Tabs/useScrollViewReaction.js +23 -27
  19. package/build/commonjs/Tabs/useScrollViewReaction.js.map +1 -1
  20. package/build/commonjs/Tabs/useTabCoordinates.js +9 -23
  21. package/build/commonjs/Tabs/useTabCoordinates.js.map +1 -1
  22. package/build/commonjs/Tabs/utils.js +19 -0
  23. package/build/commonjs/Tabs/utils.js.map +1 -0
  24. package/build/commonjs/hooks/index.js +16 -0
  25. package/build/commonjs/hooks/index.js.map +1 -1
  26. package/build/commonjs/hooks/useCollapsibleAppBar.js +1 -1
  27. package/build/commonjs/hooks/useCollapsibleAppBar.js.map +1 -1
  28. package/build/commonjs/hooks/useImperativeState.js +26 -0
  29. package/build/commonjs/hooks/useImperativeState.js.map +1 -0
  30. package/build/commonjs/hooks/useSyncAnimatedValue.js +37 -0
  31. package/build/commonjs/hooks/useSyncAnimatedValue.js.map +1 -0
  32. package/build/commonjs/index.js +14 -0
  33. package/build/commonjs/index.js.map +1 -1
  34. package/build/commonjs/store/MockStore.js +23 -0
  35. package/build/commonjs/store/MockStore.js.map +1 -0
  36. package/build/commonjs/store/SimpleStore.js +54 -0
  37. package/build/commonjs/store/SimpleStore.js.map +1 -0
  38. package/build/commonjs/store/index.js +24 -0
  39. package/build/commonjs/store/index.js.map +1 -0
  40. package/build/commonjs/store/types.js +2 -0
  41. package/build/commonjs/store/types.js.map +1 -0
  42. package/build/commonjs/types/index.js.map +1 -1
  43. package/build/module/Tabs/IndexAwareTab.js +12 -8
  44. package/build/module/Tabs/IndexAwareTab.js.map +1 -1
  45. package/build/module/Tabs/InternalContext.js +7 -0
  46. package/build/module/Tabs/InternalContext.js.map +1 -0
  47. package/build/module/Tabs/ScrollableTabsView.js +21 -0
  48. package/build/module/Tabs/ScrollableTabsView.js.map +1 -0
  49. package/build/module/Tabs/TabIndicator.js +44 -17
  50. package/build/module/Tabs/TabIndicator.js.map +1 -1
  51. package/build/module/Tabs/TabIndicatorProps.js.map +1 -1
  52. package/build/module/Tabs/Tabs.js +33 -31
  53. package/build/module/Tabs/Tabs.js.map +1 -1
  54. package/build/module/Tabs/TabsProps.js.map +1 -1
  55. package/build/module/Tabs/index.js.map +1 -1
  56. package/build/module/Tabs/types.js +2 -0
  57. package/build/module/Tabs/types.js.map +1 -0
  58. package/build/module/Tabs/useIndexStore.js +25 -0
  59. package/build/module/Tabs/useIndexStore.js.map +1 -0
  60. package/build/module/Tabs/useScrollViewReaction.js +23 -28
  61. package/build/module/Tabs/useScrollViewReaction.js.map +1 -1
  62. package/build/module/Tabs/useTabCoordinates.js +9 -18
  63. package/build/module/Tabs/useTabCoordinates.js.map +1 -1
  64. package/build/module/Tabs/utils.js +9 -0
  65. package/build/module/Tabs/utils.js.map +1 -0
  66. package/build/module/hooks/index.js +2 -0
  67. package/build/module/hooks/index.js.map +1 -1
  68. package/build/module/hooks/useCollapsibleAppBar.js +1 -1
  69. package/build/module/hooks/useCollapsibleAppBar.js.map +1 -1
  70. package/build/module/hooks/useImperativeState.js +17 -0
  71. package/build/module/hooks/useImperativeState.js.map +1 -0
  72. package/build/module/hooks/useSyncAnimatedValue.js +27 -0
  73. package/build/module/hooks/useSyncAnimatedValue.js.map +1 -0
  74. package/build/module/index.js +1 -0
  75. package/build/module/index.js.map +1 -1
  76. package/build/module/store/MockStore.js +14 -0
  77. package/build/module/store/MockStore.js.map +1 -0
  78. package/build/module/store/SimpleStore.js +45 -0
  79. package/build/module/store/SimpleStore.js.map +1 -0
  80. package/build/module/store/index.js +3 -0
  81. package/build/module/store/index.js.map +1 -0
  82. package/build/module/store/types.js +2 -0
  83. package/build/module/store/types.js.map +1 -0
  84. package/build/module/types/index.js.map +1 -1
  85. package/build/typescript/Tabs/IndexAwareTab.d.ts +0 -2
  86. package/build/typescript/Tabs/InternalContext.d.ts +7 -0
  87. package/build/typescript/Tabs/ScrollableTabsView.d.ts +6 -0
  88. package/build/typescript/Tabs/TabIndicatorProps.d.ts +4 -5
  89. package/build/typescript/Tabs/Tabs.d.ts +1 -1
  90. package/build/typescript/Tabs/TabsProps.d.ts +3 -16
  91. package/build/typescript/Tabs/index.d.ts +2 -1
  92. package/build/typescript/Tabs/types.d.ts +9 -0
  93. package/build/typescript/Tabs/useIndexStore.d.ts +3 -0
  94. package/build/typescript/Tabs/useScrollViewReaction.d.ts +1 -2
  95. package/build/typescript/Tabs/useTabCoordinates.d.ts +3 -4
  96. package/build/typescript/Tabs/utils.d.ts +3 -0
  97. package/build/typescript/hooks/index.d.ts +2 -0
  98. package/build/typescript/hooks/useImperativeState.d.ts +6 -0
  99. package/build/typescript/hooks/useSyncAnimatedValue.d.ts +6 -0
  100. package/build/typescript/index.d.ts +1 -0
  101. package/build/typescript/store/MockStore.d.ts +6 -0
  102. package/build/typescript/store/SimpleStore.d.ts +9 -0
  103. package/build/typescript/store/index.d.ts +3 -0
  104. package/build/typescript/store/types.d.ts +8 -0
  105. package/build/typescript/types/index.d.ts +6 -0
  106. package/package.json +4 -4
  107. package/src/Tabs/IndexAwareTab.tsx +10 -13
  108. package/src/Tabs/InternalContext.ts +13 -0
  109. package/src/Tabs/ScrollableTabsView.tsx +26 -0
  110. package/src/Tabs/TabIndicator.tsx +37 -21
  111. package/src/Tabs/TabIndicatorProps.ts +4 -5
  112. package/src/Tabs/Tabs.tsx +55 -50
  113. package/src/Tabs/TabsProps.ts +4 -28
  114. package/src/Tabs/index.ts +2 -1
  115. package/src/Tabs/types.ts +18 -0
  116. package/src/Tabs/useIndexStore.ts +31 -0
  117. package/src/Tabs/useScrollViewReaction.ts +15 -26
  118. package/src/Tabs/useTabCoordinates.ts +12 -23
  119. package/src/Tabs/utils.ts +14 -0
  120. package/src/hooks/index.ts +2 -0
  121. package/src/hooks/useCollapsibleAppBar.ts +1 -1
  122. package/src/hooks/useImperativeState.ts +24 -0
  123. package/src/hooks/useSyncAnimatedValue.ts +37 -0
  124. package/src/index.ts +2 -0
  125. package/src/store/MockStore.ts +17 -0
  126. package/src/store/SimpleStore.ts +45 -0
  127. package/src/store/index.ts +3 -0
  128. package/src/store/types.ts +9 -0
  129. package/src/types/index.ts +7 -0
@@ -0,0 +1,17 @@
1
+ import { MonoStore, StoreSubscription } from './types';
2
+
3
+ export default class MockStore<T> implements MonoStore<T> {
4
+
5
+ dispatch(data: T): void {
6
+ // do nothing
7
+ }
8
+
9
+ removeAllListeners(): void {
10
+ // do nothing
11
+ }
12
+
13
+ subscribe(listener: (data: T) => void): StoreSubscription {
14
+ return () => void 0;
15
+ }
16
+
17
+ };
@@ -0,0 +1,45 @@
1
+ import { MonoStore, StoreSubscription } from './types';
2
+
3
+ function refEqual(a: any, b: any): boolean {
4
+ return a === b;
5
+ }
6
+
7
+ export default class SimpleStore<T> implements MonoStore<T> {
8
+
9
+ private data: T;
10
+
11
+ private listeners: Array<(data: T) => void> = [];
12
+
13
+ constructor(initialData: T) {
14
+ this.data = initialData;
15
+ }
16
+
17
+ subscribe(listener: (data: T) => void): StoreSubscription {
18
+ this.listeners.push(listener);
19
+
20
+ listener(this.data);
21
+
22
+ return () => {
23
+ const index = this.listeners.indexOf(listener);
24
+ this.listeners.splice(index, 1);
25
+ };
26
+ }
27
+
28
+ dispatch(data: T): void {
29
+ // Do not dispatch if data ref is equal
30
+ if (refEqual(this.data, data)) {
31
+ return;
32
+ }
33
+
34
+ this.data = data;
35
+ for (const id in this.listeners) {
36
+ const listener = this.listeners[id];
37
+ listener?.(data);
38
+ }
39
+ }
40
+
41
+ removeAllListeners(): void {
42
+ this.listeners.splice(0, this.listeners.length);
43
+ }
44
+
45
+ };
@@ -0,0 +1,3 @@
1
+ export { default as SimpleStore } from './SimpleStore';
2
+ export { default as MockStore } from './MockStore';
3
+ export type { MonoStore } from './types';
@@ -0,0 +1,9 @@
1
+ export interface StoreSubscription {
2
+ (): void;
3
+ }
4
+
5
+ export interface MonoStore<T> {
6
+ dispatch: (data: T) => void;
7
+ subscribe: (listener: (data: T) => void) => StoreSubscription;
8
+ removeAllListeners: () => void;
9
+ }
@@ -1,3 +1,4 @@
1
+ import type { Animated } from 'react-native';
1
2
  import type { FountainUiStyle } from '@fountain-ui/styles';
2
3
 
3
4
  export type ExtendedStyle<StyleType extends FountainUiStyle = FountainUiStyle> = StyleType;
@@ -20,3 +21,9 @@ export type CommonComponentColor =
20
21
  | 'tertiary'
21
22
  | 'warning'
22
23
  | 'accent';
24
+
25
+ export interface SyncAnimatedValue {
26
+ animatedValue: Animated.Value;
27
+ initialValue: number;
28
+ getCurrentValue: () => number;
29
+ }