@r0b0t3d/react-native-collapsible 1.3.5-beta.0 → 1.3.5-beta.2
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/LICENSE +1 -2
- package/lib/commonjs/components/CollapsibleContainer.js +11 -25
- package/lib/commonjs/components/CollapsibleContainer.js.map +1 -1
- package/lib/commonjs/components/CollapsibleView.js +39 -44
- package/lib/commonjs/components/CollapsibleView.js.map +1 -1
- package/lib/commonjs/components/header/AnimatedTopView.js +4 -9
- package/lib/commonjs/components/header/AnimatedTopView.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js +12 -20
- package/lib/commonjs/components/header/CollapsibleHeaderConsumer.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderContainer.js +6 -12
- package/lib/commonjs/components/header/CollapsibleHeaderContainer.js.map +1 -1
- package/lib/commonjs/components/header/CollapsibleHeaderProvider.js +7 -11
- package/lib/commonjs/components/header/CollapsibleHeaderProvider.js.map +1 -1
- package/lib/commonjs/components/header/StickyView.js +11 -20
- package/lib/commonjs/components/header/StickyView.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleFlatList.js +12 -26
- package/lib/commonjs/components/scrollable/CollapsibleFlatList.js.map +1 -1
- package/lib/commonjs/components/scrollable/CollapsibleScrollView.js +13 -24
- package/lib/commonjs/components/scrollable/CollapsibleScrollView.js.map +1 -1
- package/lib/commonjs/components/scrollable/useAnimatedScroll.js +9 -18
- package/lib/commonjs/components/scrollable/useAnimatedScroll.js.map +1 -1
- package/lib/commonjs/hooks/useCollapsibleContext.js +1 -6
- package/lib/commonjs/hooks/useCollapsibleContext.js.map +1 -1
- package/lib/commonjs/hooks/useCollapsibleHeaderContext.js +1 -6
- package/lib/commonjs/hooks/useCollapsibleHeaderContext.js.map +1 -1
- package/lib/commonjs/hooks/useInternalCollapsibleContext.js +1 -6
- package/lib/commonjs/hooks/useInternalCollapsibleContext.js.map +1 -1
- package/lib/commonjs/hooks/useKeyboardShowEvent.js +0 -4
- package/lib/commonjs/hooks/useKeyboardShowEvent.js.map +1 -1
- package/lib/commonjs/index.js +12 -33
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/utils/debounce.js +8 -7
- package/lib/commonjs/utils/debounce.js.map +1 -1
- package/lib/commonjs/withCollapsibleContext.js +31 -44
- package/lib/commonjs/withCollapsibleContext.js.map +1 -1
- package/lib/module/components/CollapsibleContainer.js +11 -14
- package/lib/module/components/CollapsibleContainer.js.map +1 -1
- package/lib/module/components/CollapsibleView.js +38 -35
- package/lib/module/components/CollapsibleView.js.map +1 -1
- package/lib/module/components/header/AnimatedTopView.js +4 -3
- package/lib/module/components/header/AnimatedTopView.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderConsumer.js +12 -9
- package/lib/module/components/header/CollapsibleHeaderConsumer.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderContainer.js +5 -4
- package/lib/module/components/header/CollapsibleHeaderContainer.js.map +1 -1
- package/lib/module/components/header/CollapsibleHeaderProvider.js +6 -6
- package/lib/module/components/header/CollapsibleHeaderProvider.js.map +1 -1
- package/lib/module/components/header/StickyView.js +11 -10
- package/lib/module/components/header/StickyView.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleFlatList.js +12 -13
- package/lib/module/components/scrollable/CollapsibleFlatList.js.map +1 -1
- package/lib/module/components/scrollable/CollapsibleScrollView.js +13 -12
- package/lib/module/components/scrollable/CollapsibleScrollView.js.map +1 -1
- package/lib/module/components/scrollable/useAnimatedScroll.js +8 -10
- package/lib/module/components/scrollable/useAnimatedScroll.js.map +1 -1
- package/lib/module/hooks/useCollapsibleContext.js +0 -2
- package/lib/module/hooks/useCollapsibleContext.js.map +1 -1
- package/lib/module/hooks/useCollapsibleHeaderContext.js +0 -2
- package/lib/module/hooks/useCollapsibleHeaderContext.js.map +1 -1
- package/lib/module/hooks/useInternalCollapsibleContext.js +0 -2
- package/lib/module/hooks/useInternalCollapsibleContext.js.map +1 -1
- package/lib/module/hooks/useKeyboardShowEvent.js.map +1 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/utils/debounce.js +8 -6
- package/lib/module/utils/debounce.js.map +1 -1
- package/lib/module/withCollapsibleContext.js +30 -34
- package/lib/module/withCollapsibleContext.js.map +1 -1
- package/lib/typescript/components/CollapsibleContainer.d.ts +4 -2
- package/lib/typescript/components/CollapsibleContainer.d.ts.map +1 -0
- package/lib/typescript/components/CollapsibleView.d.ts +6 -5
- package/lib/typescript/components/CollapsibleView.d.ts.map +1 -0
- package/lib/typescript/components/header/AnimatedTopView.d.ts +4 -2
- package/lib/typescript/components/header/AnimatedTopView.d.ts.map +1 -0
- package/lib/typescript/components/header/CollapsibleHeaderConsumer.d.ts +3 -1
- package/lib/typescript/components/header/CollapsibleHeaderConsumer.d.ts.map +1 -0
- package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts +2 -1
- package/lib/typescript/components/header/CollapsibleHeaderContainer.d.ts.map +1 -0
- package/lib/typescript/components/header/CollapsibleHeaderProvider.d.ts +3 -2
- package/lib/typescript/components/header/CollapsibleHeaderProvider.d.ts.map +1 -0
- package/lib/typescript/components/header/StickyView.d.ts +4 -2
- package/lib/typescript/components/header/StickyView.d.ts.map +1 -0
- package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts +4 -2
- package/lib/typescript/components/scrollable/CollapsibleFlatList.d.ts.map +1 -0
- package/lib/typescript/components/scrollable/CollapsibleScrollView.d.ts +4 -3
- package/lib/typescript/components/scrollable/CollapsibleScrollView.d.ts.map +1 -0
- package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts +2 -1
- package/lib/typescript/components/scrollable/useAnimatedScroll.d.ts.map +1 -0
- package/lib/typescript/hooks/useCollapsibleContext.d.ts +1 -0
- package/lib/typescript/hooks/useCollapsibleContext.d.ts.map +1 -0
- package/lib/typescript/hooks/useCollapsibleHeaderContext.d.ts +3 -2
- package/lib/typescript/hooks/useCollapsibleHeaderContext.d.ts.map +1 -0
- package/lib/typescript/hooks/useInternalCollapsibleContext.d.ts +1 -0
- package/lib/typescript/hooks/useInternalCollapsibleContext.d.ts.map +1 -0
- package/lib/typescript/hooks/useKeyboardShowEvent.d.ts +1 -0
- package/lib/typescript/hooks/useKeyboardShowEvent.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +8 -7
- package/lib/typescript/types.d.ts.map +1 -0
- package/lib/typescript/utils/debounce.d.ts +1 -0
- package/lib/typescript/utils/debounce.d.ts.map +1 -0
- package/lib/typescript/withCollapsibleContext.d.ts +3 -2
- package/lib/typescript/withCollapsibleContext.d.ts.map +1 -0
- package/package.json +39 -34
- package/src/components/CollapsibleView.tsx +13 -6
- package/src/components/header/CollapsibleHeaderConsumer.tsx +2 -1
- package/src/components/header/StickyView.tsx +3 -4
- package/src/index.tsx +0 -1
- package/src/withCollapsibleContext.tsx +30 -26
- package/lib/commonjs/components/pullToRefresh/PullToRefreshContainer.js +0 -75
- package/lib/commonjs/components/pullToRefresh/PullToRefreshContainer.js.map +0 -1
- package/lib/commonjs/components/pullToRefresh/PullToRefreshProvider.js +0 -35
- package/lib/commonjs/components/pullToRefresh/PullToRefreshProvider.js.map +0 -1
- package/lib/commonjs/components/pullToRefresh/RefreshControl.js +0 -91
- package/lib/commonjs/components/pullToRefresh/RefreshControl.js.map +0 -1
- package/lib/commonjs/components/pullToRefresh/usePullToRefreshContext.js +0 -24
- package/lib/commonjs/components/pullToRefresh/usePullToRefreshContext.js.map +0 -1
- package/lib/commonjs/components/pullToRefresh/utils.js +0 -59
- package/lib/commonjs/components/pullToRefresh/utils.js.map +0 -1
- package/lib/module/components/pullToRefresh/PullToRefreshContainer.js +0 -56
- package/lib/module/components/pullToRefresh/PullToRefreshContainer.js.map +0 -1
- package/lib/module/components/pullToRefresh/PullToRefreshProvider.js +0 -21
- package/lib/module/components/pullToRefresh/PullToRefreshProvider.js.map +0 -1
- package/lib/module/components/pullToRefresh/RefreshControl.js +0 -73
- package/lib/module/components/pullToRefresh/RefreshControl.js.map +0 -1
- package/lib/module/components/pullToRefresh/usePullToRefreshContext.js +0 -13
- package/lib/module/components/pullToRefresh/usePullToRefreshContext.js.map +0 -1
- package/lib/module/components/pullToRefresh/utils.js +0 -42
- package/lib/module/components/pullToRefresh/utils.js.map +0 -1
- package/lib/typescript/components/pullToRefresh/PullToRefreshContainer.d.ts +0 -8
- package/lib/typescript/components/pullToRefresh/PullToRefreshProvider.d.ts +0 -6
- package/lib/typescript/components/pullToRefresh/RefreshControl.d.ts +0 -9
- package/lib/typescript/components/pullToRefresh/usePullToRefreshContext.d.ts +0 -4
- package/lib/typescript/components/pullToRefresh/utils.d.ts +0 -20
- package/src/components/pullToRefresh/PullToRefreshContainer.tsx +0 -66
- package/src/components/pullToRefresh/PullToRefreshProvider.tsx +0 -27
- package/src/components/pullToRefresh/RefreshControl.tsx +0 -100
- package/src/components/pullToRefresh/usePullToRefreshContext.ts +0 -13
- package/src/components/pullToRefresh/utils.ts +0 -49
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["CollapsibleView.tsx"],"names":["React","useCallback","useEffect","useMemo","StyleSheet","Text","TouchableOpacity","View","Animated","useAnimatedStyle","useSharedValue","withSpring","interpolateColor","interpolate","useAnimatedReaction","runOnJS","key","CollapsibleView","initialState","collapseState","renderHeader","children","containerStyle","collapsedBackgroundColor","expandedBackgroundColor","onToggle","actualHeight","contentKey","newValue","value","handleToggle","overshootClamping","handleLayout","event","nativeEvent","layout","height","wrapperStyle","damping","stiffness","contentHeight","undefined","result","prev","containerAnimatedStyle","backgroundColor","headerProps","collapsed","styles","wrapper","content","CollapsibleHeaderText","title","style","titleStyle","icon","iconInitialAngle","iconStyle","rotate","transform","headerContainer","headerTitle","create","overflow","flexDirection","alignItems","flex"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react-hooks/rules-of-hooks */\nimport React, { ReactNode, useCallback, useEffect, useMemo } from 'react';\nimport {\n LayoutChangeEvent,\n StyleProp,\n StyleSheet,\n Text,\n TextStyle,\n TouchableOpacity,\n View,\n ViewStyle,\n} from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n withSpring,\n interpolateColor,\n interpolate,\n useAnimatedReaction,\n runOnJS,\n} from 'react-native-reanimated';\n\nexport type CollapsibleHeaderProps = {\n onToggle: () => void;\n collapsed: Animated.SharedValue<number>;\n};\n\ntype Props = {\n initialState?: 'collapsed' | 'expanded';\n collapseState?: Animated.SharedValue<number>;\n renderHeader: (props: CollapsibleHeaderProps) => ReactNode;\n children: ReactNode;\n containerStyle?: StyleProp<ViewStyle>;\n collapsedBackgroundColor?: string;\n expandedBackgroundColor?: string;\n useDynamicLayout?: boolean;\n onToggle?: (isExpand: boolean) => void;\n};\n\nlet key = 0;\nexport default function CollapsibleView({\n initialState = 'collapsed',\n collapseState = useSharedValue(0),\n renderHeader,\n children,\n containerStyle,\n collapsedBackgroundColor,\n expandedBackgroundColor,\n onToggle,\n}: Props) {\n const actualHeight = useSharedValue(11110);\n const contentKey = useMemo(() => `collapsible-view-${key++}`, []);\n\n useEffect(() => {\n const newValue = initialState === 'collapsed' ? 0 : 1;\n if (newValue === collapseState.value) {\n return;\n }\n collapseState.value = newValue;\n }, [initialState]);\n\n const handleToggle = useCallback(() => {\n collapseState.value = withSpring(collapseState.value === 0 ? 1 : 0, {\n overshootClamping: true,\n });\n }, []);\n\n const handleLayout = useCallback((event: LayoutChangeEvent) => {\n if (event.nativeEvent.layout.height >= 0) {\n actualHeight.value = event.nativeEvent.layout.height;\n }\n }, []);\n\n const wrapperStyle = useAnimatedStyle(\n () => ({\n height: withSpring(collapseState.value === 1 ? actualHeight.value : 0, {\n damping: 5,\n stiffness: 130,\n overshootClamping: true,\n }),\n }),\n [actualHeight, contentKey]\n );\n\n const contentHeight = useAnimatedStyle(\n () => ({\n height: actualHeight.value > 0 ? actualHeight.value : undefined,\n }),\n [actualHeight, contentKey]\n );\n\n useAnimatedReaction(\n () => (collapseState.value === 0 ? 0 : collapseState.value === 1 ? 1 : 0),\n (result, prev) => {\n if (result === prev) {\n return;\n }\n if (onToggle) {\n runOnJS(onToggle)(result === 1);\n }\n }\n );\n\n // @ts-ignore\n const containerAnimatedStyle = useAnimatedStyle(() => {\n if (collapsedBackgroundColor && expandedBackgroundColor) {\n return {\n backgroundColor: interpolateColor(\n collapseState.value,\n [0, 1],\n [collapsedBackgroundColor, expandedBackgroundColor]\n ),\n };\n }\n return {};\n }, []);\n\n const headerProps = useMemo(\n () => ({ onToggle: handleToggle, collapsed: collapseState }),\n [handleToggle, collapseState]\n );\n\n return (\n <Animated.View\n style={[containerStyle, containerAnimatedStyle]}\n pointerEvents=\"box-none\"\n >\n <View pointerEvents=\"box-none\">{renderHeader(headerProps)}</View>\n <Animated.View\n style={[styles.wrapper, wrapperStyle]}\n pointerEvents=\"box-none\"\n >\n <Animated.View\n style={[styles.content, contentHeight]}\n pointerEvents=\"box-none\"\n >\n <View\n key={contentKey}\n onLayout={handleLayout}\n pointerEvents=\"box-none\"\n >\n {children}\n </View>\n </Animated.View>\n </Animated.View>\n </Animated.View>\n );\n}\n\nexport function CollapsibleHeaderText({\n title,\n collapsed,\n onToggle,\n style,\n titleStyle,\n icon,\n iconInitialAngle = 0,\n children,\n}: {\n title: string | Element;\n style?: StyleProp<ViewStyle>;\n titleStyle?: StyleProp<TextStyle>;\n icon?: ReactNode;\n iconInitialAngle?: number;\n children?: ReactNode;\n} & CollapsibleHeaderProps) {\n const iconStyle = useAnimatedStyle(() => {\n const rotate = interpolate(\n collapsed.value,\n [0, 1],\n [iconInitialAngle, 180]\n );\n return {\n transform: [\n {\n rotate: `${rotate}deg`,\n },\n ],\n };\n }, [iconInitialAngle]);\n\n return (\n <TouchableOpacity activeOpacity={0.9} onPress={onToggle} style={style}>\n <View style={styles.headerContainer}>\n <Text style={[styles.headerTitle, titleStyle]}>{title}</Text>\n {icon && <Animated.View style={iconStyle}>{icon}</Animated.View>}\n </View>\n {children}\n </TouchableOpacity>\n );\n}\n\nconst styles = StyleSheet.create({\n wrapper: {\n overflow: 'hidden',\n },\n content: {},\n headerContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n headerTitle: {\n flex: 1,\n },\n});\n"]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","Pressable","StyleSheet","Text","View","Animated","useAnimatedStyle","useSharedValue","withSpring","interpolateColor","interpolate","useAnimatedReaction","runOnJS","key","CollapsibleView","_ref","initialState","collapseState","renderHeader","children","containerStyle","collapsedBackgroundColor","expandedBackgroundColor","onToggle","actualHeight","contentKey","newValue","value","handleToggle","overshootClamping","handleLayout","event","nativeEvent","layout","height","wrapperStyle","damping","stiffness","contentHeight","undefined","result","prev","containerAnimatedStyle","backgroundColor","headerProps","collapsed","createElement","style","pointerEvents","styles","wrapper","content","onLayout","CollapsibleHeaderText","_ref2","title","titleStyle","icon","iconInitialAngle","iconStyle","rotate","transform","headerContainer","onPress","headerTitle","create","overflow","flexDirection","alignItems","justifyContent","flex"],"sourceRoot":"../../../src","sources":["components/CollapsibleView.tsx"],"mappings":"AAAA;AACA;AACA,OAAOA,KAAK,IAAeC,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AACzE,SAEEC,SAAS,EAETC,UAAU,EACVC,IAAI,EAEJC,IAAI,QAEC,cAAc;AACrB,OAAOC,QAAQ,IACbC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,gBAAgB,EAChBC,WAAW,EACXC,mBAAmB,EACnBC,OAAO,QACF,yBAAyB;AAmBhC,IAAIC,GAAG,GAAG,CAAC;AACX,eAAe,SAASC,eAAeA,CAAAC,IAAA,EAS7B;EAAA,IAT8B;IACtCC,YAAY,GAAG,WAAW;IAC1BC,aAAa,GAAGV,cAAc,CAAC,CAAC,CAAC;IACjCW,YAAY;IACZC,QAAQ;IACRC,cAAc;IACdC,wBAAwB;IACxBC,uBAAuB;IACvBC;EACK,CAAC,GAAAR,IAAA;EACN,MAAMS,YAAY,GAAGjB,cAAc,CAAC,KAAK,CAAC;EAC1C,MAAMkB,UAAU,GAAGzB,OAAO,CAAC,MAAO,oBAAmBa,GAAG,EAAG,EAAC,EAAE,EAAE,CAAC;EAEjEd,SAAS,CAAC,MAAM;IACd,MAAM2B,QAAQ,GAAGV,YAAY,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC;IACrD,IAAIU,QAAQ,KAAKT,aAAa,CAACU,KAAK,EAAE;MACpC;IACF;IACAV,aAAa,CAACU,KAAK,GAAGD,QAAQ;EAChC,CAAC,EAAE,CAACV,YAAY,CAAC,CAAC;EAElB,MAAMY,YAAY,GAAG9B,WAAW,CAAC,MAAM;IACrCmB,aAAa,CAACU,KAAK,GAAGnB,UAAU,CAACS,aAAa,CAACU,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;MAClEE,iBAAiB,EAAE;IACrB,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAY,GAAGhC,WAAW,CAAEiC,KAAwB,IAAK;IAC7D,IAAIA,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,MAAM,IAAI,CAAC,EAAE;MACxCV,YAAY,CAACG,KAAK,GAAGI,KAAK,CAACC,WAAW,CAACC,MAAM,CAACC,MAAM;IACtD;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,YAAY,GAAG7B,gBAAgB,CACnC,OAAO;IACL4B,MAAM,EAAE1B,UAAU,CAACS,aAAa,CAACU,KAAK,KAAK,CAAC,GAAGH,YAAY,CAACG,KAAK,GAAG,CAAC,EAAE;MACrES,OAAO,EAAE,CAAC;MACVC,SAAS,EAAE,GAAG;MACdR,iBAAiB,EAAE;IACrB,CAAC;EACH,CAAC,CAAC,EACF,CAACL,YAAY,EAAEC,UAAU,CAC3B,CAAC;EAED,MAAMa,aAAa,GAAGhC,gBAAgB,CACpC,OAAO;IACL4B,MAAM,EAAEV,YAAY,CAACG,KAAK,GAAG,CAAC,GAAGH,YAAY,CAACG,KAAK,GAAGY;EACxD,CAAC,CAAC,EACF,CAACf,YAAY,EAAEC,UAAU,CAC3B,CAAC;EAEDd,mBAAmB,CACjB,MAAOM,aAAa,CAACU,KAAK,KAAK,CAAC,GAAG,CAAC,GAAGV,aAAa,CAACU,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAE,EACzE,CAACa,MAAM,EAAEC,IAAI,KAAK;IAChB,IAAID,MAAM,KAAKC,IAAI,EAAE;MACnB;IACF;IACA,IAAIlB,QAAQ,EAAE;MACZX,OAAO,CAACW,QAAQ,CAAC,CAACiB,MAAM,KAAK,CAAC,CAAC;IACjC;EACF,CACF,CAAC;;EAED;EACA,MAAME,sBAAsB,GAAGpC,gBAAgB,CAAC,MAAM;IACpD,IAAIe,wBAAwB,IAAIC,uBAAuB,EAAE;MACvD,OAAO;QACLqB,eAAe,EAAElC,gBAAgB,CAC/BQ,aAAa,CAACU,KAAK,EACnB,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAACN,wBAAwB,EAAEC,uBAAuB,CACpD;MACF,CAAC;IACH;IACA,OAAO,CAAC,CAAC;EACX,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMsB,WAAW,GAAG5C,OAAO,CACzB,OAAO;IAAEuB,QAAQ,EAAEK,YAAY;IAAEiB,SAAS,EAAE5B;EAAc,CAAC,CAAC,EAC5D,CAACW,YAAY,EAAEX,aAAa,CAC9B,CAAC;EAED,oBACEpB,KAAA,CAAAiD,aAAA,CAACzC,QAAQ,CAACD,IAAI;IACZ2C,KAAK,EAAE,CAAC3B,cAAc,EAAEsB,sBAAsB,CAAE;IAChDM,aAAa,EAAC;EAAU,gBAExBnD,KAAA,CAAAiD,aAAA,CAAC1C,IAAI;IAAC4C,aAAa,EAAC;EAAU,GAAE9B,YAAY,CAAC0B,WAAW,CAAQ,CAAC,eACjE/C,KAAA,CAAAiD,aAAA,CAACzC,QAAQ,CAACD,IAAI;IACZ2C,KAAK,EAAE,CAACE,MAAM,CAACC,OAAO,EAAEf,YAAY,CAAE;IACtCa,aAAa,EAAC;EAAU,gBAExBnD,KAAA,CAAAiD,aAAA,CAACzC,QAAQ,CAACD,IAAI;IACZ2C,KAAK,EAAE,CAACE,MAAM,CAACE,OAAO,EAAEb,aAAa,CAAE;IACvCU,aAAa,EAAC;EAAU,gBAExBnD,KAAA,CAAAiD,aAAA,CAAC1C,IAAI;IACHS,GAAG,EAAEY,UAAW;IAChB2B,QAAQ,EAAEtB,YAAa;IACvBkB,aAAa,EAAC;EAAU,GAEvB7B,QACG,CACO,CACF,CACF,CAAC;AAEpB;AAEA,OAAO,SAASkC,qBAAqBA,CAAAC,KAAA,EAgBT;EAAA,IAhBU;IACpCC,KAAK;IACLV,SAAS;IACTtB,QAAQ;IACRwB,KAAK;IACLS,UAAU;IACVC,IAAI;IACJC,gBAAgB,GAAG,CAAC;IACpBvC;EAQuB,CAAC,GAAAmC,KAAA;EACxB,MAAMK,SAAS,GAAGrD,gBAAgB,CAAC,MAAM;IACvC,MAAMsD,MAAM,GAAGlD,WAAW,CACxBmC,SAAS,CAAClB,KAAK,EACf,CAAC,CAAC,EAAE,CAAC,CAAC,EACN,CAAC+B,gBAAgB,EAAE,GAAG,CACxB,CAAC;IACD,OAAO;MACLG,SAAS,EAAE,CACT;QACED,MAAM,EAAG,GAAEA,MAAO;MACpB,CAAC;IAEL,CAAC;EACH,CAAC,EAAE,CAACF,gBAAgB,CAAC,CAAC;EAEtB,oBACE7D,KAAA,CAAAiD,aAAA,CAAC1C,IAAI;IAAC2C,KAAK,EAAEA,KAAM;IAACC,aAAa,EAAC;EAAU,gBAC1CnD,KAAA,CAAAiD,aAAA,CAAC1C,IAAI;IAAC2C,KAAK,EAAEE,MAAM,CAACa,eAAgB;IAACd,aAAa,EAAC;EAAU,gBAC3DnD,KAAA,CAAAiD,aAAA,CAAC7C,SAAS;IAAC8D,OAAO,EAAExC;EAAS,gBAC3B1B,KAAA,CAAAiD,aAAA,CAAC3C,IAAI;IAAC4C,KAAK,EAAE,CAACE,MAAM,CAACe,WAAW,EAAER,UAAU;EAAE,GAAED,KAAY,CACnD,CAAC,EACXE,IAAI,iBACH5D,KAAA,CAAAiD,aAAA,CAAC7C,SAAS;IAAC8D,OAAO,EAAExC;EAAS,gBAC3B1B,KAAA,CAAAiD,aAAA,CAACzC,QAAQ,CAACD,IAAI;IAAC2C,KAAK,EAAEY;EAAU,GAAEF,IAAoB,CAC7C,CAET,CAAC,EACNtC,QACG,CAAC;AAEX;AAEA,MAAM8B,MAAM,GAAG/C,UAAU,CAAC+D,MAAM,CAAC;EAC/Bf,OAAO,EAAE;IACPgB,QAAQ,EAAE;EACZ,CAAC;EACDf,OAAO,EAAE,CAAC,CAAC;EACXW,eAAe,EAAE;IACfK,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDL,WAAW,EAAE;IACXM,IAAI,EAAE;EACR;AACF,CAAC,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import Animated, { useAnimatedStyle } from 'react-native-reanimated';
|
|
3
|
-
export default function AnimatedTopView({
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export default function AnimatedTopView(_ref) {
|
|
4
|
+
let {
|
|
5
|
+
height
|
|
6
|
+
} = _ref;
|
|
6
7
|
const contentStyle = useAnimatedStyle(() => ({
|
|
7
8
|
paddingTop: height.value
|
|
8
9
|
}), []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","Animated","useAnimatedStyle","AnimatedTopView","_ref","height","contentStyle","paddingTop","value","createElement","View","style"],"sourceRoot":"../../../../src","sources":["components/header/AnimatedTopView.tsx"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,QAAQ,IAAIC,gBAAgB,QAAQ,yBAAyB;AAMpE,eAAe,SAASC,eAAeA,CAAAC,IAAA,EAAoB;EAAA,IAAnB;IAAEC;EAAc,CAAC,GAAAD,IAAA;EACvD,MAAME,YAAY,GAAGJ,gBAAgB,CACnC,OAAO;IACLK,UAAU,EAAEF,MAAM,CAACG;EACrB,CAAC,CAAC,EACF,EACF,CAAC;EAED,oBAAOR,KAAA,CAAAS,aAAA,CAACR,QAAQ,CAACS,IAAI;IAACC,KAAK,EAAEL;EAAa,CAAE,CAAC;AAC/C"}
|
|
@@ -15,8 +15,9 @@ export default function CollapsibleHeaderConsumer() {
|
|
|
15
15
|
scrollY,
|
|
16
16
|
headerHeight
|
|
17
17
|
} = useCollapsibleContext();
|
|
18
|
-
const headerTranslate = useDerivedValue(() => interpolate(scrollY.value,
|
|
19
|
-
|
|
18
|
+
const headerTranslate = useDerivedValue(() => interpolate(scrollY.value,
|
|
19
|
+
// FIXME: can improve by geting maxY value of header and sticky views
|
|
20
|
+
[-1000, 0, 100000], [0, 0, -100000], 'clamp'), []);
|
|
20
21
|
const headerStyle = useAnimatedStyle(() => {
|
|
21
22
|
return {
|
|
22
23
|
transform: [{
|
|
@@ -24,13 +25,14 @@ export default function CollapsibleHeaderConsumer() {
|
|
|
24
25
|
}]
|
|
25
26
|
};
|
|
26
27
|
}, [headerHeight, headerTranslate]);
|
|
27
|
-
const handleHeaderLayout = useCallback(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
const handleHeaderLayout = useCallback(_ref => {
|
|
29
|
+
let {
|
|
30
|
+
nativeEvent: {
|
|
31
|
+
layout: {
|
|
32
|
+
height
|
|
33
|
+
}
|
|
31
34
|
}
|
|
32
|
-
}
|
|
33
|
-
}) => {
|
|
35
|
+
} = _ref;
|
|
34
36
|
handleHeaderContainerLayout(height);
|
|
35
37
|
}, [handleHeaderContainerLayout]);
|
|
36
38
|
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
@@ -41,7 +43,8 @@ export default function CollapsibleHeaderConsumer() {
|
|
|
41
43
|
}
|
|
42
44
|
const styles = StyleSheet.create({
|
|
43
45
|
container: {
|
|
44
|
-
zIndex: 10
|
|
46
|
+
zIndex: 10,
|
|
47
|
+
backgroundColor: 'white'
|
|
45
48
|
}
|
|
46
49
|
});
|
|
47
50
|
//# sourceMappingURL=CollapsibleHeaderConsumer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","useCallback","useInternalCollapsibleContext","useCollapsibleHeaderContext","Animated","interpolate","useAnimatedStyle","useDerivedValue","useCollapsibleContext","StyleSheet","CollapsibleHeaderConsumer","headers","handleHeaderContainerLayout","scrollY","headerHeight","headerTranslate","value","headerStyle","transform","translateY","handleHeaderLayout","_ref","nativeEvent","layout","height","createElement","View","onLayout","style","styles","container","pointerEvents","map","item","children","create","zIndex","backgroundColor"],"sourceRoot":"../../../../src","sources":["components/header/CollapsibleHeaderConsumer.tsx"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAC1C,OAAOC,6BAA6B,MAAM,2CAA2C;AACrF,OAAOC,2BAA2B,MAAM,yCAAyC;AACjF,OAAOC,QAAQ,IACbC,WAAW,EACXC,gBAAgB,EAChBC,eAAe,QACV,yBAAyB;AAChC,OAAOC,qBAAqB,MAAM,mCAAmC;AACrE,SAA4BC,UAAU,QAAQ,cAAc;AAE5D,eAAe,SAASC,yBAAyBA,CAAA,EAAG;EAClD,MAAM;IAAEC;EAAQ,CAAC,GAAGR,2BAA2B,CAAC,CAAC;EACjD,MAAM;IAAES;EAA4B,CAAC,GAAGV,6BAA6B,CAAC,CAAC;EACvE,MAAM;IAAEW,OAAO;IAAEC;EAAa,CAAC,GAAGN,qBAAqB,CAAC,CAAC;EAEzD,MAAMO,eAAe,GAAGR,eAAe,CACrC,MACEF,WAAW,CACTQ,OAAO,CAACG,KAAK;EACb;EACA,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,EAClB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,EACf,OACF,CAAC,EACH,EACF,CAAC;EAED,MAAMC,WAAW,GAAGX,gBAAgB,CAAC,MAAM;IACzC,OAAO;MACLY,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEJ,eAAe,CAACC;MAAM,CAAC;IACnD,CAAC;EACH,CAAC,EAAE,CAACF,YAAY,EAAEC,eAAe,CAAC,CAAC;EAEnC,MAAMK,kBAAkB,GAAGnB,WAAW,CACpCoB,IAAA,IAIyB;IAAA,IAJxB;MACCC,WAAW,EAAE;QACXC,MAAM,EAAE;UAAEC;QAAO;MACnB;IACiB,CAAC,GAAAH,IAAA;IAClBT,2BAA2B,CAACY,MAAM,CAAC;EACrC,CAAC,EACD,CAACZ,2BAA2B,CAC9B,CAAC;EAED,oBACEZ,KAAA,CAAAyB,aAAA,CAACrB,QAAQ,CAACsB,IAAI;IACZC,QAAQ,EAAEP,kBAAmB;IAC7BQ,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAEb,WAAW,CAAE;IACvCc,aAAa,EAAC;EAAU,GAEvBpB,OAAO,CAACqB,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,QAAQ,CACvB,CAAC;AAEpB;AAEA,MAAML,MAAM,GAAGpB,UAAU,CAAC0B,MAAM,CAAC;EAC/BL,SAAS,EAAE;IACTM,MAAM,EAAE,EAAE;IACVC,eAAe,EAAE;EACnB;AACF,CAAC,CAAC"}
|
|
@@ -3,10 +3,11 @@ import React, { useEffect, useMemo } from 'react';
|
|
|
3
3
|
import { View } from 'react-native';
|
|
4
4
|
import useCollapsibleHeaderContext from '../../hooks/useCollapsibleHeaderContext';
|
|
5
5
|
let key = 0;
|
|
6
|
-
export default function CollapsibleHeaderContainer({
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
export default function CollapsibleHeaderContainer(_ref) {
|
|
7
|
+
let {
|
|
8
|
+
children,
|
|
9
|
+
containerStyle
|
|
10
|
+
} = _ref;
|
|
10
11
|
const contentKey = useMemo(() => `collapsible-header-${key++}`, []);
|
|
11
12
|
const {
|
|
12
13
|
mount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","useEffect","useMemo","View","useCollapsibleHeaderContext","key","CollapsibleHeaderContainer","_ref","children","containerStyle","contentKey","mount","unmount","update","internalStyle","zIndex","content","createElement","style","pointerEvents"],"sourceRoot":"../../../../src","sources":["components/header/CollapsibleHeaderContainer.tsx"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAeC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAC5D,SAASC,IAAI,QAA8B,cAAc;AACzD,OAAOC,2BAA2B,MAAM,yCAAyC;AAOjF,IAAIC,GAAG,GAAG,CAAC;AAEX,eAAe,SAASC,0BAA0BA,CAAAC,IAAA,EAGxC;EAAA,IAHyC;IACjDC,QAAQ;IACRC;EACK,CAAC,GAAAF,IAAA;EACN,MAAMG,UAAU,GAAGR,OAAO,CAAC,MAAO,sBAAqBG,GAAG,EAAG,EAAC,EAAE,EAAE,CAAC;EACnE,MAAM;IAAEM,KAAK;IAAEC,OAAO;IAAEC;EAAO,CAAC,GAAGT,2BAA2B,CAAC,CAAC;EAEhE,MAAMU,aAAa,GAAGZ,OAAO,CAAC,MAAM;IAClC,OAAO;MACLa,MAAM,EAAE,MAAM,GAAGV;IACnB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMW,OAAO,GAAGd,OAAO,CAAC,MAAM;IAC5B,oBACEF,KAAA,CAAAiB,aAAA,CAACd,IAAI;MACHE,GAAG,EAAEK,UAAW;MAChBQ,KAAK,EAAE,CAACT,cAAc,EAAEK,aAAa,CAAE;MACvCK,aAAa,EAAC;IAAU,GAEvBX,QACG,CAAC;EAEX,CAAC,EAAE,CAACA,QAAQ,EAAEC,cAAc,CAAC,CAAC;EAE9BR,SAAS,CAAC,MAAM;IACdU,KAAK,CAACD,UAAU,EAAEM,OAAO,CAAC;IAE1B,OAAO,MAAM;MACXJ,OAAO,CAACF,UAAU,CAAC;IACrB,CAAC;EACH,CAAC,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhBT,SAAS,CAAC,MAAM;IACdY,MAAM,CAACH,UAAU,EAAEM,OAAO,CAAC;EAC7B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEb,OAAO,IAAI;AACb"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/* eslint-disable no-shadow */
|
|
2
2
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
3
3
|
import { CollapsibleHeaderContext } from '../../hooks/useCollapsibleHeaderContext';
|
|
4
|
-
export default function CollapsibleHeaderProvider({
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
export default function CollapsibleHeaderProvider(_ref) {
|
|
5
|
+
let {
|
|
6
|
+
children
|
|
7
|
+
} = _ref;
|
|
7
8
|
const [headers, setHeaders] = useState([]);
|
|
8
9
|
const mounted = useRef(false);
|
|
9
10
|
useEffect(() => {
|
|
@@ -25,14 +26,13 @@ export default function CollapsibleHeaderProvider({
|
|
|
25
26
|
if (!mounted.current) {
|
|
26
27
|
return;
|
|
27
28
|
}
|
|
28
|
-
|
|
29
29
|
setHeaders(prev => prev.map(item => {
|
|
30
30
|
if (item.key === key) {
|
|
31
|
-
return {
|
|
31
|
+
return {
|
|
32
|
+
...item,
|
|
32
33
|
children
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
|
-
|
|
36
36
|
return item;
|
|
37
37
|
}));
|
|
38
38
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","CollapsibleHeaderContext","CollapsibleHeaderProvider","_ref","children","headers","setHeaders","mounted","current","mount","key","prev","unmount","filter","h","update","map","item","context","createElement","Provider","value"],"sourceRoot":"../../../../src","sources":["components/header/CollapsibleHeaderProvider.tsx"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAEVC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SACEC,wBAAwB,QAEnB,yCAAyC;AAEhD,eAAe,SAASC,yBAAyBA,CAAAC,IAAA,EAI9C;EAAA,IAJ+C;IAChDC;EAGF,CAAC,GAAAD,IAAA;EACC,MAAM,CAACE,OAAO,EAAEC,UAAU,CAAC,GAAGN,QAAQ,CAAe,EAAE,CAAC;EACxD,MAAMO,OAAO,GAAGR,MAAM,CAAC,KAAK,CAAC;EAE7BF,SAAS,CAAC,MAAM;IACdU,OAAO,CAACC,OAAO,GAAG,IAAI;IACtB,OAAO,MAAM;MACXD,OAAO,CAACC,OAAO,GAAG,KAAK;IACzB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,KAAK,GAAGb,WAAW,CAAC,CAACc,GAAW,EAAEN,QAAmB,KAAK;IAC9DE,UAAU,CAAEK,IAAI,IAAK,CAAC,GAAGA,IAAI,EAAE;MAAED,GAAG;MAAEN;IAAS,CAAC,CAAC,CAAC;EACpD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMQ,OAAO,GAAGhB,WAAW,CAAEc,GAAW,IAAK;IAC3CJ,UAAU,CAAEK,IAAI,IAAKA,IAAI,CAACE,MAAM,CAAEC,CAAC,IAAKA,CAAC,CAACJ,GAAG,KAAKA,GAAG,CAAC,CAAC;EACzD,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,MAAM,GAAGnB,WAAW,CAAC,CAACc,GAAW,EAAEN,QAAmB,KAAK;IAC/D,IAAI,CAACG,OAAO,CAACC,OAAO,EAAE;MACpB;IACF;IACAF,UAAU,CAAEK,IAAI,IACdA,IAAI,CAACK,GAAG,CAAEC,IAAI,IAAK;MACjB,IAAIA,IAAI,CAACP,GAAG,KAAKA,GAAG,EAAE;QACpB,OAAO;UACL,GAAGO,IAAI;UACPb;QACF,CAAC;MACH;MACA,OAAOa,IAAI;IACb,CAAC,CACH,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,OAAO,GAAGpB,OAAO,CACrB,OAAO;IACLO,OAAO;IACPI,KAAK;IACLG,OAAO;IACPG;EACF,CAAC,CAAC,EACF,CAACV,OAAO,EAAEI,KAAK,EAAEG,OAAO,EAAEG,MAAM,CAClC,CAAC;EAED,oBACEpB,KAAA,CAAAwB,aAAA,CAAClB,wBAAwB,CAACmB,QAAQ;IAACC,KAAK,EAAEH;EAAQ,GAC/Cd,QACgC,CAAC;AAExC"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
2
2
|
import React, { useCallback, useEffect, useMemo, useRef } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
4
|
import useCollapsibleContext from '../../hooks/useCollapsibleContext';
|
|
5
5
|
import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleContext';
|
|
6
6
|
import Animated, { Extrapolate, interpolate, useAnimatedStyle, useDerivedValue } from 'react-native-reanimated';
|
|
7
7
|
let stickyKey = 0;
|
|
8
|
-
export default function StickyView({
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
export default function StickyView(_ref) {
|
|
9
|
+
let {
|
|
10
|
+
children,
|
|
11
|
+
style
|
|
12
|
+
} = _ref;
|
|
12
13
|
const key = useMemo(() => `sticky_${stickyKey++}`, []);
|
|
13
14
|
const viewRef = useRef(null);
|
|
14
15
|
const {
|
|
@@ -21,7 +22,7 @@ export default function StickyView({
|
|
|
21
22
|
} = useCollapsibleContext();
|
|
22
23
|
useEffect(() => {
|
|
23
24
|
return () => handleStickyViewLayout(key, undefined);
|
|
24
|
-
}, []);
|
|
25
|
+
}, [key]);
|
|
25
26
|
const handleLayout = useCallback(() => {
|
|
26
27
|
handleStickyViewLayout(key, viewRef);
|
|
27
28
|
}, [key]);
|
|
@@ -32,7 +33,7 @@ export default function StickyView({
|
|
|
32
33
|
};
|
|
33
34
|
const inputMid = layoutValues.top - top;
|
|
34
35
|
return interpolate(scrollY.value, [0, inputMid, inputMid + 100000], [0, 0, 100000], Extrapolate.CLAMP);
|
|
35
|
-
}, []);
|
|
36
|
+
}, [key]);
|
|
36
37
|
const animatedStyle = useAnimatedStyle(() => {
|
|
37
38
|
return {
|
|
38
39
|
transform: [{
|
|
@@ -41,7 +42,8 @@ export default function StickyView({
|
|
|
41
42
|
};
|
|
42
43
|
}, []);
|
|
43
44
|
return /*#__PURE__*/React.createElement(Animated.View, {
|
|
44
|
-
key: key
|
|
45
|
+
key: key
|
|
46
|
+
// @ts-ignore
|
|
45
47
|
,
|
|
46
48
|
ref: viewRef,
|
|
47
49
|
onLayout: handleLayout,
|
|
@@ -52,8 +54,7 @@ export default function StickyView({
|
|
|
52
54
|
const styles = StyleSheet.create({
|
|
53
55
|
container: {
|
|
54
56
|
backgroundColor: 'white',
|
|
55
|
-
zIndex: 10
|
|
56
|
-
marginTop: Platform.OS === 'android' ? -1 : 0
|
|
57
|
+
zIndex: 10
|
|
57
58
|
}
|
|
58
59
|
});
|
|
59
60
|
//# sourceMappingURL=StickyView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","StyleSheet","useCollapsibleContext","useInternalCollapsibleContext","Animated","Extrapolate","interpolate","useAnimatedStyle","useDerivedValue","stickyKey","StickyView","_ref","children","style","key","viewRef","handleStickyViewLayout","stickyViewTops","stickyViewPositions","scrollY","undefined","handleLayout","translateY","top","value","layoutValues","inputMid","CLAMP","animatedStyle","transform","createElement","View","ref","onLayout","styles","container","pointerEvents","create","backgroundColor","zIndex"],"sourceRoot":"../../../../src","sources":["components/header/StickyView.tsx"],"mappings":"AAAA;AACA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AACtE,SAAoBC,UAAU,QAAyB,cAAc;AACrE,OAAOC,qBAAqB,MAAM,mCAAmC;AACrE,OAAOC,6BAA6B,MAAM,2CAA2C;AACrF,OAAOC,QAAQ,IACbC,WAAW,EACXC,WAAW,EACXC,gBAAgB,EAChBC,eAAe,QACV,yBAAyB;AAOhC,IAAIC,SAAS,GAAG,CAAC;AAEjB,eAAe,SAASC,UAAUA,CAAAC,IAAA,EAA6B;EAAA,IAA5B;IAAEC,QAAQ;IAAEC;EAAa,CAAC,GAAAF,IAAA;EAC3D,MAAMG,GAAG,GAAGf,OAAO,CAAC,MAAO,UAASU,SAAS,EAAG,EAAC,EAAE,EAAE,CAAC;EACtD,MAAMM,OAAO,GAAGf,MAAM,CAAO,IAAI,CAAC;EAClC,MAAM;IAAEgB,sBAAsB;IAAEC,cAAc;IAAEC;EAAoB,CAAC,GACnEf,6BAA6B,CAAC,CAAC;EACjC,MAAM;IAAEgB;EAAQ,CAAC,GAAGjB,qBAAqB,CAAC,CAAC;EAE3CJ,SAAS,CAAC,MAAM;IACd,OAAO,MAAMkB,sBAAsB,CAACF,GAAG,EAAEM,SAAS,CAAC;EACrD,CAAC,EAAE,CAACN,GAAG,CAAC,CAAC;EAET,MAAMO,YAAY,GAAGxB,WAAW,CAAC,MAAM;IACrCmB,sBAAsB,CAACF,GAAG,EAAEC,OAAO,CAAC;EACtC,CAAC,EAAE,CAACD,GAAG,CAAC,CAAC;EAET,MAAMQ,UAAU,GAAGd,eAAe,CAAC,MAAM;IACvC,MAAMe,GAAG,GAAGN,cAAc,CAACO,KAAK,CAACV,GAAG,CAAC,IAAI,CAAC;IAC1C,MAAMW,YAAY,GAAGP,mBAAmB,CAACM,KAAK,CAACV,GAAG,CAAC,IAAI;MAAES,GAAG,EAAE;IAAE,CAAC;IACjE,MAAMG,QAAQ,GAAGD,YAAY,CAACF,GAAG,GAAGA,GAAG;IACvC,OAAOjB,WAAW,CAChBa,OAAO,CAACK,KAAK,EACb,CAAC,CAAC,EAAEE,QAAQ,EAAEA,QAAQ,GAAG,MAAM,CAAC,EAChC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,CAAC,EACdrB,WAAW,CAACsB,KACd,CAAC;EACH,CAAC,EAAE,CAACb,GAAG,CAAC,CAAC;EAET,MAAMc,aAAa,GAAGrB,gBAAgB,CAAC,MAAM;IAC3C,OAAO;MACLsB,SAAS,EAAE,CACT;QACEP,UAAU,EAAEA,UAAU,CAACE;MACzB,CAAC;IAEL,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,oBACE5B,KAAA,CAAAkC,aAAA,CAAC1B,QAAQ,CAAC2B,IAAI;IACZjB,GAAG,EAAEA;IACL;IAAA;IACAkB,GAAG,EAAEjB,OAAQ;IACbkB,QAAQ,EAAEZ,YAAa;IACvBR,KAAK,EAAE,CAACqB,MAAM,CAACC,SAAS,EAAEP,aAAa,EAAEf,KAAK,CAAE;IAChDuB,aAAa,EAAC;EAAU,GAEvBxB,QACY,CAAC;AAEpB;AAEA,MAAMsB,MAAM,GAAGjC,UAAU,CAACoC,MAAM,CAAC;EAC/BF,SAAS,EAAE;IACTG,eAAe,EAAE,OAAO;IACxBC,MAAM,EAAE;EACV;AACF,CAAC,CAAC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
2
|
-
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
2
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
4
3
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
5
4
|
import { View, StyleSheet, FlatList } from 'react-native';
|
|
@@ -9,10 +8,11 @@ import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleCon
|
|
|
9
8
|
import AnimatedTopView from '../header/AnimatedTopView';
|
|
10
9
|
import useCollapsibleContext from '../../hooks/useCollapsibleContext';
|
|
11
10
|
const AnimatedFlatList = Animated.createAnimatedComponent(FlatList);
|
|
12
|
-
export default function CollapsibleFlatList({
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
export default function CollapsibleFlatList(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
headerSnappable = true,
|
|
14
|
+
...props
|
|
15
|
+
} = _ref;
|
|
16
16
|
const {
|
|
17
17
|
headerHeight
|
|
18
18
|
} = useCollapsibleContext();
|
|
@@ -30,9 +30,9 @@ export default function CollapsibleFlatList({
|
|
|
30
30
|
mounted.current = false;
|
|
31
31
|
};
|
|
32
32
|
}, []);
|
|
33
|
-
const scrollTo = useCallback((yValue
|
|
33
|
+
const scrollTo = useCallback(function (yValue) {
|
|
34
34
|
var _scrollViewRef$curren;
|
|
35
|
-
|
|
35
|
+
let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
36
36
|
(_scrollViewRef$curren = scrollViewRef.current) === null || _scrollViewRef$curren === void 0 ? void 0 : _scrollViewRef$curren.scrollToOffset({
|
|
37
37
|
offset: yValue,
|
|
38
38
|
animated
|
|
@@ -40,7 +40,6 @@ export default function CollapsibleFlatList({
|
|
|
40
40
|
}, []);
|
|
41
41
|
const scrollToIndex = useCallback(params => {
|
|
42
42
|
var _scrollViewRef$curren2;
|
|
43
|
-
|
|
44
43
|
(_scrollViewRef$curren2 = scrollViewRef.current) === null || _scrollViewRef$curren2 === void 0 ? void 0 : _scrollViewRef$curren2.scrollToIndex(params);
|
|
45
44
|
}, []);
|
|
46
45
|
const {
|
|
@@ -83,13 +82,11 @@ export default function CollapsibleFlatList({
|
|
|
83
82
|
contentHeight.current = height;
|
|
84
83
|
}, []);
|
|
85
84
|
const handleScrollToIndexFailed = useCallback(() => {}, []);
|
|
86
|
-
|
|
87
85
|
function renderListHeader() {
|
|
88
86
|
return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(AnimatedTopView, {
|
|
89
87
|
height: headerHeight
|
|
90
88
|
}), props.ListHeaderComponent);
|
|
91
89
|
}
|
|
92
|
-
|
|
93
90
|
return /*#__PURE__*/React.createElement(AnimatedFlatList, _extends({
|
|
94
91
|
ref: scrollViewRef,
|
|
95
92
|
keyboardDismissMode: "on-drag",
|
|
@@ -101,14 +98,16 @@ export default function CollapsibleFlatList({
|
|
|
101
98
|
contentContainerStyle: contentContainerStyle,
|
|
102
99
|
onScroll: scrollHandler,
|
|
103
100
|
ListHeaderComponent: renderListHeader(),
|
|
104
|
-
onContentSizeChange: handleContentSizeChange
|
|
101
|
+
onContentSizeChange: handleContentSizeChange
|
|
102
|
+
//@ts-ignore
|
|
105
103
|
,
|
|
106
104
|
simultaneousHandlers: [],
|
|
107
105
|
progressViewOffset: internalProgressViewOffset
|
|
108
106
|
}));
|
|
109
107
|
}
|
|
110
108
|
const styles = StyleSheet.create({
|
|
111
|
-
container: {
|
|
109
|
+
container: {
|
|
110
|
+
...StyleSheet.absoluteFillObject
|
|
112
111
|
},
|
|
113
112
|
contentContainer: {
|
|
114
113
|
flexGrow: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","View","StyleSheet","FlatList","Animated","runOnJS","useAnimatedReaction","useAnimatedScroll","useInternalCollapsibleContext","AnimatedTopView","useCollapsibleContext","AnimatedFlatList","createAnimatedComponent","CollapsibleFlatList","_ref","headerSnappable","props","headerHeight","contentMinHeight","scrollViewRef","fixedHeaderHeight","mounted","contentHeight","internalContentMinHeight","setInternalContentMinHeight","value","internalProgressViewOffset","setInternalProgressViewOffset","current","scrollTo","yValue","_scrollViewRef$curren","animated","arguments","length","undefined","scrollToOffset","offset","scrollToIndex","params","_scrollViewRef$curren2","scrollHandler","handleInternalContentHeight","handleInternalProgressViewOffset","result","previous","contentContainerStyle","styles","contentContainer","minHeight","handleContentSizeChange","_","height","handleScrollToIndexFailed","renderListHeader","createElement","ListHeaderComponent","_extends","ref","keyboardDismissMode","keyboardShouldPersistTaps","scrollEventThrottle","onScrollToIndexFailed","style","container","onScroll","onContentSizeChange","simultaneousHandlers","progressViewOffset","create","absoluteFillObject","flexGrow","topView","position","top","left","right"],"sourceRoot":"../../../../src","sources":["components/scrollable/CollapsibleFlatList.tsx"],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
function _extends() { _extends = Object.assign
|
|
2
|
-
|
|
1
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
3
2
|
/* eslint-disable react-hooks/exhaustive-deps */
|
|
4
3
|
import AnimatedTopView from '../header/AnimatedTopView';
|
|
5
4
|
import useAnimatedScroll from './useAnimatedScroll';
|
|
@@ -8,13 +7,14 @@ import { RefreshControl, StyleSheet } from 'react-native';
|
|
|
8
7
|
import Animated, { runOnJS, useAnimatedReaction, useAnimatedStyle } from 'react-native-reanimated';
|
|
9
8
|
import useCollapsibleContext from '../../hooks/useCollapsibleContext';
|
|
10
9
|
import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleContext';
|
|
11
|
-
export default function CollapsibleScrollView({
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
export default function CollapsibleScrollView(_ref) {
|
|
11
|
+
let {
|
|
12
|
+
headerSnappable = true,
|
|
13
|
+
children,
|
|
14
|
+
refreshing = false,
|
|
15
|
+
onRefresh,
|
|
16
|
+
...props
|
|
17
|
+
} = _ref;
|
|
18
18
|
const {
|
|
19
19
|
contentMinHeight,
|
|
20
20
|
scrollViewRef,
|
|
@@ -30,9 +30,9 @@ export default function CollapsibleScrollView({
|
|
|
30
30
|
mounted.current = false;
|
|
31
31
|
};
|
|
32
32
|
}, []);
|
|
33
|
-
const scrollTo = useCallback((yValue
|
|
33
|
+
const scrollTo = useCallback(function (yValue) {
|
|
34
34
|
var _scrollViewRef$curren;
|
|
35
|
-
|
|
35
|
+
let animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
36
36
|
(_scrollViewRef$curren = scrollViewRef.current) === null || _scrollViewRef$curren === void 0 ? void 0 : _scrollViewRef$curren.scrollTo({
|
|
37
37
|
y: yValue,
|
|
38
38
|
animated
|
|
@@ -87,7 +87,8 @@ export default function CollapsibleScrollView({
|
|
|
87
87
|
}), children));
|
|
88
88
|
}
|
|
89
89
|
const styles = StyleSheet.create({
|
|
90
|
-
container: {
|
|
90
|
+
container: {
|
|
91
|
+
...StyleSheet.absoluteFillObject
|
|
91
92
|
},
|
|
92
93
|
contentContainer: {
|
|
93
94
|
flexGrow: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"names":["AnimatedTopView","useAnimatedScroll","React","useCallback","useEffect","useMemo","useRef","useState","RefreshControl","StyleSheet","Animated","runOnJS","useAnimatedReaction","useAnimatedStyle","useCollapsibleContext","useInternalCollapsibleContext","CollapsibleScrollView","_ref","headerSnappable","children","refreshing","onRefresh","props","contentMinHeight","scrollViewRef","fixedHeaderHeight","headerHeight","internalProgressViewOffset","setInternalProgressViewOffset","mounted","current","scrollTo","yValue","_scrollViewRef$curren","animated","arguments","length","undefined","y","scrollToIndex","console","warn","scrollHandler","animatedStyle","minHeight","value","handleInternalProgressViewOffset","result","previous","contentContainerStyle","styles","contentContainer","createElement","ScrollView","_extends","ref","refreshControl","progressViewOffset","style","container","onScroll","keyboardDismissMode","keyboardShouldPersistTaps","scrollEventThrottle","View","height","create","absoluteFillObject","flexGrow"],"sourceRoot":"../../../../src","sources":["components/scrollable/CollapsibleScrollView.tsx"],"mappings":";AAAA;AACA,OAAOA,eAAe,MAAM,2BAA2B;AACvD,OAAOC,iBAAiB,MAAM,qBAAqB;AACnD,OAAOC,KAAK,IAEVC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AACd,SAASC,cAAc,EAAmBC,UAAU,QAAQ,cAAc;AAC1E,OAAOC,QAAQ,IACbC,OAAO,EACPC,mBAAmB,EACnBC,gBAAgB,QACX,yBAAyB;AAEhC,OAAOC,qBAAqB,MAAM,mCAAmC;AACrE,OAAOC,6BAA6B,MAAM,2CAA2C;AASrF,eAAe,SAASC,qBAAqBA,CAAAC,IAAA,EAMnC;EAAA,IANoC;IAC5CC,eAAe,GAAG,IAAI;IACtBC,QAAQ;IACRC,UAAU,GAAG,KAAK;IAClBC,SAAS;IACT,GAAGC;EACE,CAAC,GAAAL,IAAA;EACN,MAAM;IAAEM,gBAAgB;IAAEC,aAAa;IAAEC;EAAkB,CAAC,GAC1DV,6BAA6B,CAAC,CAAC;EACjC,MAAM;IAAEW;EAAa,CAAC,GAAGZ,qBAAqB,CAAC,CAAC;EAChD,MAAM,CAACa,0BAA0B,EAAEC,6BAA6B,CAAC,GAC/DrB,QAAQ,CAAC,CAAC,CAAC;EACb,MAAMsB,OAAO,GAAGvB,MAAM,CAAC,IAAI,CAAC;EAE5BF,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXyB,OAAO,CAACC,OAAO,GAAG,KAAK;IACzB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,QAAQ,GAAG5B,WAAW,CAAC,UAAC6B,MAAc,EAAsB;IAAA,IAAAC,qBAAA;IAAA,IAApBC,QAAQ,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAC3D,CAAAF,qBAAA,GAAAT,aAAa,CAACM,OAAO,cAAAG,qBAAA,uBAArBA,qBAAA,CAAuBF,QAAQ,CAAC;MAAEO,CAAC,EAAEN,MAAM;MAAEE;IAAS,CAAC,CAAC;EAC1D,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMK,aAAa,GAAGpC,WAAW,CAAC,MAAM;IACtCqC,OAAO,CAACC,IAAI,CAAC,qDAAqD,CAAC;EACrE,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM;IAAEC;EAAc,CAAC,GAAGzC,iBAAiB,CAAC;IAC1CiB,eAAe;IACfa,QAAQ;IACRQ;EACF,CAAC,CAAC;EAEF,MAAMI,aAAa,GAAG9B,gBAAgB,CAAC,MAAM;IAC3C,OAAO;MACL+B,SAAS,EAAErB,gBAAgB,CAACsB;IAC9B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,gCAAgC,GAAG3C,WAAW,CAAE0C,KAAa,IAAK;IACtE,IAAIhB,OAAO,CAACC,OAAO,EAAE;MACnBF,6BAA6B,CAACiB,KAAK,CAAC;IACtC;EACF,CAAC,EAAE,EAAE,CAAC;EAENjC,mBAAmB,CACjB,MAAM;IACJ,OAAOa,iBAAiB,CAACoB,KAAK;EAChC,CAAC,EACD,CAACE,MAAM,EAAEC,QAAQ,KAAK;IACpB,IAAID,MAAM,KAAKC,QAAQ,EAAE;MACvBrC,OAAO,CAACmC,gCAAgC,CAAC,CAACC,MAAM,CAAC;IACnD;EACF,CACF,CAAC;EAED,MAAME,qBAAqB,GAAG5C,OAAO,CACnC,MAAM,CAAC6C,MAAM,CAACC,gBAAgB,EAAE7B,KAAK,CAAC2B,qBAAqB,CAAC,EAC5D,CAAC3B,KAAK,CAAC2B,qBAAqB,CAC9B,CAAC;EAED,oBACE/C,KAAA,CAAAkD,aAAA,CAAC1C,QAAQ,CAAC2C,UAAU,EAAAC,QAAA;IAClBC,GAAG,EAAE/B,aAAc;IACnBgC,cAAc,EACZnC,SAAS,gBACPnB,KAAA,CAAAkD,aAAA,CAAC5C,cAAc;MACbiD,kBAAkB,EAAE9B,0BAA2B;MAC/CP,UAAU,EAAEA,UAAW;MACvBC,SAAS,EAAEA;IAAU,CACtB,CAAC,GACAgB;EACL,GACGf,KAAK;IACToC,KAAK,EAAE,CAACR,MAAM,CAACS,SAAS,EAAErC,KAAK,CAACoC,KAAK,CAAE;IACvCT,qBAAqB,EAAEA,qBAAsB;IAC7CW,QAAQ,EAAElB,aAAc;IACxBmB,mBAAmB,EAAC,SAAS;IAC7BC,yBAAyB,EAAC,SAAS;IACnCC,mBAAmB,EAAE;EAAE,iBAEvB7D,KAAA,CAAAkD,aAAA,CAAC1C,QAAQ,CAACsD,IAAI;IAACN,KAAK,EAAEf;EAAc,gBAClCzC,KAAA,CAAAkD,aAAA,CAACpD,eAAe;IAACiE,MAAM,EAAEvC;EAAa,CAAE,CAAC,EACxCP,QACY,CACI,CAAC;AAE1B;AAEA,MAAM+B,MAAM,GAAGzC,UAAU,CAACyD,MAAM,CAAC;EAC/BP,SAAS,EAAE;IACT,GAAGlD,UAAU,CAAC0D;EAChB,CAAC;EACDhB,gBAAgB,EAAE;IAChBiB,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC"}
|
|
@@ -7,11 +7,12 @@ import useInternalCollapsibleContext from '../../hooks/useInternalCollapsibleCon
|
|
|
7
7
|
const {
|
|
8
8
|
height: wHeight
|
|
9
9
|
} = Dimensions.get('window');
|
|
10
|
-
export default function useAnimatedScroll({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
export default function useAnimatedScroll(_ref) {
|
|
11
|
+
let {
|
|
12
|
+
headerSnappable,
|
|
13
|
+
scrollTo,
|
|
14
|
+
scrollToIndex
|
|
15
|
+
} = _ref;
|
|
15
16
|
const scrollDirection = useSharedValue('unknown');
|
|
16
17
|
const {
|
|
17
18
|
scrollY
|
|
@@ -26,7 +27,8 @@ export default function useAnimatedScroll({
|
|
|
26
27
|
requestAnimationFrame(() => scrollTo(scrollY.value, false));
|
|
27
28
|
}
|
|
28
29
|
}, []);
|
|
29
|
-
const collapse = useCallback((
|
|
30
|
+
const collapse = useCallback(function () {
|
|
31
|
+
let animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
30
32
|
scrollTo(Math.min(fixedHeaderHeight.value || 0, firstStickyViewY.value || 0), animated);
|
|
31
33
|
}, [scrollTo]);
|
|
32
34
|
const expand = useCallback(() => scrollTo(0), [scrollTo]);
|
|
@@ -48,17 +50,13 @@ export default function useAnimatedScroll({
|
|
|
48
50
|
onEndDrag: () => {
|
|
49
51
|
if (!headerSnappable) return;
|
|
50
52
|
const maxY = firstStickyViewY.value && firstStickyViewY.value > 0 ? firstStickyViewY.value : fixedHeaderHeight.value || 0;
|
|
51
|
-
|
|
52
53
|
if (scrollY.value < maxY) {
|
|
53
54
|
const delta = Math.abs(scrollY.value - maxY);
|
|
54
|
-
|
|
55
55
|
if (delta < wHeight / 2) {
|
|
56
56
|
let yValue = 0;
|
|
57
|
-
|
|
58
57
|
if (scrollDirection.value === 'up') {
|
|
59
58
|
yValue = maxY;
|
|
60
59
|
}
|
|
61
|
-
|
|
62
60
|
runOnJS(scrollTo)(yValue);
|
|
63
61
|
}
|
|
64
62
|
}
|