@xhsreds/reds-rn-next 0.2.2 → 0.2.3-beta202411091721
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/coverage/.tmp/coverage-10.json +1 -1
- package/coverage/.tmp/coverage-11.json +1 -1
- package/coverage/.tmp/coverage-12.json +1 -1
- package/coverage/.tmp/coverage-13.json +1 -1
- package/coverage/.tmp/coverage-14.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-17.json +1 -1
- package/coverage/.tmp/coverage-18.json +1 -1
- package/coverage/.tmp/coverage-19.json +1 -1
- package/coverage/.tmp/coverage-20.json +1 -1
- package/coverage/.tmp/coverage-21.json +1 -1
- package/coverage/.tmp/coverage-22.json +1 -1
- package/coverage/.tmp/coverage-23.json +1 -1
- package/coverage/.tmp/coverage-24.json +1 -1
- package/coverage/.tmp/coverage-25.json +1 -1
- package/coverage/.tmp/coverage-26.json +1 -1
- package/coverage/.tmp/coverage-27.json +1 -1
- package/coverage/.tmp/coverage-28.json +1 -1
- package/coverage/.tmp/coverage-29.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-31.json +1 -1
- package/coverage/.tmp/coverage-32.json +1 -1
- package/coverage/.tmp/coverage-33.json +1 -1
- package/coverage/.tmp/coverage-34.json +1 -1
- package/coverage/.tmp/coverage-36.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-38.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/_chunks/1m42z2Mz.js.map +1 -1
- package/lib/cjs/_chunks/{BZY8fLHP.js → BRcYv_kj.js} +3 -2
- package/lib/cjs/_chunks/BRcYv_kj.js.map +1 -0
- package/lib/cjs/_chunks/{G5T1hGVo.js → BmmacXcR.js} +4 -2
- package/lib/cjs/_chunks/BmmacXcR.js.map +1 -0
- package/lib/cjs/_chunks/{ZbRoGP_k.js → DY75DWu0.js} +4 -2
- package/lib/cjs/_chunks/DY75DWu0.js.map +1 -0
- package/lib/cjs/_chunks/{CnvQUDZP.js → SPLAvS-C.js} +3 -2
- package/lib/cjs/_chunks/SPLAvS-C.js.map +1 -0
- package/lib/cjs/_chunks/{SEcsCrAk.js → aU6iuR1W.js} +2 -2
- package/lib/cjs/_chunks/aU6iuR1W.js.map +1 -0
- package/lib/cjs/_chunks/{CbnkUMH9.js → dM-QhrnE.js} +11 -9
- package/lib/cjs/_chunks/dM-QhrnE.js.map +1 -0
- package/lib/cjs/components/ActionSheets/ActionSheets.js +13 -7
- package/lib/cjs/components/ActionSheets/ActionSheets.js.map +1 -1
- package/lib/cjs/components/ActionSheets/index.js +1 -1
- package/lib/cjs/components/ActionSheets/styles.js +6 -3
- package/lib/cjs/components/ActionSheets/styles.js.map +1 -1
- package/lib/cjs/components/Alert/Alert.js +6 -6
- package/lib/cjs/components/Alert/hooks/alert.js +6 -6
- package/lib/cjs/components/Alert/index.js +6 -6
- package/lib/cjs/components/AvatarGroup/AvatarGroup.js +6 -6
- package/lib/cjs/components/AvatarGroup/index.js +6 -6
- package/lib/cjs/components/CheckBoxGroup/CheckBox.js +5 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBox.js.map +1 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBoxGroup.js +2 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
- package/lib/cjs/components/DatePicker/DatePicker.js +1 -1
- package/lib/cjs/components/DatePicker/index.js +1 -1
- package/lib/cjs/components/Form/Form.js +21 -17
- package/lib/cjs/components/Form/Form.js.map +1 -1
- package/lib/cjs/components/Form/FormItem.js +4 -4
- package/lib/cjs/components/Form/FormItem.js.map +1 -1
- package/lib/cjs/components/Form/index.js +2 -2
- package/lib/cjs/components/Form/interface/index.js +1 -1
- package/lib/cjs/components/Form/styles.js +1 -1
- package/lib/cjs/components/Icon/Icon.js +3 -1
- package/lib/cjs/components/Icon/Icon.js.map +1 -1
- package/lib/cjs/components/ImagePreview/ImagePreview.js +6 -6
- package/lib/cjs/components/ImagePreview/index.js +6 -6
- package/lib/cjs/components/List/ListItem/ListItem.js +6 -6
- package/lib/cjs/components/List/index.js +6 -6
- package/lib/cjs/components/Picker/Picker.js +1 -1
- package/lib/cjs/components/Picker/index.js +1 -1
- package/lib/cjs/components/Radio/Radio.js +6 -6
- package/lib/cjs/components/Radio/RadioGroup.js +4 -2
- package/lib/cjs/components/Radio/RadioGroup.js.map +1 -1
- package/lib/cjs/components/Radio/index.js +6 -6
- package/lib/cjs/components/Radio/interface/index.js +1 -1
- package/lib/cjs/components/Rate/Rate.js +2 -2
- package/lib/cjs/components/Rate/Rate.js.map +1 -1
- package/lib/cjs/components/Rate/index.js +1 -1
- package/lib/cjs/components/Rate/interface/index.js +1 -1
- package/lib/cjs/components/Sheets/AnimatedSheets.js +4 -2
- package/lib/cjs/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/cjs/components/Sheets/Sheets.js +22 -13
- package/lib/cjs/components/Sheets/Sheets.js.map +1 -1
- package/lib/cjs/components/Sheets/api.js +1 -1
- package/lib/cjs/components/Sheets/index.js +1 -1
- package/lib/cjs/components/Sheets/interface/index.js +1 -1
- package/lib/cjs/components/Stepper/Stepper.js +4 -2
- package/lib/cjs/components/Stepper/Stepper.js.map +1 -1
- package/lib/cjs/components/Stepper/index.js +1 -1
- package/lib/cjs/components/Stepper/interface/index.js +1 -1
- package/lib/cjs/components/Tab/Tabs.js +98 -35
- package/lib/cjs/components/Tab/Tabs.js.map +1 -1
- package/lib/cjs/components/Tab/styles.js +11 -10
- package/lib/cjs/components/Tab/styles.js.map +1 -1
- package/lib/cjs/components/Uploader/Uploader.js +6 -6
- package/lib/cjs/components/Uploader/Uploader.js.map +1 -1
- package/lib/cjs/components/Uploader/styles.js +8 -5
- package/lib/cjs/components/Uploader/styles.js.map +1 -1
- package/lib/cjs/index.js +6 -6
- package/lib/esm/_chunks/{BKfYslcc.js → B92MXD-p.js} +3 -2
- package/lib/esm/_chunks/B92MXD-p.js.map +1 -0
- package/lib/esm/_chunks/{DIXhEK8L.js → B_rJA32w.js} +11 -9
- package/lib/esm/_chunks/B_rJA32w.js.map +1 -0
- package/lib/esm/_chunks/{DGYdiQBr.js → BaWeXDzj.js} +4 -2
- package/lib/esm/_chunks/BaWeXDzj.js.map +1 -0
- package/lib/esm/_chunks/CC8nLpzS.js.map +1 -1
- package/lib/esm/_chunks/{ClyMQ8-p.js → CQDVLUyF.js} +3 -3
- package/lib/esm/_chunks/CQDVLUyF.js.map +1 -0
- package/lib/esm/_chunks/{CQokOKfj.js → CqcNLT67.js} +4 -2
- package/lib/esm/_chunks/CqcNLT67.js.map +1 -0
- package/lib/esm/_chunks/{DR1NAacd.js → DGI1A77J.js} +3 -2
- package/lib/esm/_chunks/DGI1A77J.js.map +1 -0
- package/lib/esm/components/ActionSheets/ActionSheets.js +13 -7
- package/lib/esm/components/ActionSheets/ActionSheets.js.map +1 -1
- package/lib/esm/components/ActionSheets/index.js +1 -1
- package/lib/esm/components/ActionSheets/styles.js +6 -3
- package/lib/esm/components/ActionSheets/styles.js.map +1 -1
- package/lib/esm/components/Alert/Alert.js +6 -6
- package/lib/esm/components/Alert/hooks/alert.js +6 -6
- package/lib/esm/components/Alert/index.js +7 -7
- package/lib/esm/components/AvatarGroup/AvatarGroup.js +6 -6
- package/lib/esm/components/AvatarGroup/index.js +6 -6
- package/lib/esm/components/CheckBoxGroup/CheckBox.js +5 -1
- package/lib/esm/components/CheckBoxGroup/CheckBox.js.map +1 -1
- package/lib/esm/components/CheckBoxGroup/CheckBoxGroup.js +2 -1
- package/lib/esm/components/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
- package/lib/esm/components/DatePicker/DatePicker.js +1 -1
- package/lib/esm/components/DatePicker/index.js +1 -1
- package/lib/esm/components/Form/Form.js +22 -18
- package/lib/esm/components/Form/Form.js.map +1 -1
- package/lib/esm/components/Form/FormItem.js +4 -4
- package/lib/esm/components/Form/FormItem.js.map +1 -1
- package/lib/esm/components/Form/index.js +2 -2
- package/lib/esm/components/Form/interface/index.js +1 -1
- package/lib/esm/components/Form/styles.js +1 -1
- package/lib/esm/components/Icon/Icon.js +4 -2
- package/lib/esm/components/Icon/Icon.js.map +1 -1
- package/lib/esm/components/ImagePreview/ImagePreview.js +6 -6
- package/lib/esm/components/ImagePreview/index.js +6 -6
- package/lib/esm/components/List/ListItem/ListItem.js +6 -6
- package/lib/esm/components/List/index.js +6 -6
- package/lib/esm/components/Picker/Picker.js +1 -1
- package/lib/esm/components/Picker/index.js +1 -1
- package/lib/esm/components/Radio/Radio.js +6 -6
- package/lib/esm/components/Radio/RadioGroup.js +4 -2
- package/lib/esm/components/Radio/RadioGroup.js.map +1 -1
- package/lib/esm/components/Radio/index.js +6 -6
- package/lib/esm/components/Radio/interface/index.js +1 -1
- package/lib/esm/components/Rate/Rate.js +2 -2
- package/lib/esm/components/Rate/Rate.js.map +1 -1
- package/lib/esm/components/Rate/index.js +1 -1
- package/lib/esm/components/Rate/interface/index.js +1 -1
- package/lib/esm/components/Sheets/AnimatedSheets.js +4 -2
- package/lib/esm/components/Sheets/AnimatedSheets.js.map +1 -1
- package/lib/esm/components/Sheets/Sheets.js +22 -13
- package/lib/esm/components/Sheets/Sheets.js.map +1 -1
- package/lib/esm/components/Sheets/api.js +1 -1
- package/lib/esm/components/Sheets/index.js +1 -1
- package/lib/esm/components/Sheets/interface/index.js +1 -1
- package/lib/esm/components/Stepper/Stepper.js +4 -2
- package/lib/esm/components/Stepper/Stepper.js.map +1 -1
- package/lib/esm/components/Stepper/index.js +1 -1
- package/lib/esm/components/Stepper/interface/index.js +1 -1
- package/lib/esm/components/Tab/Tabs.js +100 -37
- package/lib/esm/components/Tab/Tabs.js.map +1 -1
- package/lib/esm/components/Tab/styles.js +11 -10
- package/lib/esm/components/Tab/styles.js.map +1 -1
- package/lib/esm/components/Uploader/Uploader.js +6 -6
- package/lib/esm/components/Uploader/Uploader.js.map +1 -1
- package/lib/esm/components/Uploader/styles.js +8 -5
- package/lib/esm/components/Uploader/styles.js.map +1 -1
- package/lib/esm/index.js +6 -6
- package/lib/types/components/ActionSheets/styles.d.ts +4 -1
- package/lib/types/components/CheckBoxGroup/interface/index.d.ts +1 -0
- package/lib/types/components/Form/Form.d.ts +1 -7
- package/lib/types/components/Form/interface/index.d.ts +15 -3
- package/lib/types/components/Radio/interface/index.d.ts +7 -0
- package/lib/types/components/Rate/Rate.d.ts +1 -0
- package/lib/types/components/Rate/interface/index.d.ts +2 -0
- package/lib/types/components/Sheets/AnimatedSheets.d.ts +2 -4
- package/lib/types/components/Sheets/Sheets.d.ts +1 -1
- package/lib/types/components/Sheets/interface/index.d.ts +2 -2
- package/lib/types/components/Stepper/Stepper.d.ts +1 -0
- package/lib/types/components/Stepper/interface/index.d.ts +2 -0
- package/lib/types/components/Tab/styles.d.ts +7 -6
- package/lib/types/components/Uploader/styles.d.ts +5 -2
- package/package.json +1 -1
- package/src/components/ActionSheets/ActionSheets.tsx +12 -9
- package/src/components/ActionSheets/demo/index.tsx +27 -1
- package/src/components/ActionSheets/styles.ts +4 -1
- package/src/components/CheckBoxGroup/CheckBox.tsx +5 -1
- package/src/components/CheckBoxGroup/CheckBoxGroup.tsx +1 -0
- package/src/components/CheckBoxGroup/interface/index.ts +1 -0
- package/src/components/Form/Form.tsx +24 -13
- package/src/components/Form/FormItem.tsx +8 -3
- package/src/components/Form/demo/index.tsx +63 -7
- package/src/components/Form/doc/index.mdx +9 -7
- package/src/components/Form/interface/index.ts +15 -3
- package/src/components/Icon/Icon.tsx +5 -3
- package/src/components/Icon/demo/index.tsx +0 -1
- package/src/components/Radio/Radio.tsx +8 -2
- package/src/components/Radio/RadioGroup.tsx +2 -1
- package/src/components/Radio/doc/index.mdx +11 -8
- package/src/components/Radio/interface/index.ts +7 -0
- package/src/components/Rate/Rate.tsx +1 -1
- package/src/components/Rate/doc/index.mdx +10 -9
- package/src/components/Rate/interface/index.ts +2 -0
- package/src/components/Sheets/AnimatedSheets.tsx +1 -1
- package/src/components/Sheets/Sheets.tsx +27 -13
- package/src/components/Sheets/demo/index.tsx +23 -0
- package/src/components/Sheets/doc/index.mdx +1 -1
- package/src/components/Sheets/interface/index.ts +2 -2
- package/src/components/Stepper/Stepper.tsx +11 -9
- package/src/components/Stepper/doc/index.mdx +7 -6
- package/src/components/Stepper/interface/index.ts +2 -0
- package/src/components/Tab/Tabs.tsx +147 -88
- package/src/components/Tab/demo/index.tsx +33 -11
- package/src/components/Tab/styles.ts +8 -6
- package/src/components/Uploader/Uploader.tsx +6 -6
- package/src/components/Uploader/styles.ts +5 -2
- package/types/src/components/ActionSheets/styles.d.ts +4 -1
- package/types/src/components/CheckBoxGroup/interface/index.d.ts +1 -0
- package/types/src/components/Form/Form.d.ts +1 -7
- package/types/src/components/Form/interface/index.d.ts +15 -3
- package/types/src/components/Radio/interface/index.d.ts +7 -0
- package/types/src/components/Rate/Rate.d.ts +1 -0
- package/types/src/components/Rate/interface/index.d.ts +2 -0
- package/types/src/components/Sheets/AnimatedSheets.d.ts +2 -4
- package/types/src/components/Sheets/Sheets.d.ts +1 -1
- package/types/src/components/Sheets/interface/index.d.ts +2 -2
- package/types/src/components/Stepper/Stepper.d.ts +1 -0
- package/types/src/components/Stepper/interface/index.d.ts +2 -0
- package/types/src/components/Tab/styles.d.ts +7 -6
- package/types/src/components/Uploader/styles.d.ts +5 -2
- package/lib/cjs/_chunks/BZY8fLHP.js.map +0 -1
- package/lib/cjs/_chunks/CbnkUMH9.js.map +0 -1
- package/lib/cjs/_chunks/CnvQUDZP.js.map +0 -1
- package/lib/cjs/_chunks/G5T1hGVo.js.map +0 -1
- package/lib/cjs/_chunks/SEcsCrAk.js.map +0 -1
- package/lib/cjs/_chunks/ZbRoGP_k.js.map +0 -1
- package/lib/esm/_chunks/BKfYslcc.js.map +0 -1
- package/lib/esm/_chunks/CQokOKfj.js.map +0 -1
- package/lib/esm/_chunks/ClyMQ8-p.js.map +0 -1
- package/lib/esm/_chunks/DGYdiQBr.js.map +0 -1
- package/lib/esm/_chunks/DIXhEK8L.js.map +0 -1
- package/lib/esm/_chunks/DR1NAacd.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnimatedSheets.js","sources":["../../../../src/components/Sheets/AnimatedSheets.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport { alwaysColor } from \"@xhsreds/reds-token-next\";\nimport {\n View,\n TouchableWithoutFeedback,\n Text,\n Animated,\n LayoutChangeEvent,\n PanResponder,\n Dimensions,\n} from \"react-native\";\nimport {\n RedsSheets,\n SheetsDefaultProps,\n SheetsMaskMode,\n SheetsType,\n SheetsIconType,\n SheetsActionType,\n SheetsSize,\n} from \"./interface/index\";\nimport { Portal } from \"../Portal\";\nimport { useThemeColor, useColorMode } from \"../ConfigProvider\";\nimport styles from \"./styles\";\nimport { Button } from \"../Button\";\nimport { Icon, IconType } from \"../Icon\";\n\nconst Sheets = (props: RedsSheets) => {\n const {\n visible,\n onCancel,\n onConfirm,\n children,\n label,\n mask,\n maskMode,\n cancelType,\n closeType,\n cancelText,\n closeText,\n sheetsType,\n cancel,\n close,\n iconType,\n size,\n } = props;\n\n const themeColor = useThemeColor();\n\n const colorMode = useColorMode();\n\n /**\n * Sheets容器高度动画\n */\n const [sheetsHeight] = useState(new Animated.Value(0));\n\n /**\n * Sheets容器child内容高度\n */\n const childHeightRef = useRef(0);\n\n /**\n * 底部操作区高度\n */\n const [actionHeight, setActionHeight] = useState(0);\n\n /**\n * 标题区域高度\n */\n const [labelHeight, setLabelHeight] = useState(0);\n\n /**\n * child高度\n */\n const [childHeight, setChildHeight] = useState(0);\n\n /**\n * 是否展示标题\n */\n const showLabel = useMemo(() => {\n return sheetsType === SheetsType.normal && (cancel || close || label);\n }, [sheetsType, cancel, close, label]);\n\n /**\n * 是否展示底部操作栏\n */\n const showAction = useMemo(() => {\n return sheetsType === SheetsType.action && (cancel || close);\n }, [sheetsType, cancel, close]);\n\n /**\n * 关闭Sheets\n */\n const handleMask = () => {\n handleClose();\n onCancel?.();\n };\n\n /**\n * 确定 or 完成\n */\n const handleConfirm = () => {\n handleClose();\n onConfirm?.();\n };\n\n /**\n * 返回 or 取消\n */\n const handleCancel = () => {\n handleClose();\n onCancel?.();\n };\n\n /**\n * 计算子容器高度\n * @param evt LayoutChangeEvent\n */\n const handleLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setChildHeight(height);\n };\n\n /**\n * 计算底部操作区高度\n * @param evt\n */\n const handleActionLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setActionHeight(height);\n };\n\n /**\n * 计算标题高度\n * @param evt\n */\n const handleLabelLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setLabelHeight(height);\n };\n\n /**\n * 外层容器高度变化\n */\n useEffect(() => {\n const factHeight = actionHeight + labelHeight + childHeight + 34;\n const fullScreenHeight = Dimensions.get(\"screen\").height - 34;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2) - 34;\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75) - 34;\n const calculateHeight =\n sheetsType !== SheetsType.dragable\n ? size === SheetsSize.auto\n ? factHeight\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight\n : factHeight;\n childHeightRef.current = calculateHeight;\n Animated.timing(sheetsHeight, {\n toValue: calculateHeight,\n duration: 100, // 动画持续时间 (毫秒)\n useNativeDriver: false, // `height` 不支持 useNativeDriver\n }).start();\n }, [actionHeight, labelHeight, childHeight]);\n\n /**\n * 关闭容器取消动画\n * @param evt LayoutChangeEvent\n */\n const handleClose = () => {\n Animated.timing(sheetsHeight, { toValue: 0, useNativeDriver: false }).start();\n sheetsHeight.setValue(0);\n };\n\n /**\n * 手势监听\n */\n const panResponder = useRef(\n PanResponder.create({\n onMoveShouldSetPanResponder: () => true,\n onPanResponderMove: (event, gestureState) => {\n if (sheetsType !== SheetsType.dragable) return;\n const fullScreenHeight = Dimensions.get(\"screen\").height - 34;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2) - 34;\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75) - 34;\n const maxHeight =\n size === SheetsSize.auto\n ? fullScreenHeight\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n const newHeight = Math.min(\n maxHeight,\n Math.max(childHeightRef.current, childHeightRef.current - gestureState.dy),\n );\n sheetsHeight.setValue(newHeight);\n },\n }),\n ).current;\n\n /** icon wrapper */\n const iconWrapper = (type: string) => {\n return iconType === SheetsIconType.bg ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n <View style={[styles.iconBg, { backgroundColor: themeColor.Fill1 }]}>\n {type === \"confirm\" ? (\n <Icon icon={Close} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n )}\n </View>\n </TouchableWithoutFeedback>\n ) : type === \"confirm\" ? (\n <Icon icon={Close} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n );\n };\n\n /** block占位 */\n const Block = () => {\n return <View style={styles.block} />;\n };\n\n const ArrowLeft = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/fb5b21a7cce47ddb6a0e298c1f362f1486824615.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c4c4ea8f2a3c991e0d17d327466e7a31389e2ba2.png\";\n }\n }, []);\n\n const Close = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/e5021b86d9477351022f6f91e20e735e2074283f.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/612362486f95774c1dbdedd48318f969e35d810d.png\";\n }\n }, [colorMode]);\n\n return visible ? (\n <View style={styles.wrapper} testID=\"Sheets\">\n {mask ? (\n <TouchableWithoutFeedback onPress={handleMask}>\n <View\n testID=\"mask\"\n style={[\n styles.mask,\n { backgroundColor: maskMode === SheetsMaskMode.light ? alwaysColor.MaskBg : \"rgba(0,0,0,0.8)\" },\n ]}\n ></View>\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n <Animated.View style={[styles.picker, { backgroundColor: themeColor.Bg2 }, { height: sheetsHeight }]}>\n {/** normal */}\n {showLabel ? (\n <View style={[styles.labelContainer, { backgroundColor: themeColor.Bg2 }]} onLayout={handleLabelLayout}>\n {cancel ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n {cancelType === SheetsActionType.text ? (\n <Text style={[styles.cancel, { color: themeColor.Description }]} testID=\"cancel\">\n {cancelText}\n </Text>\n ) : (\n iconWrapper(\"cancel\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n {label ? <Text style={[styles.label, { color: themeColor.Title }]}>{label}</Text> : <></>}\n {close ? (\n <TouchableWithoutFeedback onPress={handleConfirm}>\n {closeType === SheetsActionType.text ? (\n <Text style={[styles.confirm, { color: themeColor.Primary }]} testID=\"close\">\n {closeText}\n </Text>\n ) : (\n iconWrapper(\"confirm\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n </View>\n ) : (\n <></>\n )}\n\n {/** 拖拽按钮 */}\n {sheetsType === SheetsType.dragable ? (\n <Animated.View style={[styles.dragableContainer]} {...panResponder.panHandlers} testID={\"draggable\"}>\n <View style={[styles.dragable, { backgroundColor: themeColor.Fill3 }]} />\n </Animated.View>\n ) : (\n <></>\n )}\n\n <View onLayout={handleLayout}>{children}</View>\n\n {/** action */}\n {showAction ? (\n <View style={[styles.actionContainer]} onLayout={handleActionLayout}>\n {cancel ? (\n <View style={styles.action}>\n <Button block onClick={handleCancel}>\n {cancelText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n {close ? (\n <View style={styles.action}>\n <Button block onClick={handleConfirm} type=\"primary\">\n {closeText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n )}\n </Animated.View>\n </View>\n ) : (\n <></>\n );\n};\n\nSheets.defaultProps = SheetsDefaultProps;\n\nexport default Sheets;\n"],"names":["Sheets","props","visible","onCancel","onConfirm","children","label","mask","maskMode","cancelType","closeType","cancelText","closeText","sheetsType","cancel","close","iconType","size","themeColor","useThemeColor","colorMode","useColorMode","_useState","useState","Animated","Value","_useState2","_slicedToArray","sheetsHeight","childHeightRef","useRef","_useState3","_useState4","actionHeight","setActionHeight","_useState5","_useState6","labelHeight","setLabelHeight","_useState7","_useState8","childHeight","setChildHeight","showLabel","useMemo","SheetsType","normal","showAction","action","handleMask","handleClose","handleConfirm","handleCancel","handleLayout","evt","height","nativeEvent","layout","handleActionLayout","handleLabelLayout","useEffect","factHeight","fullScreenHeight","Dimensions","get","halfScreenHeight","Math","floor","threeQuaterScreenHeight","calculateHeight","dragable","SheetsSize","auto","half","threeQuater","current","timing","toValue","duration","useNativeDriver","start","setValue","panResponder","PanResponder","create","onMoveShouldSetPanResponder","onPanResponderMove","event","gestureState","maxHeight","newHeight","min","max","dy","iconWrapper","type","SheetsIconType","bg","React","createElement","TouchableWithoutFeedback","onPress","View","style","styles","iconBg","backgroundColor","Fill1","Icon","icon","Close","IconType","image","onClick","ArrowLeft","Block","block","wrapper","testID","SheetsMaskMode","light","alwaysColor","MaskBg","Fragment","picker","Bg2","labelContainer","onLayout","SheetsActionType","text","Text","color","Description","Title","confirm","Primary","_objectSpread","dragableContainer","panHandlers","Fill3","actionContainer","Button","defaultProps","SheetsDefaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AnimatedSheets.js","sources":["../../../../src/components/Sheets/AnimatedSheets.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport { alwaysColor } from \"@xhsreds/reds-token-next\";\nimport {\n View,\n TouchableWithoutFeedback,\n Text,\n Animated,\n LayoutChangeEvent,\n PanResponder,\n Dimensions,\n} from \"react-native\";\nimport {\n RedsSheets,\n SheetsDefaultProps,\n SheetsMaskMode,\n SheetsType,\n SheetsIconType,\n SheetsActionType,\n SheetsSize,\n} from \"./interface/index\";\nimport { Portal } from \"../Portal\";\nimport { useThemeColor, useColorMode } from \"../ConfigProvider\";\nimport styles from \"./styles\";\nimport { Button } from \"../Button\";\nimport { Icon, IconType } from \"../Icon\";\n\nconst Sheets = (props: RedsSheets) => {\n const {\n visible,\n onCancel,\n onConfirm,\n children,\n label,\n mask,\n maskMode,\n cancelType,\n closeType,\n cancelText,\n closeText,\n sheetsType,\n cancel,\n close,\n iconType,\n size,\n } = props;\n\n const themeColor = useThemeColor();\n\n const colorMode = useColorMode();\n\n /**\n * Sheets容器高度动画\n */\n const [sheetsHeight] = useState(new Animated.Value(0));\n\n /**\n * Sheets容器child内容高度\n */\n const childHeightRef = useRef(0);\n\n /**\n * 底部操作区高度\n */\n const [actionHeight, setActionHeight] = useState(0);\n\n /**\n * 标题区域高度\n */\n const [labelHeight, setLabelHeight] = useState(0);\n\n /**\n * child高度\n */\n const [childHeight, setChildHeight] = useState(0);\n\n /**\n * 是否展示标题\n */\n const showLabel = useMemo(() => {\n return sheetsType === SheetsType.normal && (cancel || close || label);\n }, [sheetsType, cancel, close, label]);\n\n /**\n * 是否展示底部操作栏\n */\n const showAction = useMemo(() => {\n return sheetsType === SheetsType.action && (cancel || close);\n }, [sheetsType, cancel, close]);\n\n /**\n * 关闭Sheets\n */\n const handleMask = () => {\n handleClose();\n onCancel?.();\n };\n\n /**\n * 确定 or 完成\n */\n const handleConfirm = () => {\n handleClose();\n onConfirm?.();\n };\n\n /**\n * 返回 or 取消\n */\n const handleCancel = () => {\n handleClose();\n onCancel?.();\n };\n\n /**\n * 计算子容器高度\n * @param evt LayoutChangeEvent\n */\n const handleLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setChildHeight(height);\n };\n\n /**\n * 计算底部操作区高度\n * @param evt\n */\n const handleActionLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setActionHeight(height);\n };\n\n /**\n * 计算标题高度\n * @param evt\n */\n const handleLabelLayout = (evt: LayoutChangeEvent) => {\n const { height } = evt.nativeEvent.layout;\n setLabelHeight(height);\n };\n\n /**\n * 外层容器高度变化\n */\n useEffect(() => {\n const factHeight = actionHeight + labelHeight + childHeight + 34;\n const fullScreenHeight = Dimensions.get(\"screen\").height - 34;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2) - 34;\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75) - 34;\n const calculateHeight =\n sheetsType !== SheetsType.dragable\n ? size === SheetsSize.auto\n ? factHeight\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight\n : factHeight;\n childHeightRef.current = calculateHeight;\n Animated.timing(sheetsHeight, {\n toValue: calculateHeight,\n duration: 100, // 动画持续时间 (毫秒)\n useNativeDriver: false, // `height` 不支持 useNativeDriver\n }).start();\n }, [actionHeight, labelHeight, childHeight]);\n\n /**\n * 关闭容器取消动画\n * @param evt LayoutChangeEvent\n */\n const handleClose = () => {\n Animated.timing(sheetsHeight, { toValue: 0, useNativeDriver: false }).start();\n sheetsHeight.setValue(0);\n };\n\n /**\n * 手势监听\n */\n const panResponder = useRef(\n PanResponder.create({\n onMoveShouldSetPanResponder: () => true,\n onPanResponderMove: (event, gestureState) => {\n if (sheetsType !== SheetsType.dragable) return;\n const fullScreenHeight = Dimensions.get(\"screen\").height - 34;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2) - 34;\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75) - 34;\n const maxHeight =\n size === SheetsSize.auto\n ? fullScreenHeight\n : size === SheetsSize.half\n ? halfScreenHeight\n : size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n const newHeight = Math.min(\n maxHeight,\n Math.max(childHeightRef.current, childHeightRef.current - gestureState.dy),\n );\n sheetsHeight.setValue(newHeight);\n },\n }),\n ).current;\n\n /** icon wrapper */\n const iconWrapper = (type: string) => {\n return iconType === SheetsIconType.bg ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n <View style={[styles.iconBg, { backgroundColor: themeColor.Fill1 }]}>\n {type === \"confirm\" ? (\n <Icon icon={Close} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n )}\n </View>\n </TouchableWithoutFeedback>\n ) : type === \"confirm\" ? (\n <Icon icon={Close} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n ) : (\n <Icon icon={ArrowLeft} type={IconType.iconType.image} size={20} onClick={handleCancel} />\n );\n };\n\n /** block占位 */\n const Block = () => {\n return <View style={styles.block} />;\n };\n\n const ArrowLeft = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/fb5b21a7cce47ddb6a0e298c1f362f1486824615.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c4c4ea8f2a3c991e0d17d327466e7a31389e2ba2.png\";\n }\n }, []);\n\n const Close = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/e5021b86d9477351022f6f91e20e735e2074283f.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/612362486f95774c1dbdedd48318f969e35d810d.png\";\n }\n }, [colorMode]);\n\n return visible ? (\n <View style={[styles.wrapper, { zIndex: props.zIndex }]} testID=\"Sheets\">\n {mask ? (\n <TouchableWithoutFeedback onPress={handleMask}>\n <View\n testID=\"mask\"\n style={[\n styles.mask,\n { backgroundColor: maskMode === SheetsMaskMode.light ? alwaysColor.MaskBg : \"rgba(0,0,0,0.8)\" },\n ]}\n ></View>\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n <Animated.View style={[styles.picker, { backgroundColor: themeColor.Bg2 }, { height: sheetsHeight }]}>\n {/** normal */}\n {showLabel ? (\n <View style={[styles.labelContainer, { backgroundColor: themeColor.Bg2 }]} onLayout={handleLabelLayout}>\n {cancel ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n {cancelType === SheetsActionType.text ? (\n <Text style={[styles.cancel, { color: themeColor.Description }]} testID=\"cancel\">\n {cancelText}\n </Text>\n ) : (\n iconWrapper(\"cancel\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n {label ? <Text style={[styles.label, { color: themeColor.Title }]}>{label}</Text> : <></>}\n {close ? (\n <TouchableWithoutFeedback onPress={handleConfirm}>\n {closeType === SheetsActionType.text ? (\n <Text style={[styles.confirm, { color: themeColor.Primary }]} testID=\"close\">\n {closeText}\n </Text>\n ) : (\n iconWrapper(\"confirm\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n </View>\n ) : (\n <></>\n )}\n\n {/** 拖拽按钮 */}\n {sheetsType === SheetsType.dragable ? (\n <Animated.View style={[styles.dragableContainer]} {...panResponder.panHandlers} testID={\"draggable\"}>\n <View style={[styles.dragable, { backgroundColor: themeColor.Fill3 }]} />\n </Animated.View>\n ) : (\n <></>\n )}\n\n <View onLayout={handleLayout}>{children}</View>\n\n {/** action */}\n {showAction ? (\n <View style={[styles.actionContainer]} onLayout={handleActionLayout}>\n {cancel ? (\n <View style={styles.action}>\n <Button block onClick={handleCancel}>\n {cancelText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n {close ? (\n <View style={styles.action}>\n <Button block onClick={handleConfirm} type=\"primary\">\n {closeText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n )}\n </Animated.View>\n </View>\n ) : (\n <></>\n );\n};\n\nSheets.defaultProps = SheetsDefaultProps;\n\nexport default Sheets;\n"],"names":["Sheets","props","visible","onCancel","onConfirm","children","label","mask","maskMode","cancelType","closeType","cancelText","closeText","sheetsType","cancel","close","iconType","size","themeColor","useThemeColor","colorMode","useColorMode","_useState","useState","Animated","Value","_useState2","_slicedToArray","sheetsHeight","childHeightRef","useRef","_useState3","_useState4","actionHeight","setActionHeight","_useState5","_useState6","labelHeight","setLabelHeight","_useState7","_useState8","childHeight","setChildHeight","showLabel","useMemo","SheetsType","normal","showAction","action","handleMask","handleClose","handleConfirm","handleCancel","handleLayout","evt","height","nativeEvent","layout","handleActionLayout","handleLabelLayout","useEffect","factHeight","fullScreenHeight","Dimensions","get","halfScreenHeight","Math","floor","threeQuaterScreenHeight","calculateHeight","dragable","SheetsSize","auto","half","threeQuater","current","timing","toValue","duration","useNativeDriver","start","setValue","panResponder","PanResponder","create","onMoveShouldSetPanResponder","onPanResponderMove","event","gestureState","maxHeight","newHeight","min","max","dy","iconWrapper","type","SheetsIconType","bg","React","createElement","TouchableWithoutFeedback","onPress","View","style","styles","iconBg","backgroundColor","Fill1","Icon","icon","Close","IconType","image","onClick","ArrowLeft","Block","block","wrapper","zIndex","testID","SheetsMaskMode","light","alwaysColor","MaskBg","Fragment","picker","Bg2","labelContainer","onLayout","SheetsActionType","text","Text","color","Description","Title","confirm","Primary","_objectSpread","dragableContainer","panHandlers","Fill3","actionContainer","Button","defaultProps","SheetsDefaultProps"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { b as _slicedToArray } from '../../_chunks/wvaDNdQL.js';
|
|
|
2
2
|
import React__default, { useState, useMemo } from 'react';
|
|
3
3
|
import { alwaysColor } from '@xhsreds/reds-token-next';
|
|
4
4
|
import { Dimensions, View, TouchableWithoutFeedback, Text } from 'react-native';
|
|
5
|
-
import {
|
|
5
|
+
import { a as SheetsType, S as SheetsSize, b as SheetsMaskMode, c as SheetsActionType, d as SheetsDefaultProps, e as SheetsIconType } from '../../_chunks/CQDVLUyF.js';
|
|
6
6
|
import '../ConfigProvider/hooks/ConfigCache/ConfigCache.js';
|
|
7
7
|
import { useThemeColor } from '../ConfigProvider/hooks/themeToken/useThemeToken.js';
|
|
8
8
|
import { useColorMode } from '../ConfigProvider/hooks/themeToken/useColorMode.js';
|
|
@@ -37,7 +37,7 @@ var Sheets = function Sheets(props) {
|
|
|
37
37
|
var _useState = useState(0),
|
|
38
38
|
_useState2 = _slicedToArray(_useState, 2);
|
|
39
39
|
_useState2[0];
|
|
40
|
-
|
|
40
|
+
_useState2[1];
|
|
41
41
|
var showLabel = useMemo(function () {
|
|
42
42
|
return sheetsType === SheetsType.normal && (cancel || close || label);
|
|
43
43
|
}, [sheetsType, cancel, close, label]);
|
|
@@ -65,25 +65,37 @@ var Sheets = function Sheets(props) {
|
|
|
65
65
|
fill: themeColor.Bg,
|
|
66
66
|
size: 20,
|
|
67
67
|
onClick: handleCancel,
|
|
68
|
-
type: iconType.image
|
|
68
|
+
type: iconType.image,
|
|
69
|
+
styles: {
|
|
70
|
+
borderRadius: 10
|
|
71
|
+
}
|
|
69
72
|
}) : /* @__PURE__ */React__default.createElement(Icon, {
|
|
70
73
|
icon: ArrowLeft,
|
|
71
74
|
fill: themeColor.Bg,
|
|
72
75
|
size: 20,
|
|
73
76
|
onClick: handleCancel,
|
|
74
|
-
type: iconType.image
|
|
77
|
+
type: iconType.image,
|
|
78
|
+
styles: {
|
|
79
|
+
borderRadius: 10
|
|
80
|
+
}
|
|
75
81
|
}))) : type === "confirm" ? /* @__PURE__ */React__default.createElement(Icon, {
|
|
76
82
|
icon: Close,
|
|
77
83
|
fill: themeColor.Title,
|
|
78
84
|
size: 20,
|
|
79
85
|
onClick: handleCancel,
|
|
80
|
-
type: iconType.image
|
|
86
|
+
type: iconType.image,
|
|
87
|
+
styles: {
|
|
88
|
+
borderRadius: 10
|
|
89
|
+
}
|
|
81
90
|
}) : /* @__PURE__ */React__default.createElement(Icon, {
|
|
82
91
|
icon: ArrowLeft,
|
|
83
92
|
fill: themeColor.Title,
|
|
84
93
|
size: 20,
|
|
85
94
|
onClick: handleCancel,
|
|
86
|
-
type: iconType.image
|
|
95
|
+
type: iconType.image,
|
|
96
|
+
styles: {
|
|
97
|
+
borderRadius: 10
|
|
98
|
+
}
|
|
87
99
|
});
|
|
88
100
|
};
|
|
89
101
|
var Block = function Block() {
|
|
@@ -112,7 +124,9 @@ var Sheets = function Sheets(props) {
|
|
|
112
124
|
return props.size === SheetsSize.half ? halfScreenHeight : props.size === SheetsSize.threeQuater ? threeQuaterScreenHeight : fullScreenHeight;
|
|
113
125
|
}, [props.size]);
|
|
114
126
|
return visible ? /* @__PURE__ */React__default.createElement(View, {
|
|
115
|
-
style: styles.wrapper,
|
|
127
|
+
style: [styles.wrapper, {
|
|
128
|
+
zIndex: props.zIndex
|
|
129
|
+
}],
|
|
116
130
|
testID: "Sheets"
|
|
117
131
|
}, mask ? /* @__PURE__ */React__default.createElement(TouchableWithoutFeedback, {
|
|
118
132
|
onPress: handleMask
|
|
@@ -148,12 +162,7 @@ var Sheets = function Sheets(props) {
|
|
|
148
162
|
color: themeColor.Primary
|
|
149
163
|
}],
|
|
150
164
|
testID: "close"
|
|
151
|
-
}, closeText) : iconWrapper("confirm")) : /* @__PURE__ */React__default.createElement(Block, null)) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null), /* @__PURE__ */React__default.createElement(View, {
|
|
152
|
-
onLayout: function onLayout(e) {
|
|
153
|
-
console.log("e.nativeEvent.layout.height", e.nativeEvent.layout.height);
|
|
154
|
-
setChildHeight(e.nativeEvent.layout.height);
|
|
155
|
-
}
|
|
156
|
-
}, children), showAction ? /* @__PURE__ */React__default.createElement(View, {
|
|
165
|
+
}, closeText) : iconWrapper("confirm")) : /* @__PURE__ */React__default.createElement(Block, null)) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null), children, showAction ? /* @__PURE__ */React__default.createElement(View, {
|
|
157
166
|
style: [styles.actionContainer]
|
|
158
167
|
}, cancel ? /* @__PURE__ */React__default.createElement(View, {
|
|
159
168
|
style: styles.action
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sheets.js","sources":["../../../../src/components/Sheets/Sheets.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport { alwaysColor } from \"@xhsreds/reds-token-next\";\nimport {\n View,\n TouchableWithoutFeedback,\n Text,\n Animated,\n LayoutChangeEvent,\n PanResponder,\n Dimensions,\n} from \"react-native\";\nimport {\n RedsSheets,\n SheetsDefaultProps,\n SheetsMaskMode,\n SheetsType,\n SheetsIconType,\n SheetsActionType,\n SheetsSize,\n} from \"./interface/index\";\nimport { Portal } from \"../Portal\";\nimport { useThemeColor, useColorMode } from \"../ConfigProvider\";\nimport styles from \"./styles\";\nimport { Button } from \"../Button\";\nimport { Icon, IconType } from \"../Icon\";\n\nconst Sheets = (props: RedsSheets) => {\n const {\n visible,\n onCancel,\n onConfirm,\n children,\n label,\n mask,\n maskMode,\n cancelType,\n closeType,\n cancelText,\n closeText,\n sheetsType,\n cancel,\n close,\n iconType,\n size,\n } = props;\n\n const themeColor = useThemeColor();\n\n const colorMode = useColorMode();\n\n const [childHeight, setChildHeight] = useState(0);\n\n /**\n * 是否展示标题\n */\n const showLabel = useMemo(() => {\n return sheetsType === SheetsType.normal && (cancel || close || label);\n }, [sheetsType, cancel, close, label]);\n\n /**\n * 是否展示底部操作栏\n */\n const showAction = useMemo(() => {\n return sheetsType === SheetsType.action && (cancel || close);\n }, [sheetsType, cancel, close]);\n\n /**\n * 关闭Sheets\n */\n const handleMask = () => {\n onCancel?.();\n };\n\n /**\n * 确定 or 完成\n */\n const handleConfirm = () => {\n onConfirm?.();\n };\n\n /**\n * 返回 or 取消\n */\n const handleCancel = () => {\n onCancel?.();\n };\n\n /** icon wrapper */\n const iconWrapper = (type: string) => {\n return iconType === SheetsIconType.bg ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n <View style={[styles.iconBg, { backgroundColor: themeColor.Fill1 }]}>\n {type === \"confirm\" ? (\n <Icon icon={Close} fill={themeColor.Bg} size={20} onClick={handleCancel} type={IconType.iconType.image} />\n ) : (\n <Icon\n icon={ArrowLeft}\n fill={themeColor.Bg}\n size={20}\n onClick={handleCancel}\n type={IconType.iconType.image}\n />\n )}\n </View>\n </TouchableWithoutFeedback>\n ) : type === \"confirm\" ? (\n <Icon icon={Close} fill={themeColor.Title} size={20} onClick={handleCancel} type={IconType.iconType.image} />\n ) : (\n <Icon icon={ArrowLeft} fill={themeColor.Title} size={20} onClick={handleCancel} type={IconType.iconType.image} />\n );\n };\n\n /** block占位 */\n const Block = () => {\n return <View style={styles.block} />;\n };\n\n const ArrowLeft = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/fb5b21a7cce47ddb6a0e298c1f362f1486824615.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c4c4ea8f2a3c991e0d17d327466e7a31389e2ba2.png\";\n }\n }, []);\n\n const Close = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/e5021b86d9477351022f6f91e20e735e2074283f.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/612362486f95774c1dbdedd48318f969e35d810d.png\";\n }\n }, [colorMode]);\n\n /**\n * 最大高度\n */\n const maxHeight = useMemo(() => {\n const fullScreenHeight = Dimensions.get(\"screen\").height;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2);\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75);\n return props.size === SheetsSize.half\n ? halfScreenHeight\n : props.size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n }, [props.size]);\n\n return visible ? (\n <View style={styles.wrapper} testID=\"Sheets\">\n {mask ? (\n <TouchableWithoutFeedback onPress={handleMask}>\n <View\n style={[\n styles.mask,\n { backgroundColor: maskMode === SheetsMaskMode.light ? alwaysColor.MaskBg : \"rgba(0,0,0,0.8)\" },\n ]}\n ></View>\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n <View\n style={[\n styles.picker,\n { backgroundColor: themeColor.Bg2 },\n props.size === SheetsSize.auto ? {} : { maxHeight: maxHeight },\n ]}\n >\n {/** normal */}\n {showLabel ? (\n <View style={[styles.labelContainer, { backgroundColor: themeColor.Bg2 }]}>\n {cancel ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n {cancelType === SheetsActionType.text ? (\n <Text style={[styles.cancel, { color: themeColor.Description }]} testID=\"cancel\">\n {cancelText}\n </Text>\n ) : (\n iconWrapper(\"cancel\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n {label ? <Text style={[styles.label, { color: themeColor.Title }]}>{label}</Text> : <></>}\n {close ? (\n <TouchableWithoutFeedback onPress={handleConfirm}>\n {closeType === SheetsActionType.text ? (\n <Text style={[styles.confirm, { color: themeColor.Primary }]} testID=\"close\">\n {closeText}\n </Text>\n ) : (\n iconWrapper(\"confirm\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n </View>\n ) : (\n <></>\n )}\n\n <View\n onLayout={(e) => {\n console.log(\"e.nativeEvent.layout.height\", e.nativeEvent.layout.height);\n setChildHeight(e.nativeEvent.layout.height);\n }}\n >\n {children}\n </View>\n\n {/** action */}\n {showAction ? (\n <View style={[styles.actionContainer]}>\n {cancel ? (\n <View style={styles.action}>\n <Button block onClick={handleCancel}>\n {cancelText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n {close ? (\n <View style={styles.action}>\n <Button block onClick={handleConfirm} type=\"primary\">\n {closeText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n )}\n </View>\n </View>\n ) : (\n <></>\n );\n};\n\nSheets.defaultProps = SheetsDefaultProps;\n\nexport default Sheets;\n"],"names":["Sheets","props","visible","onCancel","onConfirm","children","label","mask","maskMode","cancelType","closeType","cancelText","closeText","sheetsType","cancel","close","iconType","size","themeColor","useThemeColor","colorMode","useColorMode","_useState","useState","_useState2","_slicedToArray","childHeight","setChildHeight","showLabel","useMemo","SheetsType","normal","showAction","action","handleMask","handleConfirm","handleCancel","iconWrapper","type","SheetsIconType","bg","React","createElement","TouchableWithoutFeedback","onPress","View","style","styles","iconBg","backgroundColor","Fill1","Icon","icon","Close","fill","Bg","onClick","IconType","image","ArrowLeft","Title","Block","block","maxHeight","fullScreenHeight","Dimensions","get","height","halfScreenHeight","Math","floor","threeQuaterScreenHeight","SheetsSize","half","threeQuater","wrapper","testID","SheetsMaskMode","light","alwaysColor","MaskBg","Fragment","picker","Bg2","auto","labelContainer","SheetsActionType","text","Text","color","Description","confirm","Primary","onLayout","e","console","log","nativeEvent","layout","actionContainer","Button","defaultProps","SheetsDefaultProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Sheets.js","sources":["../../../../src/components/Sheets/Sheets.tsx"],"sourcesContent":["import React, { useState, useRef, useMemo, useEffect } from \"react\";\nimport { alwaysColor } from \"@xhsreds/reds-token-next\";\nimport {\n View,\n TouchableWithoutFeedback,\n Text,\n Animated,\n LayoutChangeEvent,\n PanResponder,\n Dimensions,\n} from \"react-native\";\nimport {\n RedsSheets,\n SheetsDefaultProps,\n SheetsMaskMode,\n SheetsType,\n SheetsIconType,\n SheetsActionType,\n SheetsSize,\n} from \"./interface/index\";\nimport { Portal } from \"../Portal\";\nimport { useThemeColor, useColorMode } from \"../ConfigProvider\";\nimport styles from \"./styles\";\nimport { Button } from \"../Button\";\nimport { Icon, IconType } from \"../Icon\";\n\nconst Sheets = (props: RedsSheets) => {\n const {\n visible,\n onCancel,\n onConfirm,\n children,\n label,\n mask,\n maskMode,\n cancelType,\n closeType,\n cancelText,\n closeText,\n sheetsType,\n cancel,\n close,\n iconType,\n size,\n } = props;\n\n const themeColor = useThemeColor();\n\n const colorMode = useColorMode();\n\n const [childHeight, setChildHeight] = useState(0);\n\n /**\n * 是否展示标题\n */\n const showLabel = useMemo(() => {\n return sheetsType === SheetsType.normal && (cancel || close || label);\n }, [sheetsType, cancel, close, label]);\n\n /**\n * 是否展示底部操作栏\n */\n const showAction = useMemo(() => {\n return sheetsType === SheetsType.action && (cancel || close);\n }, [sheetsType, cancel, close]);\n\n /**\n * 关闭Sheets\n */\n const handleMask = () => {\n onCancel?.();\n };\n\n /**\n * 确定 or 完成\n */\n const handleConfirm = () => {\n onConfirm?.();\n };\n\n /**\n * 返回 or 取消\n */\n const handleCancel = () => {\n onCancel?.();\n };\n\n /** icon wrapper */\n const iconWrapper = (type: string) => {\n return iconType === SheetsIconType.bg ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n <View style={[styles.iconBg, { backgroundColor: themeColor.Fill1 }]}>\n {type === \"confirm\" ? (\n <Icon\n icon={Close}\n fill={themeColor.Bg}\n size={20}\n onClick={handleCancel}\n type={IconType.iconType.image}\n styles={{ borderRadius: 10 }}\n />\n ) : (\n <Icon\n icon={ArrowLeft}\n fill={themeColor.Bg}\n size={20}\n onClick={handleCancel}\n type={IconType.iconType.image}\n styles={{ borderRadius: 10 }}\n />\n )}\n </View>\n </TouchableWithoutFeedback>\n ) : type === \"confirm\" ? (\n <Icon\n icon={Close}\n fill={themeColor.Title}\n size={20}\n onClick={handleCancel}\n type={IconType.iconType.image}\n styles={{ borderRadius: 10 }}\n />\n ) : (\n <Icon\n icon={ArrowLeft}\n fill={themeColor.Title}\n size={20}\n onClick={handleCancel}\n type={IconType.iconType.image}\n styles={{ borderRadius: 10 }}\n />\n );\n };\n\n /** block占位 */\n const Block = () => {\n return <View style={styles.block} />;\n };\n\n const ArrowLeft = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/fb5b21a7cce47ddb6a0e298c1f362f1486824615.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/c4c4ea8f2a3c991e0d17d327466e7a31389e2ba2.png\";\n }\n }, []);\n\n const Close = useMemo(() => {\n if (colorMode === \"light\") {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/e5021b86d9477351022f6f91e20e735e2074283f.png\";\n } else {\n return \"https://picasso-static.xiaohongshu.com/fe-platform/612362486f95774c1dbdedd48318f969e35d810d.png\";\n }\n }, [colorMode]);\n\n /**\n * 最大高度\n */\n const maxHeight = useMemo(() => {\n const fullScreenHeight = Dimensions.get(\"screen\").height;\n const halfScreenHeight = Math.floor(fullScreenHeight / 2);\n const threeQuaterScreenHeight = Math.floor(fullScreenHeight * 0.75);\n return props.size === SheetsSize.half\n ? halfScreenHeight\n : props.size === SheetsSize.threeQuater\n ? threeQuaterScreenHeight\n : fullScreenHeight;\n }, [props.size]);\n\n return visible ? (\n <View style={[styles.wrapper, { zIndex: props.zIndex }]} testID=\"Sheets\">\n {mask ? (\n <TouchableWithoutFeedback onPress={handleMask}>\n <View\n style={[\n styles.mask,\n { backgroundColor: maskMode === SheetsMaskMode.light ? alwaysColor.MaskBg : \"rgba(0,0,0,0.8)\" },\n ]}\n ></View>\n </TouchableWithoutFeedback>\n ) : (\n <></>\n )}\n <View\n style={[\n styles.picker,\n { backgroundColor: themeColor.Bg2 },\n props.size === SheetsSize.auto ? {} : { maxHeight: maxHeight },\n ]}\n >\n {/** normal */}\n {showLabel ? (\n <View style={[styles.labelContainer, { backgroundColor: themeColor.Bg2 }]}>\n {cancel ? (\n <TouchableWithoutFeedback onPress={handleCancel}>\n {cancelType === SheetsActionType.text ? (\n <Text style={[styles.cancel, { color: themeColor.Description }]} testID=\"cancel\">\n {cancelText}\n </Text>\n ) : (\n iconWrapper(\"cancel\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n {label ? <Text style={[styles.label, { color: themeColor.Title }]}>{label}</Text> : <></>}\n {close ? (\n <TouchableWithoutFeedback onPress={handleConfirm}>\n {closeType === SheetsActionType.text ? (\n <Text style={[styles.confirm, { color: themeColor.Primary }]} testID=\"close\">\n {closeText}\n </Text>\n ) : (\n iconWrapper(\"confirm\")\n )}\n </TouchableWithoutFeedback>\n ) : (\n <Block />\n )}\n </View>\n ) : (\n <></>\n )}\n {children}\n\n {/** action */}\n {showAction ? (\n <View style={[styles.actionContainer]}>\n {cancel ? (\n <View style={styles.action}>\n <Button block onClick={handleCancel}>\n {cancelText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n {close ? (\n <View style={styles.action}>\n <Button block onClick={handleConfirm} type=\"primary\">\n {closeText}\n </Button>\n </View>\n ) : (\n <></>\n )}\n </View>\n ) : (\n <></>\n )}\n </View>\n </View>\n ) : (\n <></>\n );\n};\n\nSheets.defaultProps = SheetsDefaultProps;\n\nexport default Sheets;\n"],"names":["Sheets","props","visible","onCancel","onConfirm","children","label","mask","maskMode","cancelType","closeType","cancelText","closeText","sheetsType","cancel","close","iconType","size","themeColor","useThemeColor","colorMode","useColorMode","_useState","useState","_useState2","_slicedToArray","childHeight","setChildHeight","showLabel","useMemo","SheetsType","normal","showAction","action","handleMask","handleConfirm","handleCancel","iconWrapper","type","SheetsIconType","bg","React","createElement","TouchableWithoutFeedback","onPress","View","style","styles","iconBg","backgroundColor","Fill1","Icon","icon","Close","fill","Bg","onClick","IconType","image","borderRadius","ArrowLeft","Title","Block","block","maxHeight","fullScreenHeight","Dimensions","get","height","halfScreenHeight","Math","floor","threeQuaterScreenHeight","SheetsSize","half","threeQuater","wrapper","zIndex","testID","SheetsMaskMode","light","alwaysColor","MaskBg","Fragment","picker","Bg2","auto","labelContainer","SheetsActionType","text","Text","color","Description","confirm","Primary","actionContainer","Button","defaultProps","SheetsDefaultProps"],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { _ as _objectSpread2 } from '../../_chunks/wvaDNdQL.js';
|
|
|
2
2
|
import React__default from 'react';
|
|
3
3
|
import Sheets from './AnimatedSheets.js';
|
|
4
4
|
import Sheets$1 from './Sheets.js';
|
|
5
|
-
import { d as SheetsDefaultProps } from '../../_chunks/
|
|
5
|
+
import { d as SheetsDefaultProps } from '../../_chunks/CQDVLUyF.js';
|
|
6
6
|
import '../Portal/core/Portal.js';
|
|
7
7
|
import '../Portal/core/PortalHost.js';
|
|
8
8
|
import '../Portal/core/PortalProvider.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import Sheets from './AnimatedSheets.js';
|
|
2
2
|
export { default as Sheets } from './Sheets.js';
|
|
3
|
-
export { i as SheetsType } from '../../_chunks/
|
|
3
|
+
export { i as SheetsType } from '../../_chunks/CQDVLUyF.js';
|
|
4
4
|
export { default as useAnimatedSheets, useSheets } from './api.js';
|
|
5
5
|
import '../../_chunks/wvaDNdQL.js';
|
|
6
6
|
import 'react';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { c as SheetsActionType, d as SheetsDefaultProps, e as SheetsIconType, b as SheetsMaskMode,
|
|
1
|
+
export { c as SheetsActionType, d as SheetsDefaultProps, e as SheetsIconType, b as SheetsMaskMode, S as SheetsSize, a as SheetsType } from '../../../_chunks/CQDVLUyF.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { b as _slicedToArray } from '../../_chunks/wvaDNdQL.js';
|
|
2
2
|
import React__default, { useState, useMemo, useEffect } from 'react';
|
|
3
3
|
import { View, TouchableWithoutFeedback, Text } from 'react-native';
|
|
4
|
-
import { S as StepperDefaultProps } from '../../_chunks/
|
|
4
|
+
import { S as StepperDefaultProps } from '../../_chunks/B92MXD-p.js';
|
|
5
5
|
import { getStyles } from './styles.js';
|
|
6
6
|
import '../ConfigProvider/hooks/ConfigCache/ConfigCache.js';
|
|
7
7
|
import { useThemeColor } from '../ConfigProvider/hooks/themeToken/useThemeToken.js';
|
|
@@ -50,7 +50,9 @@ var Stepper = function Stepper(props) {
|
|
|
50
50
|
props === null || props === void 0 || (_props$onChange = props.onChange) === null || _props$onChange === void 0 || _props$onChange.call(props, newValue);
|
|
51
51
|
};
|
|
52
52
|
useEffect(function () {
|
|
53
|
-
|
|
53
|
+
if (props.isControl) {
|
|
54
|
+
setValue(props.value >= props.min && props.value <= props.max ? props.value : props.value < props.min ? props.min : props.value > props.max ? props.max : props.value);
|
|
55
|
+
}
|
|
54
56
|
}, [props.value, props.max, props.min]);
|
|
55
57
|
return /* @__PURE__ */React__default.createElement(View, {
|
|
56
58
|
style: styles.container
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stepper.js","sources":["../../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport { View, TouchableWithoutFeedback, Text } from \"react-native\";\nimport { RedsStepper, StepperDefaultProps } from \"./interface/index\";\nimport { getStyles } from \"./styles\";\nimport { useThemeColor } from \"../ConfigProvider\";\n\nconst Stepper = (props: RedsStepper) => {\n const themeColor = useThemeColor();\n\n const [_value, setValue] = useState(0);\n\n const styles = getStyles(themeColor);\n\n const minus = useMemo(() => {\n if (props.disable || (props.min !== undefined && props.min >= props.value!)) {\n return getStyles(themeColor).opacity;\n } else {\n return {};\n }\n }, [props.disable, props.max, props.value]);\n\n const add = useMemo(() => {\n if (props.disable || (props.max !== undefined && props.max <= props.value!)) {\n return styles.opacity;\n } else {\n return {};\n }\n }, [props.disable, props.max, props.value]);\n\n const handleNumber = (type: string) => {\n if (props.disable) return;\n let newValue = 0;\n if (type === \"min\") {\n if (props.min && props.min >= props.value! - 1) {\n newValue = props.min;\n } else {\n newValue = props.value! - 1;\n }\n } else {\n if (props.max && props.max <= props.value! + 1) {\n newValue = props.max;\n } else {\n newValue = props.value! + 1;\n }\n }\n setValue(newValue);\n props?.onChange?.(newValue);\n };\n\n useEffect(() => {\n setValue(\n
|
|
1
|
+
{"version":3,"file":"Stepper.js","sources":["../../../../src/components/Stepper/Stepper.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport { View, TouchableWithoutFeedback, Text } from \"react-native\";\nimport { RedsStepper, StepperDefaultProps } from \"./interface/index\";\nimport { getStyles } from \"./styles\";\nimport { useThemeColor } from \"../ConfigProvider\";\n\nconst Stepper = (props: RedsStepper) => {\n const themeColor = useThemeColor();\n\n const [_value, setValue] = useState(0);\n\n const styles = getStyles(themeColor);\n\n const minus = useMemo(() => {\n if (props.disable || (props.min !== undefined && props.min >= props.value!)) {\n return getStyles(themeColor).opacity;\n } else {\n return {};\n }\n }, [props.disable, props.max, props.value]);\n\n const add = useMemo(() => {\n if (props.disable || (props.max !== undefined && props.max <= props.value!)) {\n return styles.opacity;\n } else {\n return {};\n }\n }, [props.disable, props.max, props.value]);\n\n const handleNumber = (type: string) => {\n if (props.disable) return;\n let newValue = 0;\n if (type === \"min\") {\n if (props.min && props.min >= props.value! - 1) {\n newValue = props.min;\n } else {\n newValue = props.value! - 1;\n }\n } else {\n if (props.max && props.max <= props.value! + 1) {\n newValue = props.max;\n } else {\n newValue = props.value! + 1;\n }\n }\n setValue(newValue);\n props?.onChange?.(newValue);\n };\n\n useEffect(() => {\n if (props.isControl) {\n setValue(\n props.value! >= props.min! && props.value! <= props.max!\n ? props.value!\n : props.value! < props.min!\n ? props.min!\n : props.value! > props.max!\n ? props.max!\n : props.value!,\n );\n }\n }, [props.value, props.max, props.min]);\n\n return (\n <View style={styles.container}>\n <TouchableWithoutFeedback onPress={() => handleNumber(\"min\")}>\n <View style={[styles.icon, minus]}>\n <Text style={[styles.iconText]}>-</Text>\n </View>\n </TouchableWithoutFeedback>\n <Text style={styles.text}>{_value}</Text>\n <TouchableWithoutFeedback onPress={() => handleNumber(\"add\")}>\n <View style={[styles.icon, add]}>\n <Text style={[styles.iconText]}>+</Text>\n </View>\n </TouchableWithoutFeedback>\n </View>\n );\n};\n\nStepper.defaultProps = StepperDefaultProps;\n\nexport default Stepper;\n"],"names":["Stepper","props","themeColor","useThemeColor","_useState","useState","_useState2","_slicedToArray","_value","setValue","styles","getStyles","minus","useMemo","disable","min","value","opacity","max","add","handleNumber","type","_props$onChange","newValue","onChange","call","useEffect","isControl","React","createElement","View","style","container","TouchableWithoutFeedback","onPress","icon","Text","iconText","text","defaultProps","StepperDefaultProps"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { S as StepperDefaultProps } from '../../../_chunks/
|
|
1
|
+
export { S as StepperDefaultProps } from '../../../_chunks/B92MXD-p.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { b as _slicedToArray, _ as _objectSpread2, e as _toConsumableArray } from '../../_chunks/wvaDNdQL.js';
|
|
2
|
-
import React__default, { useState, useMemo, useEffect } from 'react';
|
|
3
|
-
import { View, TouchableWithoutFeedback, Text, ScrollView } from 'react-native';
|
|
2
|
+
import React__default, { useState, useRef, useMemo, useEffect } from 'react';
|
|
3
|
+
import { Animated, View, TouchableWithoutFeedback, Text, ScrollView } from 'react-native';
|
|
4
4
|
import { b as TabLayoutType, a as TabThemeType, c as TabDefaultProps } from '../../_chunks/1AfhncAQ.js';
|
|
5
5
|
import styles, { getRedsDropDownVariantStyles } from './styles.js';
|
|
6
6
|
import Icon from '../Icon/Icon.js';
|
|
@@ -22,6 +22,17 @@ var Tabs = function Tabs(props) {
|
|
|
22
22
|
_useState2 = _slicedToArray(_useState, 2),
|
|
23
23
|
activeIndex = _useState2[0],
|
|
24
24
|
setActiveIndex = _useState2[1];
|
|
25
|
+
var childRefs = useRef([]);
|
|
26
|
+
var parentRef = useRef(null);
|
|
27
|
+
var _useState3 = useState([]),
|
|
28
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
29
|
+
offsets = _useState4[0],
|
|
30
|
+
setOffsets = _useState4[1];
|
|
31
|
+
var _useState5 = useState([]),
|
|
32
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
33
|
+
widths = _useState6[0],
|
|
34
|
+
setWidths = _useState6[1];
|
|
35
|
+
var offset = useRef(new Animated.Value(0)).current;
|
|
25
36
|
var list = useMemo(function () {
|
|
26
37
|
return React__default.Children.map(props.children, function (child) {
|
|
27
38
|
if (/*#__PURE__*/React__default.isValidElement(child)) {
|
|
@@ -32,9 +43,6 @@ var Tabs = function Tabs(props) {
|
|
|
32
43
|
var containerStyle = useMemo(function () {
|
|
33
44
|
return [getRedsDropDownVariantStyles().backgroundColor.bg, (props === null || props === void 0 ? void 0 : props.layout) === TabLayoutType.left ? styles.tabLeftContainer : (props === null || props === void 0 ? void 0 : props.layout) === TabLayoutType.middle ? styles.tabCenterContainer : styles.tabSpaceContainer];
|
|
34
45
|
}, [props === null || props === void 0 ? void 0 : props.layout]);
|
|
35
|
-
var tabItemStyle = function tabItemStyle(item) {
|
|
36
|
-
return (props === null || props === void 0 ? void 0 : props.theme) === TabThemeType.capsule && props.active === item.value ? [styles.tabItem, styles.capsule, getRedsDropDownVariantStyles().backgroundColor.fill1] : [styles.tabItem];
|
|
37
|
-
};
|
|
38
46
|
var tabItemStyles = useMemo(function () {
|
|
39
47
|
return _objectSpread2({
|
|
40
48
|
paddingLeft: props.tabPadding,
|
|
@@ -44,6 +52,18 @@ var Tabs = function Tabs(props) {
|
|
|
44
52
|
marginLeft: Math.floor(props.spaceWidth / 2)
|
|
45
53
|
} : {});
|
|
46
54
|
}, [props.tabPadding, props.spaceWidth]);
|
|
55
|
+
useEffect(function () {
|
|
56
|
+
var activeIdx = 0;
|
|
57
|
+
list.forEach(function (i, idx) {
|
|
58
|
+
if (i.value === props.active) {
|
|
59
|
+
activeIdx = idx;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
setActiveIndex(activeIdx);
|
|
63
|
+
}, [list, props.active]);
|
|
64
|
+
var tabItemStyle = function tabItemStyle(item) {
|
|
65
|
+
return (props === null || props === void 0 ? void 0 : props.theme) === TabThemeType.capsule && props.active === item.value ? [styles.tabItem, styles.capsule, getRedsDropDownVariantStyles().backgroundColor.fill1] : [styles.tabItem];
|
|
66
|
+
};
|
|
47
67
|
var showIcon = function showIcon(iconPosition, item) {
|
|
48
68
|
var _item$iconProps;
|
|
49
69
|
return (props === null || props === void 0 ? void 0 : props.labelType) === iconPosition && ((_item$iconProps = item.iconProps) === null || _item$iconProps === void 0 ? void 0 : _item$iconProps.icon);
|
|
@@ -55,41 +75,61 @@ var Tabs = function Tabs(props) {
|
|
|
55
75
|
height: ((_item$iconProps3 = item.iconProps) === null || _item$iconProps3 === void 0 ? void 0 : _item$iconProps3.size) || 12
|
|
56
76
|
};
|
|
57
77
|
};
|
|
78
|
+
var iconColor = function iconColor(item) {
|
|
79
|
+
var _item$iconProps4;
|
|
80
|
+
return props.active === item.value ? (_item$iconProps4 = item.iconProps) === null || _item$iconProps4 === void 0 ? void 0 : _item$iconProps4.fill : "";
|
|
81
|
+
};
|
|
58
82
|
var Wrapper = function Wrapper(wrapperProps) {
|
|
59
83
|
return (props === null || props === void 0 ? void 0 : props.layout) === TabLayoutType.left ? /* @__PURE__ */React__default.createElement(ScrollView, {
|
|
60
|
-
style: [wrapperProps.style],
|
|
61
84
|
horizontal: true,
|
|
62
85
|
testID: wrapperProps.testID,
|
|
63
86
|
showsHorizontalScrollIndicator: false
|
|
64
|
-
}, wrapperProps.children) :
|
|
65
|
-
style: wrapperProps.style,
|
|
66
|
-
testID: wrapperProps.testID
|
|
67
|
-
}, wrapperProps.children);
|
|
87
|
+
}, wrapperProps.children) : wrapperProps.children;
|
|
68
88
|
};
|
|
69
89
|
var BadgeContainer = function BadgeContainer(badgeProps) {
|
|
70
|
-
return props !== null && props !== void 0 && props.badge ? /* @__PURE__ */React__default.createElement(Badge, _objectSpread2({}, badgeProps.badgeProps),
|
|
90
|
+
return props !== null && props !== void 0 && props.badge ? /* @__PURE__ */React__default.createElement(Badge, _objectSpread2(_objectSpread2({}, badgeProps.badgeProps), {}, {
|
|
91
|
+
key: badgeProps.key
|
|
92
|
+
}), /* @__PURE__ */React__default.createElement(View, {
|
|
71
93
|
style: [styles.flexCenter, {
|
|
72
94
|
height: "100%"
|
|
73
|
-
}]
|
|
95
|
+
}],
|
|
96
|
+
key: badgeProps.key
|
|
74
97
|
}, badgeProps.children)) : badgeProps.children;
|
|
75
98
|
};
|
|
76
99
|
useEffect(function () {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
100
|
+
console.log("offsets?.[activeIndex]", offsets === null || offsets === void 0 ? void 0 : offsets[activeIndex]);
|
|
101
|
+
if (offsets !== null && offsets !== void 0 && offsets[activeIndex]) {
|
|
102
|
+
Animated.timing(offset, {
|
|
103
|
+
toValue: ((offsets === null || offsets === void 0 ? void 0 : offsets[activeIndex]) || 0) + 1,
|
|
104
|
+
duration: 500,
|
|
105
|
+
useNativeDriver: false
|
|
106
|
+
}).start(function () {
|
|
107
|
+
offset.setValue(((offsets === null || offsets === void 0 ? void 0 : offsets[activeIndex]) || 0) + 1);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}, [activeIndex, offsets, offset]);
|
|
111
|
+
return /* @__PURE__ */React__default.createElement(React__default.Fragment, null, /* @__PURE__ */React__default.createElement(Wrapper, {
|
|
87
112
|
testID: "TabContainer"
|
|
113
|
+
}, /* @__PURE__ */React__default.createElement(View, {
|
|
114
|
+
style: {
|
|
115
|
+
position: "relative"
|
|
116
|
+
}
|
|
117
|
+
}, props.theme === TabThemeType.underline ? /* @__PURE__ */React__default.createElement(Animated.View, {
|
|
118
|
+
style: [styles.underline, {
|
|
119
|
+
width: ((widths === null || widths === void 0 ? void 0 : widths[activeIndex]) || 0) - 2
|
|
120
|
+
}, {
|
|
121
|
+
transform: [{
|
|
122
|
+
translateX: offset
|
|
123
|
+
}]
|
|
124
|
+
}, getRedsDropDownVariantStyles().backgroundColor.primary]
|
|
125
|
+
}) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null), /* @__PURE__ */React__default.createElement(View, {
|
|
126
|
+
style: [].concat(_toConsumableArray(containerStyle), [props.containerStyle]),
|
|
127
|
+
ref: parentRef
|
|
88
128
|
}, list.map(function (item, index) {
|
|
89
129
|
var _item$iconProps5, _item$iconProps6, _item$iconProps7, _item$iconProps8, _item$iconProps9, _item$iconProps10;
|
|
90
130
|
return /* @__PURE__ */React__default.createElement(BadgeContainer, {
|
|
91
|
-
|
|
92
|
-
|
|
131
|
+
badgeProps: item === null || item === void 0 ? void 0 : item.badgeProps,
|
|
132
|
+
key: "".concat(item.name).concat(item.value)
|
|
93
133
|
}, /* @__PURE__ */React__default.createElement(TouchableWithoutFeedback, {
|
|
94
134
|
onPress: function onPress() {
|
|
95
135
|
var _props$onChange;
|
|
@@ -104,32 +144,55 @@ var Tabs = function Tabs(props) {
|
|
|
104
144
|
style: [styles.leftIcon, iconStyle(item)]
|
|
105
145
|
}, /* @__PURE__ */React__default.createElement(Icon, {
|
|
106
146
|
icon: (_item$iconProps5 = item.iconProps) === null || _item$iconProps5 === void 0 ? void 0 : _item$iconProps5.icon,
|
|
147
|
+
fill: iconColor(item),
|
|
107
148
|
size: ((_item$iconProps6 = item.iconProps) === null || _item$iconProps6 === void 0 ? void 0 : _item$iconProps6.size) || 12,
|
|
108
149
|
type: (_item$iconProps7 = item.iconProps) === null || _item$iconProps7 === void 0 ? void 0 : _item$iconProps7.type
|
|
109
|
-
})) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null), /* @__PURE__ */React__default.createElement(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
150
|
+
})) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null), /* @__PURE__ */React__default.createElement(Text, {
|
|
151
|
+
ref: function ref(el) {
|
|
152
|
+
return childRefs.current[index] = el;
|
|
153
|
+
},
|
|
154
|
+
style: [styles.tabItemTextWrapper, props.active === item.value ? [styles.activeText, getRedsDropDownVariantStyles().color.title] : [styles.normalText, getRedsDropDownVariantStyles().color.description]],
|
|
155
|
+
onLayout: function onLayout() {
|
|
156
|
+
childRefs.current[index].measureLayout(parentRef.current, function (x, y, width, height) {
|
|
157
|
+
if (offsets.filter(function (i) {
|
|
158
|
+
return i;
|
|
159
|
+
}).length !== list.length) {
|
|
160
|
+
setOffsets(function (offsets2) {
|
|
161
|
+
if (!offsets2[index]) {
|
|
162
|
+
offsets2[index] = x;
|
|
163
|
+
}
|
|
164
|
+
return _toConsumableArray(offsets2);
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
if (widths.filter(function (i) {
|
|
168
|
+
return i;
|
|
169
|
+
}).length !== list.length) {
|
|
170
|
+
setWidths(function (widths2) {
|
|
171
|
+
if (!widths2[index]) {
|
|
172
|
+
widths2[index] = width;
|
|
173
|
+
}
|
|
174
|
+
return _toConsumableArray(widths2);
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}, function (error) {
|
|
178
|
+
console.error("error", error);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}, item.name), item.labelNumber ? /* @__PURE__ */React__default.createElement(View, {
|
|
118
182
|
style: styles.labelNumber
|
|
119
183
|
}, /* @__PURE__ */React__default.createElement(View, {
|
|
120
184
|
style: props.active === item.value ? [styles.activeLabelDot, getRedsDropDownVariantStyles().backgroundColor.title] : [styles.normalLabelDot, getRedsDropDownVariantStyles().backgroundColor.description]
|
|
121
185
|
}), /* @__PURE__ */React__default.createElement(Text, {
|
|
122
186
|
style: props.active === item.value ? [styles.activeText, getRedsDropDownVariantStyles().color.title] : [styles.normalText, getRedsDropDownVariantStyles().color.description]
|
|
123
|
-
}, item.labelNumber)) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null)
|
|
124
|
-
style: [styles.underline, getRedsDropDownVariantStyles().backgroundColor.primary]
|
|
125
|
-
}) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null)), showIcon("rightIcon", item) ? /* @__PURE__ */React__default.createElement(View, {
|
|
187
|
+
}, item.labelNumber)) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null), showIcon("rightIcon", item) ? /* @__PURE__ */React__default.createElement(View, {
|
|
126
188
|
style: [styles.rightIcon, iconStyle(item)]
|
|
127
189
|
}, /* @__PURE__ */React__default.createElement(Icon, {
|
|
128
190
|
icon: (_item$iconProps8 = item.iconProps) === null || _item$iconProps8 === void 0 ? void 0 : _item$iconProps8.icon,
|
|
191
|
+
fill: iconColor(item),
|
|
129
192
|
size: ((_item$iconProps9 = item.iconProps) === null || _item$iconProps9 === void 0 ? void 0 : _item$iconProps9.size) || 12,
|
|
130
193
|
type: (_item$iconProps10 = item.iconProps) === null || _item$iconProps10 === void 0 ? void 0 : _item$iconProps10.type
|
|
131
194
|
})) : /* @__PURE__ */React__default.createElement(React__default.Fragment, null))));
|
|
132
|
-
})), props.children[activeIndex]);
|
|
195
|
+
})))), props.children[activeIndex]);
|
|
133
196
|
};
|
|
134
197
|
Tabs.defaultProps = TabDefaultProps;
|
|
135
198
|
|