@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.
Files changed (52) hide show
  1. package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js +23 -1
  2. package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js.map +1 -1
  3. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js +6 -4
  4. package/lib/commonjs/components/header/CollapsibleHeaderContainer.js.map +1 -1
  5. package/lib/commonjs/components/header/CollapsibleHeaderContainerProvider.js +1 -1
  6. package/lib/commonjs/components/header/CollapsibleHeaderContainerProvider.js.map +1 -1
  7. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js +5 -1
  8. package/lib/commonjs/components/scrollable/CollapsibleFlatList.js.map +1 -1
  9. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js +5 -1
  10. package/lib/commonjs/components/scrollable/CollapsibleScrollView.js.map +1 -1
  11. package/lib/commonjs/components/scrollable/CollapsibleSectionList.js +6 -1
  12. package/lib/commonjs/components/scrollable/CollapsibleSectionList.js.map +1 -1
  13. package/lib/commonjs/components/scrollable/useAnimatedScroll.js +5 -3
  14. package/lib/commonjs/components/scrollable/useAnimatedScroll.js.map +1 -1
  15. package/lib/commonjs/withCollapsibleContext.js +10 -14
  16. package/lib/commonjs/withCollapsibleContext.js.map +1 -1
  17. package/lib/module/components/header/CollapsibleHeaderConsumer.js +22 -1
  18. package/lib/module/components/header/CollapsibleHeaderConsumer.js.map +1 -1
  19. package/lib/module/components/header/CollapsibleHeaderContainer.js +6 -4
  20. package/lib/module/components/header/CollapsibleHeaderContainer.js.map +1 -1
  21. package/lib/module/components/header/CollapsibleHeaderContainerProvider.js +1 -1
  22. package/lib/module/components/header/CollapsibleHeaderContainerProvider.js.map +1 -1
  23. package/lib/module/components/scrollable/CollapsibleFlatList.js +5 -1
  24. package/lib/module/components/scrollable/CollapsibleFlatList.js.map +1 -1
  25. package/lib/module/components/scrollable/CollapsibleScrollView.js +5 -1
  26. package/lib/module/components/scrollable/CollapsibleScrollView.js.map +1 -1
  27. package/lib/module/components/scrollable/CollapsibleSectionList.js +6 -1
  28. package/lib/module/components/scrollable/CollapsibleSectionList.js.map +1 -1
  29. package/lib/module/components/scrollable/useAnimatedScroll.js +5 -3
  30. package/lib/module/components/scrollable/useAnimatedScroll.js.map +1 -1
  31. package/lib/module/withCollapsibleContext.js +11 -15
  32. package/lib/module/withCollapsibleContext.js.map +1 -1
  33. package/lib/typescript/components/header/CollapsibleHeaderConsumer.d.ts.map +1 -1
  34. package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts.map +1 -1
  35. package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts.map +1 -1
  36. package/lib/typescript/components/scrollable/CollapsibleScrollView.d.ts.map +1 -1
  37. package/lib/typescript/components/scrollable/CollapsibleSectionList.d.ts.map +1 -1
  38. package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts +3 -1
  39. package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts.map +1 -1
  40. package/lib/typescript/types.d.ts +3 -1
  41. package/lib/typescript/types.d.ts.map +1 -1
  42. package/lib/typescript/withCollapsibleContext.d.ts.map +1 -1
  43. package/package.json +1 -1
  44. package/src/components/header/CollapsibleHeaderConsumer.tsx +20 -2
  45. package/src/components/header/CollapsibleHeaderContainer.tsx +9 -4
  46. package/src/components/header/CollapsibleHeaderContainerProvider.tsx +1 -1
  47. package/src/components/scrollable/CollapsibleFlatList.tsx +5 -0
  48. package/src/components/scrollable/CollapsibleScrollView.tsx +5 -0
  49. package/src/components/scrollable/CollapsibleSectionList.tsx +15 -1
  50. package/src/components/scrollable/useAnimatedScroll.ts +12 -2
  51. package/src/types.ts +3 -1
  52. 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,