@r0b0t3d/react-native-collapsible 1.3.5-beta.6 → 1.4.0
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/lib/commonjs/components/header/CollapsibleHeaderConsumer.js +23 -1
- package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderContainer.js +6 -4
- package/lib/commonjs/components/header/CollapsibleHeaderContainer.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderContainerProvider.js +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderContainerProvider.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleFlatList.js +5 -1
- package/lib/commonjs/components/scrollable/CollapsibleFlatList.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleScrollView.js +5 -1
- package/lib/commonjs/components/scrollable/CollapsibleScrollView.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleSectionList.js +6 -1
- package/lib/commonjs/components/scrollable/CollapsibleSectionList.js.map +1 -1
- package/lib/commonjs/components/scrollable/useAnimatedScroll.js +5 -3
- package/lib/commonjs/components/scrollable/useAnimatedScroll.js.map +1 -1
- package/lib/commonjs/withCollapsibleContext.js +10 -14
- package/lib/commonjs/withCollapsibleContext.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderConsumer.js +22 -1
- package/lib/module/components/header/CollapsibleHeaderConsumer.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderContainer.js +6 -4
- package/lib/module/components/header/CollapsibleHeaderContainer.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderContainerProvider.js +1 -1
- package/lib/module/components/header/CollapsibleHeaderContainerProvider.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleFlatList.js +5 -1
- package/lib/module/components/scrollable/CollapsibleFlatList.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleScrollView.js +5 -1
- package/lib/module/components/scrollable/CollapsibleScrollView.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleSectionList.js +6 -1
- package/lib/module/components/scrollable/CollapsibleSectionList.js.map +1 -1
- package/lib/module/components/scrollable/useAnimatedScroll.js +5 -3
- package/lib/module/components/scrollable/useAnimatedScroll.js.map +1 -1
- package/lib/module/withCollapsibleContext.js +11 -15
- package/lib/module/withCollapsibleContext.js.map +1 -1
- package/lib/typescript/components/header/CollapsibleHeaderConsumer.d.ts.map +1 -1
- package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts.map +1 -1
- package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts.map +1 -1
- package/lib/typescript/components/scrollable/CollapsibleScrollView.d.ts.map +1 -1
- package/lib/typescript/components/scrollable/CollapsibleSectionList.d.ts.map +1 -1
- package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts +3 -1
- package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +3 -1
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/withCollapsibleContext.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/components/header/CollapsibleHeaderConsumer.tsx +20 -2
- package/src/components/header/CollapsibleHeaderContainer.tsx +9 -4
- package/src/components/header/CollapsibleHeaderContainerProvider.tsx +1 -1
- package/src/components/scrollable/CollapsibleFlatList.tsx +5 -0
- package/src/components/scrollable/CollapsibleScrollView.tsx +5 -0
- package/src/components/scrollable/CollapsibleSectionList.tsx +15 -1
- package/src/components/scrollable/useAnimatedScroll.ts +12 -2
- package/src/types.ts +3 -1
- package/src/withCollapsibleContext.tsx +5 -15
package/src/types.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
import type { LayoutRectangle } from 'react-native';
|
|
2
|
+
import type { LayoutRectangle, SectionListScrollParams } from 'react-native';
|
|
3
3
|
import type Animated from 'react-native-reanimated';
|
|
4
4
|
|
|
5
5
|
export type ScrollToIndexParams = {
|
|
@@ -14,6 +14,7 @@ export type CollapsibleHandles = {
|
|
|
14
14
|
expand: () => void;
|
|
15
15
|
scrollTo: (offset: number, animate?: boolean) => void;
|
|
16
16
|
scrollToIndex: (params: ScrollToIndexParams) => void;
|
|
17
|
+
scrollToLocation: (params: SectionListScrollParams) => void;
|
|
17
18
|
};
|
|
18
19
|
|
|
19
20
|
export type CollapsibleContextType = CollapsibleHandles & {
|
|
@@ -36,6 +37,7 @@ export type CollapsibleContextInternalType = {
|
|
|
36
37
|
Record<string, { top: number; stickyHeight: number }>
|
|
37
38
|
>;
|
|
38
39
|
fixedHeaderHeight: Animated.SharedValue<number>;
|
|
40
|
+
headerHeight: Animated.SharedValue<number>;
|
|
39
41
|
handleContainerHeight: (height: number) => void;
|
|
40
42
|
handleHeaderContainerLayout: (
|
|
41
43
|
key: string,
|
|
@@ -3,11 +3,7 @@ import React, { useCallback, useMemo, useRef, FC } from 'react';
|
|
|
3
3
|
import type { CollapsibleHandles } from './types';
|
|
4
4
|
import { CollapsibleContext } from './hooks/useCollapsibleContext';
|
|
5
5
|
import { InternalCollapsibleContext } from './hooks/useInternalCollapsibleContext';
|
|
6
|
-
import {
|
|
7
|
-
useDerivedValue,
|
|
8
|
-
useSharedValue,
|
|
9
|
-
withTiming,
|
|
10
|
-
} from 'react-native-reanimated';
|
|
6
|
+
import { useDerivedValue, useSharedValue } from 'react-native-reanimated';
|
|
11
7
|
import type { LayoutRectangle, View } from 'react-native';
|
|
12
8
|
|
|
13
9
|
export default function withCollapsibleContext<T>(Component: FC<T>) {
|
|
@@ -47,16 +43,6 @@ export default function withCollapsibleContext<T>(Component: FC<T>) {
|
|
|
47
43
|
const headerContainers = Object.keys(
|
|
48
44
|
headerContainerLayouts.current
|
|
49
45
|
).filter((k: string) => !!headerContainerLayouts.current[k]);
|
|
50
|
-
// Calculate total header height
|
|
51
|
-
const totalHeight = headerContainers.reduce(
|
|
52
|
-
(acc, value) =>
|
|
53
|
-
acc + (headerContainerLayouts.current[value]?.height ?? 0),
|
|
54
|
-
0
|
|
55
|
-
);
|
|
56
|
-
headerHeight.value = withTiming(totalHeight, {
|
|
57
|
-
duration: fixedHeaderHeight.value === 0 ? 0 : 10,
|
|
58
|
-
});
|
|
59
|
-
fixedHeaderHeight.value = totalHeight;
|
|
60
46
|
// Calculate header positions
|
|
61
47
|
const sortedHeaders = headerContainers.sort((a, b) => {
|
|
62
48
|
return (
|
|
@@ -94,6 +80,8 @@ export default function withCollapsibleContext<T>(Component: FC<T>) {
|
|
|
94
80
|
collapsibleHandlers.current?.scrollTo(offset, animate),
|
|
95
81
|
scrollToIndex: (params: any) =>
|
|
96
82
|
collapsibleHandlers.current?.scrollToIndex(params),
|
|
83
|
+
scrollToLocation: (params: any) =>
|
|
84
|
+
collapsibleHandlers.current?.scrollToLocation(params),
|
|
97
85
|
headerHeight,
|
|
98
86
|
scrollY,
|
|
99
87
|
headerCollapsed,
|
|
@@ -106,6 +94,7 @@ export default function withCollapsibleContext<T>(Component: FC<T>) {
|
|
|
106
94
|
handleHeaderContainerLayout,
|
|
107
95
|
setCollapsibleHandlers,
|
|
108
96
|
handleContainerHeight,
|
|
97
|
+
headerHeight,
|
|
109
98
|
fixedHeaderHeight,
|
|
110
99
|
contentMinHeight,
|
|
111
100
|
headerViewPositions,
|
|
@@ -114,6 +103,7 @@ export default function withCollapsibleContext<T>(Component: FC<T>) {
|
|
|
114
103
|
setCollapsibleHandlers,
|
|
115
104
|
handleHeaderContainerLayout,
|
|
116
105
|
handleContainerHeight,
|
|
106
|
+
headerHeight,
|
|
117
107
|
fixedHeaderHeight,
|
|
118
108
|
contentMinHeight,
|
|
119
109
|
headerViewPositions,
|