@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.
- package/build/commonjs/Tabs/IndexAwareTab.js +13 -7
- package/build/commonjs/Tabs/IndexAwareTab.js.map +1 -1
- package/build/commonjs/Tabs/InternalContext.js +17 -0
- package/build/commonjs/Tabs/InternalContext.js.map +1 -0
- package/build/commonjs/Tabs/ScrollableTabsView.js +34 -0
- package/build/commonjs/Tabs/ScrollableTabsView.js.map +1 -0
- package/build/commonjs/Tabs/TabIndicator.js +46 -19
- package/build/commonjs/Tabs/TabIndicator.js.map +1 -1
- package/build/commonjs/Tabs/TabIndicatorProps.js.map +1 -1
- package/build/commonjs/Tabs/Tabs.js +35 -30
- package/build/commonjs/Tabs/Tabs.js.map +1 -1
- package/build/commonjs/Tabs/TabsProps.js.map +1 -1
- package/build/commonjs/Tabs/index.js.map +1 -1
- package/build/commonjs/Tabs/types.js +2 -0
- package/build/commonjs/Tabs/types.js.map +1 -0
- package/build/commonjs/Tabs/useIndexStore.js +35 -0
- package/build/commonjs/Tabs/useIndexStore.js.map +1 -0
- package/build/commonjs/Tabs/useScrollViewReaction.js +23 -27
- package/build/commonjs/Tabs/useScrollViewReaction.js.map +1 -1
- package/build/commonjs/Tabs/useTabCoordinates.js +9 -23
- package/build/commonjs/Tabs/useTabCoordinates.js.map +1 -1
- package/build/commonjs/Tabs/utils.js +19 -0
- package/build/commonjs/Tabs/utils.js.map +1 -0
- package/build/commonjs/hooks/index.js +16 -0
- package/build/commonjs/hooks/index.js.map +1 -1
- package/build/commonjs/hooks/useCollapsibleAppBar.js +1 -1
- package/build/commonjs/hooks/useCollapsibleAppBar.js.map +1 -1
- package/build/commonjs/hooks/useImperativeState.js +26 -0
- package/build/commonjs/hooks/useImperativeState.js.map +1 -0
- package/build/commonjs/hooks/useSyncAnimatedValue.js +37 -0
- package/build/commonjs/hooks/useSyncAnimatedValue.js.map +1 -0
- package/build/commonjs/index.js +14 -0
- package/build/commonjs/index.js.map +1 -1
- package/build/commonjs/store/MockStore.js +23 -0
- package/build/commonjs/store/MockStore.js.map +1 -0
- package/build/commonjs/store/SimpleStore.js +54 -0
- package/build/commonjs/store/SimpleStore.js.map +1 -0
- package/build/commonjs/store/index.js +24 -0
- package/build/commonjs/store/index.js.map +1 -0
- package/build/commonjs/store/types.js +2 -0
- package/build/commonjs/store/types.js.map +1 -0
- package/build/commonjs/types/index.js.map +1 -1
- package/build/module/Tabs/IndexAwareTab.js +12 -8
- package/build/module/Tabs/IndexAwareTab.js.map +1 -1
- package/build/module/Tabs/InternalContext.js +7 -0
- package/build/module/Tabs/InternalContext.js.map +1 -0
- package/build/module/Tabs/ScrollableTabsView.js +21 -0
- package/build/module/Tabs/ScrollableTabsView.js.map +1 -0
- package/build/module/Tabs/TabIndicator.js +44 -17
- package/build/module/Tabs/TabIndicator.js.map +1 -1
- package/build/module/Tabs/TabIndicatorProps.js.map +1 -1
- package/build/module/Tabs/Tabs.js +33 -31
- package/build/module/Tabs/Tabs.js.map +1 -1
- package/build/module/Tabs/TabsProps.js.map +1 -1
- package/build/module/Tabs/index.js.map +1 -1
- package/build/module/Tabs/types.js +2 -0
- package/build/module/Tabs/types.js.map +1 -0
- package/build/module/Tabs/useIndexStore.js +25 -0
- package/build/module/Tabs/useIndexStore.js.map +1 -0
- package/build/module/Tabs/useScrollViewReaction.js +23 -28
- package/build/module/Tabs/useScrollViewReaction.js.map +1 -1
- package/build/module/Tabs/useTabCoordinates.js +9 -18
- package/build/module/Tabs/useTabCoordinates.js.map +1 -1
- package/build/module/Tabs/utils.js +9 -0
- package/build/module/Tabs/utils.js.map +1 -0
- package/build/module/hooks/index.js +2 -0
- package/build/module/hooks/index.js.map +1 -1
- package/build/module/hooks/useCollapsibleAppBar.js +1 -1
- package/build/module/hooks/useCollapsibleAppBar.js.map +1 -1
- package/build/module/hooks/useImperativeState.js +17 -0
- package/build/module/hooks/useImperativeState.js.map +1 -0
- package/build/module/hooks/useSyncAnimatedValue.js +27 -0
- package/build/module/hooks/useSyncAnimatedValue.js.map +1 -0
- package/build/module/index.js +1 -0
- package/build/module/index.js.map +1 -1
- package/build/module/store/MockStore.js +14 -0
- package/build/module/store/MockStore.js.map +1 -0
- package/build/module/store/SimpleStore.js +45 -0
- package/build/module/store/SimpleStore.js.map +1 -0
- package/build/module/store/index.js +3 -0
- package/build/module/store/index.js.map +1 -0
- package/build/module/store/types.js +2 -0
- package/build/module/store/types.js.map +1 -0
- package/build/module/types/index.js.map +1 -1
- package/build/typescript/Tabs/IndexAwareTab.d.ts +0 -2
- package/build/typescript/Tabs/InternalContext.d.ts +7 -0
- package/build/typescript/Tabs/ScrollableTabsView.d.ts +6 -0
- package/build/typescript/Tabs/TabIndicatorProps.d.ts +4 -5
- package/build/typescript/Tabs/Tabs.d.ts +1 -1
- package/build/typescript/Tabs/TabsProps.d.ts +3 -16
- package/build/typescript/Tabs/index.d.ts +2 -1
- package/build/typescript/Tabs/types.d.ts +9 -0
- package/build/typescript/Tabs/useIndexStore.d.ts +3 -0
- package/build/typescript/Tabs/useScrollViewReaction.d.ts +1 -2
- package/build/typescript/Tabs/useTabCoordinates.d.ts +3 -4
- package/build/typescript/Tabs/utils.d.ts +3 -0
- package/build/typescript/hooks/index.d.ts +2 -0
- package/build/typescript/hooks/useImperativeState.d.ts +6 -0
- package/build/typescript/hooks/useSyncAnimatedValue.d.ts +6 -0
- package/build/typescript/index.d.ts +1 -0
- package/build/typescript/store/MockStore.d.ts +6 -0
- package/build/typescript/store/SimpleStore.d.ts +9 -0
- package/build/typescript/store/index.d.ts +3 -0
- package/build/typescript/store/types.d.ts +8 -0
- package/build/typescript/types/index.d.ts +6 -0
- package/package.json +4 -4
- package/src/Tabs/IndexAwareTab.tsx +10 -13
- package/src/Tabs/InternalContext.ts +13 -0
- package/src/Tabs/ScrollableTabsView.tsx +26 -0
- package/src/Tabs/TabIndicator.tsx +37 -21
- package/src/Tabs/TabIndicatorProps.ts +4 -5
- package/src/Tabs/Tabs.tsx +55 -50
- package/src/Tabs/TabsProps.ts +4 -28
- package/src/Tabs/index.ts +2 -1
- package/src/Tabs/types.ts +18 -0
- package/src/Tabs/useIndexStore.ts +31 -0
- package/src/Tabs/useScrollViewReaction.ts +15 -26
- package/src/Tabs/useTabCoordinates.ts +12 -23
- package/src/Tabs/utils.ts +14 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useCollapsibleAppBar.ts +1 -1
- package/src/hooks/useImperativeState.ts +24 -0
- package/src/hooks/useSyncAnimatedValue.ts +37 -0
- package/src/index.ts +2 -0
- package/src/store/MockStore.ts +17 -0
- package/src/store/SimpleStore.ts +45 -0
- package/src/store/index.ts +3 -0
- package/src/store/types.ts +9 -0
- 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
|
+
};
|
package/src/types/index.ts
CHANGED
|
@@ -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
|
+
}
|