@xhsreds/reds-rn-next 0.1.3 → 0.1.4
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-0.json +1 -1
- package/coverage/.tmp/coverage-1.json +1 -1
- 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-15.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-17.json +1 -1
- package/coverage/.tmp/coverage-19.json +1 -1
- package/coverage/.tmp/coverage-2.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-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-3.json +1 -1
- package/coverage/.tmp/coverage-31.json +1 -1
- package/coverage/.tmp/coverage-32.json +1 -0
- package/coverage/.tmp/coverage-4.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-6.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/_chunks/GhFTd1qc.js +22 -0
- package/lib/cjs/_chunks/GhFTd1qc.js.map +1 -0
- package/lib/cjs/components/Alert/Alert.js +143 -0
- package/lib/cjs/components/Alert/Alert.js.map +1 -0
- package/lib/cjs/components/Alert/index.js +145 -0
- package/lib/cjs/components/Alert/index.js.map +1 -0
- package/lib/cjs/components/Alert/interface/index.js +8 -0
- package/lib/cjs/components/Alert/interface/index.js.map +1 -0
- package/lib/cjs/components/Alert/styles.js +124 -0
- package/lib/cjs/components/Alert/styles.js.map +1 -0
- package/lib/cjs/components/Avatar/Avatar.js +1 -1
- package/lib/cjs/components/Avatar/Avatar.js.map +1 -1
- package/lib/cjs/components/AvatarGroup/AvatarGroup.js +92 -99
- package/lib/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/lib/cjs/components/AvatarGroup/index.js +45 -11
- package/lib/cjs/components/AvatarGroup/index.js.map +1 -1
- package/lib/cjs/components/Button/Button.js +1 -1
- package/lib/cjs/components/Button/Button.js.map +1 -1
- package/lib/cjs/components/FAB/FAB.js +1 -1
- package/lib/cjs/components/FAB/FAB.js.map +1 -1
- package/lib/cjs/components/Image/hook/index.js +2 -2
- package/lib/cjs/components/Image/hook/index.js.map +1 -1
- package/lib/cjs/components/ImagePreview/ImagePreview.js +88 -66
- package/lib/cjs/components/ImagePreview/ImagePreview.js.map +1 -1
- package/lib/cjs/components/ImagePreview/ImageViewer3.js +3 -3
- package/lib/cjs/components/ImagePreview/ImageViewer3.js.map +1 -1
- package/lib/cjs/components/ImagePreview/index.js +48 -9
- package/lib/cjs/components/ImagePreview/index.js.map +1 -1
- package/lib/cjs/components/List/ListItem/ListItem.js +86 -111
- package/lib/cjs/components/List/ListItem/ListItem.js.map +1 -1
- package/lib/cjs/components/List/index.js +44 -9
- package/lib/cjs/components/List/index.js.map +1 -1
- package/lib/cjs/components/Tag/Tag.js +1 -1
- package/lib/cjs/components/Tag/Tag.js.map +1 -1
- package/lib/cjs/components/Text/hooks/loadFontFromFile.js +1 -1
- package/lib/cjs/components/Text/hooks/loadFontFromFile.js.map +1 -1
- package/lib/cjs/index.js +244 -30
- package/lib/cjs/index.js.map +1 -1
- package/lib/esm/_chunks/BKEXyO9m.js +19 -0
- package/lib/esm/_chunks/BKEXyO9m.js.map +1 -0
- package/lib/esm/_chunks/{D-HreRcG.js → CwHnr-H1.js} +2 -2
- package/lib/esm/_chunks/{D-HreRcG.js.map → CwHnr-H1.js.map} +1 -1
- package/lib/esm/components/ActionSheets/ActionSheets.js +1 -1
- package/lib/esm/components/ActionSheets/index.js +1 -1
- package/lib/esm/components/Alert/Alert.js +135 -0
- package/lib/esm/components/Alert/Alert.js.map +1 -0
- package/lib/esm/components/Alert/index.js +139 -0
- package/lib/esm/components/Alert/index.js.map +1 -0
- package/lib/esm/components/Alert/interface/index.js +2 -0
- package/lib/esm/components/Alert/interface/index.js.map +1 -0
- package/lib/esm/components/Alert/styles.js +122 -0
- package/lib/esm/components/Alert/styles.js.map +1 -0
- package/lib/esm/components/Avatar/Avatar.js +2 -2
- package/lib/esm/components/Avatar/Avatar.js.map +1 -1
- package/lib/esm/components/Avatar/index.js +1 -1
- package/lib/esm/components/Avatar/styles.js +1 -1
- package/lib/esm/components/AvatarGroup/AvatarGroup.js +90 -101
- package/lib/esm/components/AvatarGroup/AvatarGroup.js.map +1 -1
- package/lib/esm/components/AvatarGroup/index.js +43 -9
- package/lib/esm/components/AvatarGroup/index.js.map +1 -1
- package/lib/esm/components/Badge/Badge.js +1 -1
- package/lib/esm/components/Badge/index.js +1 -1
- package/lib/esm/components/BottomBar/BottomBar.js +1 -1
- package/lib/esm/components/BottomBar/index.js +1 -1
- package/lib/esm/components/Button/Button.js +2 -2
- package/lib/esm/components/Button/Button.js.map +1 -1
- package/lib/esm/components/Button/index.js +1 -1
- package/lib/esm/components/Button/styleMap.js +1 -1
- package/lib/esm/components/Collapse/Collapse.js +1 -1
- package/lib/esm/components/Collapse/Item/Item.js +1 -1
- package/lib/esm/components/Collapse/Item/styles.js +1 -1
- package/lib/esm/components/Collapse/index.js +1 -1
- package/lib/esm/components/ConfigProvider/ConfigProvider.js +1 -1
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +1 -1
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js +1 -1
- package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js +1 -1
- package/lib/esm/components/ConfigProvider/index.js +1 -1
- package/lib/esm/components/Divider/Divider.js +1 -1
- package/lib/esm/components/Divider/index.js +1 -1
- package/lib/esm/components/Divider/styles.js +1 -1
- package/lib/esm/components/DropDown/DropDown.js +1 -1
- package/lib/esm/components/DropDown/DropDownItem.js +1 -1
- package/lib/esm/components/DropDown/index.js +1 -1
- package/lib/esm/components/DropDown/styles.js +1 -1
- package/lib/esm/components/Empty/Empty.js +1 -1
- package/lib/esm/components/Empty/index.js +1 -1
- package/lib/esm/components/Empty/styles.js +1 -1
- package/lib/esm/components/FAB/FAB.js +2 -2
- package/lib/esm/components/FAB/FAB.js.map +1 -1
- package/lib/esm/components/FAB/index.js +1 -1
- package/lib/esm/components/Image/Image.js +1 -1
- package/lib/esm/components/Image/hook/index.js +3 -3
- package/lib/esm/components/Image/hook/index.js.map +1 -1
- package/lib/esm/components/Image/index.js +1 -1
- package/lib/esm/components/ImagePreview/Gesture/useGesture.js +1 -1
- package/lib/esm/components/ImagePreview/ImagePreview.js +87 -69
- package/lib/esm/components/ImagePreview/ImagePreview.js.map +1 -1
- package/lib/esm/components/ImagePreview/ImageViewer.js +1 -1
- package/lib/esm/components/ImagePreview/ImageViewer3.js +4 -4
- package/lib/esm/components/ImagePreview/ImageViewer3.js.map +1 -1
- package/lib/esm/components/ImagePreview/index.js +47 -8
- package/lib/esm/components/ImagePreview/index.js.map +1 -1
- package/lib/esm/components/List/ListItem/ListItem.js +84 -113
- package/lib/esm/components/List/ListItem/ListItem.js.map +1 -1
- package/lib/esm/components/List/index.js +43 -8
- package/lib/esm/components/List/index.js.map +1 -1
- package/lib/esm/components/Picker/Picker.js +1 -1
- package/lib/esm/components/Picker/index.js +1 -1
- package/lib/esm/components/PickerView/PickerView.js +1 -1
- package/lib/esm/components/PickerView/Wheel.js +1 -1
- package/lib/esm/components/PickerView/index.js +1 -1
- package/lib/esm/components/Popover/Popover.js +1 -1
- package/lib/esm/components/Popover/component.js +1 -1
- package/lib/esm/components/Popover/hook.js +1 -1
- package/lib/esm/components/Popover/index.js +1 -1
- package/lib/esm/components/Portal/core/PortalProvider.js +1 -1
- package/lib/esm/components/Portal/index.js +1 -1
- package/lib/esm/components/Progress/Progress.js +1 -1
- package/lib/esm/components/Progress/index.js +1 -1
- package/lib/esm/components/ProgressIndicator/ProgressIndicator.js +1 -1
- package/lib/esm/components/ProgressIndicator/index.js +1 -1
- package/lib/esm/components/ProgressIndicator/styles.js +1 -1
- package/lib/esm/components/PullRefresh/PullRefresh.js +1 -1
- package/lib/esm/components/PullRefresh/component.js +1 -1
- package/lib/esm/components/PullRefresh/index.js +1 -1
- package/lib/esm/components/Result/Result.js +1 -1
- package/lib/esm/components/Result/index.js +1 -1
- package/lib/esm/components/Result/styles.js +1 -1
- package/lib/esm/components/Sheets/Sheets.js +1 -1
- package/lib/esm/components/Sheets/index.js +1 -1
- package/lib/esm/components/Silder/Silder.js +1 -1
- package/lib/esm/components/Silder/index.js +1 -1
- package/lib/esm/components/Skeleton/Item/SkeletonItem.js +1 -1
- package/lib/esm/components/Skeleton/Skeleton.js +1 -1
- package/lib/esm/components/Skeleton/index.js +1 -1
- package/lib/esm/components/Switch/Switch.js +1 -1
- package/lib/esm/components/Switch/index.js +1 -1
- package/lib/esm/components/Tab/Tab.js +1 -1
- package/lib/esm/components/Tab/index.js +1 -1
- package/lib/esm/components/Tab/styles.js +1 -1
- package/lib/esm/components/TabBar/TabBar.js +1 -1
- package/lib/esm/components/TabBar/index.js +1 -1
- package/lib/esm/components/Tag/Tag.js +2 -2
- package/lib/esm/components/Tag/Tag.js.map +1 -1
- package/lib/esm/components/Tag/index.js +1 -1
- package/lib/esm/components/Text/Text.js +1 -1
- package/lib/esm/components/Text/hooks/cloneContainer.js +1 -1
- package/lib/esm/components/Text/hooks/index.js +1 -1
- package/lib/esm/components/Text/hooks/loadFontFromFile.js +2 -2
- package/lib/esm/components/Text/hooks/loadFontFromFile.js.map +1 -1
- package/lib/esm/components/Text/index.js +1 -1
- package/lib/esm/components/Text/styles.js +1 -1
- package/lib/esm/components/Toast/Toast.js +1 -1
- package/lib/esm/components/Toast/api.js +1 -1
- package/lib/esm/components/Toast/index.js +1 -1
- package/lib/esm/components/Toast/styles.js +1 -1
- package/lib/esm/index.js +247 -28
- package/lib/esm/index.js.map +1 -1
- package/lib/types/components/Alert/Alert.d.ts +4 -0
- package/lib/types/components/Alert/demo/index.d.ts +2 -0
- package/lib/types/components/Alert/index.d.ts +4 -0
- package/lib/types/components/Alert/interface/index.d.ts +35 -0
- package/lib/types/components/Alert/styles.d.ts +108 -0
- package/lib/types/components/Alert/test/index.bench.d.ts +1 -0
- package/lib/types/components/Alert/test/index.test.d.ts +1 -0
- package/lib/types/components/Alert/test/paper.bench.d.ts +1 -0
- package/lib/types/index.d.ts +4 -0
- package/package.json +2 -2
- package/src/components/Alert/Alert.tsx +170 -0
- package/src/components/Alert/demo/index.tsx +234 -0
- package/src/components/Alert/doc/index.mdx +37 -0
- package/src/components/Alert/index.ts +5 -0
- package/src/components/Alert/interface/index.ts +35 -0
- package/src/components/Alert/styles.ts +116 -0
- package/src/components/Alert/test/__snapshots__/index.test.tsx.snap +519 -0
- package/src/components/Alert/test/index.bench.tsx +13 -0
- package/src/components/Alert/test/index.test.tsx +62 -0
- package/src/components/Alert/test/paper.bench.tsx +26 -0
- package/src/index.ts +15 -0
package/lib/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/components/Alert/Alert.tsx","../../src/components/List/ListItem/ListItem.tsx","../../src/components/ImagePreview/ImagePreview.tsx","../../src/components/AvatarGroup/AvatarGroup.tsx","../../src/index.ts"],"sourcesContent":["import React, { useState, useEffect, useCallback, useRef } from \"react\";\nimport {\n View,\n Text,\n Modal,\n Image,\n ScrollView,\n TouchableWithoutFeedback,\n StyleSheet,\n GestureResponderEvent,\n Animated,\n} from \"react-native\";\nimport { RedsAlert, AlertDefaultProps } from \"./interface\";\nimport { Button, Divider, Portal } from \"../../index\";\nimport { style } from \"./styles\";\n\n// const scrollViewMask = {\n// default: \"https://picasso-static.xiaohongshu.com/fe-platform/d3fab8f89c0d2daa69ecaa87580c8ff42f330a80.png\",\n// dark: \"https://picasso-static.xiaohongshu.com/fe-platform/953a4a587c93dadda6f4ded4f732c50cf703ac99.png\",\n// };\nconst Alert: React.FC<RedsAlert> = (props) => {\n const finalProps = { ...AlertDefaultProps, ...props };\n const {\n show,\n title,\n message,\n confirmText,\n cancelText,\n onConfirm,\n onCancel,\n onOpen,\n onClose,\n align,\n // showScrollOverlay,\n footerLayout,\n showConfirmButton,\n showCancelButton,\n mask,\n footerType,\n header,\n footer,\n children,\n } = finalProps;\n\n const styles = style(props);\n // const [hasScrollToBottom, setHasScrollToBottom] = useState(true);\n const fadeAnim = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n if (show && onOpen) onOpen();\n if (!show && onClose) onClose();\n }, [show]);\n\n const handleConfirm = (e: GestureResponderEvent) => {\n if (onConfirm) onConfirm(e);\n };\n\n const handleCancel = (e: GestureResponderEvent) => {\n if (onCancel) onCancel(e);\n };\n\n // const handleScrollView = useCallback(\n // (e: any) => {\n // const offsetY = e.nativeEvent.contentOffset.y;\n // const contentSizeHeight = e.nativeEvent.contentSize.height;\n // var containerScrollHeight = e.nativeEvent.layoutMeasurement.height;\n // if (offsetY + containerScrollHeight + 30 >= contentSizeHeight) {\n // if (hasScrollToBottom) setHasScrollToBottom(false);\n // } else {\n // if (!hasScrollToBottom) setHasScrollToBottom(true);\n // }\n // },\n // [hasScrollToBottom],\n // );\n\n // const [canScroll, setCanScroll] = useState(false);\n\n // const handleContentSizeChange = (contentWidth: number, contentHeight: number) => {\n // if (contentHeight > 135) {\n // setCanScroll(true);\n // } else {\n // setCanScroll(false);\n // }\n // };\n\n return show ? (\n <Portal>\n {mask && (\n <TouchableWithoutFeedback>\n <View style={styles.modalOverlay} />\n </TouchableWithoutFeedback>\n )}\n <Animated.View\n style={[\n styles.centeredView,\n {\n transform: [\n {\n scale: fadeAnim.interpolate({\n inputRange: [0, 1],\n outputRange: [1, 1],\n }),\n },\n ],\n },\n ]}\n >\n <View style={[styles.alertContainer]}>\n {header}\n <View style={styles.alertContent}>\n <Text style={styles.title}>{title}</Text>\n {message ? (\n <ScrollView\n // onContentSizeChange={handleContentSizeChange}\n // onScroll={handleScrollView}\n style={[styles.message]}\n scrollEventThrottle={16}\n >\n <Text style={[styles.messageText, align === \"left\" && styles.messageLeft]}>{message}</Text>\n </ScrollView>\n ) : (\n children\n )}\n {/* {showScrollOverlay && hasScrollToBottom && canScroll ? (\n <Image source={{ uri: scrollViewMask.default }} style={styles.scrollOverlay} />\n ) : null} */}\n </View>\n {footer ? (\n footer\n ) : (\n <View\n style={[\n styles.footer,\n footerLayout === \"vertical\" ? styles.footerVertical : styles.footerHorizontal,\n footerType === \"text\" && styles.footerText,\n ]}\n >\n {showCancelButton && (\n <Button\n variant={footerType === \"text\" ? \"text\" : \"outline\"}\n onClick={handleCancel}\n style={footerLayout === \"vertical\" ? styles.verButton : styles.button}\n >\n {cancelText}\n </Button>\n )}\n {footerType === \"text\" && showCancelButton && footerLayout !== \"vertical\" && (\n <View style={styles.dividerBox}>\n <Divider direction={\"vertical\"} size={24} />\n </View>\n )}\n {showConfirmButton && (\n <Button\n type=\"primary\"\n variant={footerType === \"text\" ? \"text\" : \"fill\"}\n onClick={handleConfirm}\n style={footerType === \"text\" || footerLayout === \"vertical\" ? styles.button : styles.confirmButton}\n >\n {confirmText}\n </Button>\n )}\n </View>\n )}\n </View>\n </Animated.View>\n </Portal>\n ) : null;\n};\n\nexport default Alert;\n","import React, { useEffect, useRef, useState, ReactNode } from \"react\";\nimport { View, Text, ViewStyle, Image } from \"react-native\";\nimport { useListContext } from \"./ListContext\";\nimport styles from \"../styles\";\nimport { Icon } from \"../../../index\";\nimport { ArrowRight } from \"@xhs/reder-icon-svg\";\n\nexport interface RedsListItem {\n title: string;\n subtitle?: string;\n actionText?: string;\n size?: \"regular\" | \"expand\";\n arrow?: boolean;\n prefix?: ReactNode;\n action?: ReactNode;\n}\n\nconst ListItem: React.FC<RedsListItem> = ({\n title,\n subtitle,\n actionText,\n size = \"regular\",\n arrow = false,\n prefix,\n action,\n}) => {\n const { registerChild, unregisterChild } = useListContext();\n const [lineItem, setLineItem] = useState(false);\n\n const childInfo = {\n setLine: (value: boolean) => setLineItem(value),\n };\n\n useEffect(() => {\n registerChild(childInfo);\n return () => unregisterChild(childInfo);\n }, []);\n\n const listItemSizeToHeight = {\n regular: 48,\n expand: 60,\n };\n\n return (\n <View style={[styles.listItem, { height: listItemSizeToHeight[size] }, size === \"expand\" && styles.expand]}>\n {prefix && <View style={styles.prefix}>{prefix}</View>}\n <View style={styles.contentBox}>\n <View style={styles.contentContainer}>\n <View style={styles.textContainer}>\n <Text style={styles.title}>{title}</Text>\n {size === \"expand\" && subtitle && <Text style={styles.subtitle}>{subtitle}</Text>}\n </View>\n <View style={styles.tailContainer}>\n {action ? (\n <View style={styles.tail}>{action}</View>\n ) : (\n <View style={styles.tail}>\n <Text style={styles.tailText}>{actionText}</Text>\n {arrow && <Icon size={18} fill={\"rgba(0, 0, 0, 0.27)\"} icon={ArrowRight} />}\n </View>\n )}\n </View>\n </View>\n {lineItem && <View style={styles.hr}></View>}\n </View>\n </View>\n );\n};\n\nexport default ListItem;\n","import React, { useState, useRef, useEffect, useMemo, useCallback } from \"react\";\nimport { View, Text, TouchableWithoutFeedback, Animated, GestureResponderEvent, PanResponder } from \"react-native\";\nimport { RedsImagePreview, ImagePreviewDefaultProps } from \"./interface/index\";\nimport styles from \"./styles\";\nimport ImageContainer from \"./ImageContainer\";\nimport ImageViewer from \"./ImageViewer\";\n// import ImageViewer2 from \"./ImageViewer2\";\nimport { Image } from \"../../\";\n// import { GestureHandlerRootView } from \"react-native-gesture-handler\";\n\nconst ImagePreview = ({ removePortal }: any) => {\n return (\n <View\n style={{\n position: \"absolute\",\n backgroundColor: \"#00000033\",\n width: \"100%\",\n height: \"100%\",\n }}\n >\n <ImageViewer onClose={removePortal}>\n <Image\n width=\"100%\"\n height=\"100%\"\n resizeMode=\"contain\"\n src=\"https://picasso-static.xiaohongshu.com/fe-platform/167754d83b112dc155edd2ae5dc7f9ced481bba3.webp\"\n />\n </ImageViewer>\n </View>\n );\n};\n\nImagePreview.defaultProps = ImagePreviewDefaultProps;\n\nexport default ImagePreview;\n","import React, { useMemo, FC, useRef, memo, forwardRef } from \"react\";\nimport { View, StyleSheet, Animated } from \"react-native\";\nimport { RedsAvatarGroup, AvatarGroupDefaultProps } from \"./interface\";\nimport { Avatar } from \"../../index\";\nimport { lightColor, typography, alwaysColor } from \"@xhsreds/reds-token-next\";\n\nconst AvatarGroup = (props: RedsAvatarGroup, ref: any) => {\n const { size = AvatarGroupDefaultProps.size, avatars = [], avatarProps, maxCount, groupStyle = {} } = props;\n\n const styles = {\n outContainer: {\n flexDirection: \"row\" as \"row\",\n },\n avatarContainerStyle: {\n marginRight:\n typeof size === \"number\" ? (size > 20 ? -4 : -2) : ((size === \"large\" || size === \"xlarge\") && -4) || -2,\n },\n };\n\n const avatarList = useMemo(() => {\n let renderAvatars = [];\n const count = maxCount ? Math.min(avatars.length, maxCount) : avatars.length;\n for (let index = 0; index < count; index++) {\n renderAvatars.push(\n <Avatar\n key={index}\n size={size}\n imageUrl={avatars[index]?.url ? avatars[index]?.url : avatars[index]}\n containerStyle={StyleSheet.flatten([styles.avatarContainerStyle, { zIndex: -index }])}\n borderNum={0.5}\n outlineColor={lightColor.White}\n type={\"live\"}\n showTag={false}\n {...avatarProps}\n />,\n );\n }\n return renderAvatars;\n }, [size, avatars, groupStyle, maxCount, avatarProps]);\n\n return (\n <View ref={ref} style={StyleSheet.flatten([styles.outContainer, groupStyle])}>\n {avatarList}\n </View>\n );\n};\n\nexport default memo(forwardRef(AvatarGroup));\n","declare global {\n var GLOBAL: any;\n}\ntry {\n if (typeof GLOBAL !== \"undefined\" && GLOBAL?.eaglet) {\n GLOBAL?.eaglet?.push?.({\n measurement_name: \"reds_component_usage\",\n measurement_data: {\n platform: \"rn\",\n },\n });\n }\n} catch (e) {}\n\nexport * from \"./components/ActionSheets\";\nexport * from \"./components/Silder\";\nexport * from \"./components/Sheets\";\nexport * from \"./components/PickerView\";\nexport * from \"./components/Picker\";\nexport * from \"./components/Alert\";\nexport * from \"./components/FAB\";\nexport * from \"./components/Toast\";\nexport * from \"./components/DropDown\";\nexport * from \"./components/Progress\";\nexport * from \"./components/TabBar\";\nexport * from \"./components/NavigationBar\";\nexport * from \"./components/BottomBar\";\nexport * from \"./components/List\";\nexport * from \"./components/Skeleton\";\nexport * from \"./components/ProgressIndicator\";\nexport * from \"./components/ImagePreview\";\nexport * from \"./components/Divider\";\nexport * from \"./components/Portal\";\nexport * from \"./components/Tag\";\nexport * from \"./components/Image\";\nexport * from \"./components/Button\";\nexport * from \"./components/Popover\";\nexport * from \"./components/Switch\";\nexport * from \"./components/ConfigProvider\";\nexport * from \"./components/Text\";\nexport * from \"./components/Collapse\";\nexport * from \"./components/Empty\";\nexport * from \"./components/Result\";\nexport * from \"./components/PullRefresh\";\nexport * from \"./components/Icon\";\nexport * from \"./components/Badge\";\nexport * from \"./components/Avatar\";\nexport * from \"./components/AvatarGroup\";\nexport * from \"./components/Tab\";\n"],"names":["Alert","props","finalProps","_objectSpread","AlertDefaultProps","show","title","message","confirmText","cancelText","onConfirm","onCancel","onOpen","onClose","align","footerLayout","showConfirmButton","showCancelButton","mask","footerType","header","footer","children","styles","style","fadeAnim","useRef","Animated","Value","current","useEffect","handleConfirm","e","handleCancel","React","createElement","Portal","TouchableWithoutFeedback","View","modalOverlay","centeredView","transform","scale","interpolate","inputRange","outputRange","alertContainer","alertContent","Text","ScrollView","scrollEventThrottle","messageText","messageLeft","footerVertical","footerHorizontal","footerText","Button","variant","onClick","verButton","button","dividerBox","Divider","direction","size","type","confirmButton","ListItem","_ref","subtitle","actionText","_ref$size","_ref$arrow","arrow","prefix","action","_useListContext","useListContext","registerChild","unregisterChild","_useState","useState","_useState2","_slicedToArray","lineItem","setLineItem","childInfo","setLine","value","listItemSizeToHeight","regular","expand","listItem","height","contentBox","contentContainer","textContainer","tailContainer","tail","tailText","Icon","fill","icon","ArrowRight","hr","ImagePreview","removePortal","position","backgroundColor","width","ImageViewer","Image","resizeMode","src","defaultProps","ImagePreviewDefaultProps","AvatarGroup","ref","_props$size","AvatarGroupDefaultProps","_props$avatars","avatars","avatarProps","maxCount","_props$groupStyle","groupStyle","outContainer","flexDirection","avatarContainerStyle","marginRight","avatarList","useMemo","renderAvatars","count","Math","min","length","index","_avatars$index","_avatars$index2","push","Avatar","key","imageUrl","url","containerStyle","StyleSheet","flatten","zIndex","borderNum","outlineColor","lightColor","White","showTag","memo","forwardRef","_GLOBAL","GLOBAL","eaglet","_GLOBAL2","_GLOBAL2$push","call","measurement_name","measurement_data","platform"],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GestureResponderEvent } from "react-native";
|
|
3
|
+
export interface RedsAlert {
|
|
4
|
+
show: boolean;
|
|
5
|
+
title?: string;
|
|
6
|
+
message?: string;
|
|
7
|
+
align?: "left" | "center";
|
|
8
|
+
footerLayout?: "horizontal" | "vertical";
|
|
9
|
+
showConfirmButton?: boolean;
|
|
10
|
+
showCancelButton?: boolean;
|
|
11
|
+
confirmText?: string;
|
|
12
|
+
cancelText?: string;
|
|
13
|
+
mask?: boolean;
|
|
14
|
+
footerType?: "text" | "button";
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
footer?: React.ReactNode;
|
|
17
|
+
header?: React.ReactNode;
|
|
18
|
+
onConfirm?: (value: GestureResponderEvent) => void;
|
|
19
|
+
onCancel?: (value: GestureResponderEvent) => void;
|
|
20
|
+
onOpen?: () => void;
|
|
21
|
+
onClose?: () => void;
|
|
22
|
+
}
|
|
23
|
+
export interface RedsAlertEvent {
|
|
24
|
+
}
|
|
25
|
+
export declare const AlertDefaultProps: {
|
|
26
|
+
show: boolean;
|
|
27
|
+
align: string;
|
|
28
|
+
footerLayout: string;
|
|
29
|
+
showConfirmButton: boolean;
|
|
30
|
+
showCancelButton: boolean;
|
|
31
|
+
confirmText: string;
|
|
32
|
+
cancelText: string;
|
|
33
|
+
mask: boolean;
|
|
34
|
+
footerType: string;
|
|
35
|
+
};
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { RedsAlert } from "./interface";
|
|
2
|
+
export declare const style: (props: RedsAlert) => {
|
|
3
|
+
modalOverlay: {
|
|
4
|
+
position: "absolute";
|
|
5
|
+
top: number;
|
|
6
|
+
left: number;
|
|
7
|
+
right: number;
|
|
8
|
+
bottom: number;
|
|
9
|
+
backgroundColor: string;
|
|
10
|
+
};
|
|
11
|
+
centeredView: {
|
|
12
|
+
position: "absolute";
|
|
13
|
+
top: number;
|
|
14
|
+
left: number;
|
|
15
|
+
right: number;
|
|
16
|
+
bottom: number;
|
|
17
|
+
flex: number;
|
|
18
|
+
justifyContent: "center";
|
|
19
|
+
alignItems: "center";
|
|
20
|
+
};
|
|
21
|
+
alertContainer: {
|
|
22
|
+
width: number;
|
|
23
|
+
backgroundColor: string;
|
|
24
|
+
borderRadius: number;
|
|
25
|
+
overflow: "hidden";
|
|
26
|
+
boxShadow: string;
|
|
27
|
+
};
|
|
28
|
+
alertContent: {
|
|
29
|
+
padding: number;
|
|
30
|
+
};
|
|
31
|
+
title: {
|
|
32
|
+
textAlign: "center";
|
|
33
|
+
marginBottom: number;
|
|
34
|
+
fontSize: number;
|
|
35
|
+
fontWeight: "400" | "500" | "600" | "700";
|
|
36
|
+
lineHeight: number;
|
|
37
|
+
};
|
|
38
|
+
message: {
|
|
39
|
+
maxHeight: number;
|
|
40
|
+
overflow: "hidden";
|
|
41
|
+
position: "relative";
|
|
42
|
+
};
|
|
43
|
+
messageText: {
|
|
44
|
+
fontSize: number;
|
|
45
|
+
color: string;
|
|
46
|
+
textAlign: "center";
|
|
47
|
+
lineHeight: number;
|
|
48
|
+
fontWeight: "400" | "500" | "600" | "700";
|
|
49
|
+
};
|
|
50
|
+
messageLeft: {
|
|
51
|
+
textAlign: "left";
|
|
52
|
+
};
|
|
53
|
+
scrollOverlay: {
|
|
54
|
+
width: "100%";
|
|
55
|
+
position: "absolute";
|
|
56
|
+
left: number;
|
|
57
|
+
right: number;
|
|
58
|
+
bottom: number;
|
|
59
|
+
height: number;
|
|
60
|
+
};
|
|
61
|
+
footer: {
|
|
62
|
+
width: "100%";
|
|
63
|
+
height: number;
|
|
64
|
+
flexDirection: "row";
|
|
65
|
+
justifyContent: "space-between";
|
|
66
|
+
padding: number;
|
|
67
|
+
paddingTop: number;
|
|
68
|
+
};
|
|
69
|
+
footerText: {
|
|
70
|
+
borderTopWidth: number;
|
|
71
|
+
borderTopColor: string;
|
|
72
|
+
padding: number;
|
|
73
|
+
paddingBottom: number;
|
|
74
|
+
paddingTop: number;
|
|
75
|
+
};
|
|
76
|
+
footerHorizontal: {
|
|
77
|
+
flexDirection: "row";
|
|
78
|
+
};
|
|
79
|
+
footerVertical: {
|
|
80
|
+
flexDirection: "column-reverse";
|
|
81
|
+
justifyContent: "center";
|
|
82
|
+
alignItems: "center";
|
|
83
|
+
height: number;
|
|
84
|
+
};
|
|
85
|
+
button: {
|
|
86
|
+
flex: number;
|
|
87
|
+
width: "100%";
|
|
88
|
+
margin: number;
|
|
89
|
+
height: number;
|
|
90
|
+
};
|
|
91
|
+
dividerBox: {
|
|
92
|
+
marginTop: number;
|
|
93
|
+
};
|
|
94
|
+
confirmButton: {
|
|
95
|
+
flex: number;
|
|
96
|
+
margin: number;
|
|
97
|
+
marginLeft: number;
|
|
98
|
+
width: "100%";
|
|
99
|
+
height: number;
|
|
100
|
+
};
|
|
101
|
+
verButton: {
|
|
102
|
+
flex: number;
|
|
103
|
+
width: "100%";
|
|
104
|
+
margin: number;
|
|
105
|
+
marginTop: number;
|
|
106
|
+
height: number;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
declare global {
|
|
2
|
+
var GLOBAL: any;
|
|
3
|
+
}
|
|
1
4
|
export * from "./components/ActionSheets";
|
|
2
5
|
export * from "./components/Silder";
|
|
3
6
|
export * from "./components/Sheets";
|
|
4
7
|
export * from "./components/PickerView";
|
|
5
8
|
export * from "./components/Picker";
|
|
9
|
+
export * from "./components/Alert";
|
|
6
10
|
export * from "./components/FAB";
|
|
7
11
|
export * from "./components/Toast";
|
|
8
12
|
export * from "./components/DropDown";
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xhsreds/reds-rn-next",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"author": "贾斌(呀哈) <jiabin@xiaohongshu.com>",
|
|
5
5
|
"license": "ISC",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@floating-ui/react-native": "~0.10.6",
|
|
8
8
|
"dayjs": "^1.10.7",
|
|
9
|
-
"@xhsreds/reds-token-next": "0.1.
|
|
9
|
+
"@xhsreds/reds-token-next": "0.1.3"
|
|
10
10
|
},
|
|
11
11
|
"peerDependencies": {
|
|
12
12
|
"@xhs/reder-icon-svg": "~1.0.1",
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import React, { useState, useEffect, useCallback, useRef } from "react";
|
|
2
|
+
import {
|
|
3
|
+
View,
|
|
4
|
+
Text,
|
|
5
|
+
Modal,
|
|
6
|
+
Image,
|
|
7
|
+
ScrollView,
|
|
8
|
+
TouchableWithoutFeedback,
|
|
9
|
+
StyleSheet,
|
|
10
|
+
GestureResponderEvent,
|
|
11
|
+
Animated,
|
|
12
|
+
} from "react-native";
|
|
13
|
+
import { RedsAlert, AlertDefaultProps } from "./interface";
|
|
14
|
+
import { Button, Divider, Portal } from "../../index";
|
|
15
|
+
import { style } from "./styles";
|
|
16
|
+
|
|
17
|
+
// const scrollViewMask = {
|
|
18
|
+
// default: "https://picasso-static.xiaohongshu.com/fe-platform/d3fab8f89c0d2daa69ecaa87580c8ff42f330a80.png",
|
|
19
|
+
// dark: "https://picasso-static.xiaohongshu.com/fe-platform/953a4a587c93dadda6f4ded4f732c50cf703ac99.png",
|
|
20
|
+
// };
|
|
21
|
+
const Alert: React.FC<RedsAlert> = (props) => {
|
|
22
|
+
const finalProps = { ...AlertDefaultProps, ...props };
|
|
23
|
+
const {
|
|
24
|
+
show,
|
|
25
|
+
title,
|
|
26
|
+
message,
|
|
27
|
+
confirmText,
|
|
28
|
+
cancelText,
|
|
29
|
+
onConfirm,
|
|
30
|
+
onCancel,
|
|
31
|
+
onOpen,
|
|
32
|
+
onClose,
|
|
33
|
+
align,
|
|
34
|
+
// showScrollOverlay,
|
|
35
|
+
footerLayout,
|
|
36
|
+
showConfirmButton,
|
|
37
|
+
showCancelButton,
|
|
38
|
+
mask,
|
|
39
|
+
footerType,
|
|
40
|
+
header,
|
|
41
|
+
footer,
|
|
42
|
+
children,
|
|
43
|
+
} = finalProps;
|
|
44
|
+
|
|
45
|
+
const styles = style(props);
|
|
46
|
+
// const [hasScrollToBottom, setHasScrollToBottom] = useState(true);
|
|
47
|
+
const fadeAnim = useRef(new Animated.Value(0)).current;
|
|
48
|
+
|
|
49
|
+
useEffect(() => {
|
|
50
|
+
if (show && onOpen) onOpen();
|
|
51
|
+
if (!show && onClose) onClose();
|
|
52
|
+
}, [show]);
|
|
53
|
+
|
|
54
|
+
const handleConfirm = (e: GestureResponderEvent) => {
|
|
55
|
+
if (onConfirm) onConfirm(e);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const handleCancel = (e: GestureResponderEvent) => {
|
|
59
|
+
if (onCancel) onCancel(e);
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
// const handleScrollView = useCallback(
|
|
63
|
+
// (e: any) => {
|
|
64
|
+
// const offsetY = e.nativeEvent.contentOffset.y;
|
|
65
|
+
// const contentSizeHeight = e.nativeEvent.contentSize.height;
|
|
66
|
+
// var containerScrollHeight = e.nativeEvent.layoutMeasurement.height;
|
|
67
|
+
// if (offsetY + containerScrollHeight + 30 >= contentSizeHeight) {
|
|
68
|
+
// if (hasScrollToBottom) setHasScrollToBottom(false);
|
|
69
|
+
// } else {
|
|
70
|
+
// if (!hasScrollToBottom) setHasScrollToBottom(true);
|
|
71
|
+
// }
|
|
72
|
+
// },
|
|
73
|
+
// [hasScrollToBottom],
|
|
74
|
+
// );
|
|
75
|
+
|
|
76
|
+
// const [canScroll, setCanScroll] = useState(false);
|
|
77
|
+
|
|
78
|
+
// const handleContentSizeChange = (contentWidth: number, contentHeight: number) => {
|
|
79
|
+
// if (contentHeight > 135) {
|
|
80
|
+
// setCanScroll(true);
|
|
81
|
+
// } else {
|
|
82
|
+
// setCanScroll(false);
|
|
83
|
+
// }
|
|
84
|
+
// };
|
|
85
|
+
|
|
86
|
+
return show ? (
|
|
87
|
+
<Portal>
|
|
88
|
+
{mask && (
|
|
89
|
+
<TouchableWithoutFeedback>
|
|
90
|
+
<View style={styles.modalOverlay} />
|
|
91
|
+
</TouchableWithoutFeedback>
|
|
92
|
+
)}
|
|
93
|
+
<Animated.View
|
|
94
|
+
style={[
|
|
95
|
+
styles.centeredView,
|
|
96
|
+
{
|
|
97
|
+
transform: [
|
|
98
|
+
{
|
|
99
|
+
scale: fadeAnim.interpolate({
|
|
100
|
+
inputRange: [0, 1],
|
|
101
|
+
outputRange: [1, 1],
|
|
102
|
+
}),
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
},
|
|
106
|
+
]}
|
|
107
|
+
>
|
|
108
|
+
<View style={[styles.alertContainer]}>
|
|
109
|
+
{header}
|
|
110
|
+
<View style={styles.alertContent}>
|
|
111
|
+
<Text style={styles.title}>{title}</Text>
|
|
112
|
+
{message ? (
|
|
113
|
+
<ScrollView
|
|
114
|
+
// onContentSizeChange={handleContentSizeChange}
|
|
115
|
+
// onScroll={handleScrollView}
|
|
116
|
+
style={[styles.message]}
|
|
117
|
+
scrollEventThrottle={16}
|
|
118
|
+
>
|
|
119
|
+
<Text style={[styles.messageText, align === "left" && styles.messageLeft]}>{message}</Text>
|
|
120
|
+
</ScrollView>
|
|
121
|
+
) : (
|
|
122
|
+
children
|
|
123
|
+
)}
|
|
124
|
+
{/* {showScrollOverlay && hasScrollToBottom && canScroll ? (
|
|
125
|
+
<Image source={{ uri: scrollViewMask.default }} style={styles.scrollOverlay} />
|
|
126
|
+
) : null} */}
|
|
127
|
+
</View>
|
|
128
|
+
{footer ? (
|
|
129
|
+
footer
|
|
130
|
+
) : (
|
|
131
|
+
<View
|
|
132
|
+
style={[
|
|
133
|
+
styles.footer,
|
|
134
|
+
footerLayout === "vertical" ? styles.footerVertical : styles.footerHorizontal,
|
|
135
|
+
footerType === "text" && styles.footerText,
|
|
136
|
+
]}
|
|
137
|
+
>
|
|
138
|
+
{showCancelButton && (
|
|
139
|
+
<Button
|
|
140
|
+
variant={footerType === "text" ? "text" : "outline"}
|
|
141
|
+
onClick={handleCancel}
|
|
142
|
+
style={footerLayout === "vertical" ? styles.verButton : styles.button}
|
|
143
|
+
>
|
|
144
|
+
{cancelText}
|
|
145
|
+
</Button>
|
|
146
|
+
)}
|
|
147
|
+
{footerType === "text" && showCancelButton && footerLayout !== "vertical" && (
|
|
148
|
+
<View style={styles.dividerBox}>
|
|
149
|
+
<Divider direction={"vertical"} size={24} />
|
|
150
|
+
</View>
|
|
151
|
+
)}
|
|
152
|
+
{showConfirmButton && (
|
|
153
|
+
<Button
|
|
154
|
+
type="primary"
|
|
155
|
+
variant={footerType === "text" ? "text" : "fill"}
|
|
156
|
+
onClick={handleConfirm}
|
|
157
|
+
style={footerType === "text" || footerLayout === "vertical" ? styles.button : styles.confirmButton}
|
|
158
|
+
>
|
|
159
|
+
{confirmText}
|
|
160
|
+
</Button>
|
|
161
|
+
)}
|
|
162
|
+
</View>
|
|
163
|
+
)}
|
|
164
|
+
</View>
|
|
165
|
+
</Animated.View>
|
|
166
|
+
</Portal>
|
|
167
|
+
) : null;
|
|
168
|
+
};
|
|
169
|
+
|
|
170
|
+
export default Alert;
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import React, { useState } from "react";
|
|
2
|
+
import { View, Text, StyleSheet, GestureResponderEvent, ScrollView, Image } from "react-native";
|
|
3
|
+
import { Alert, PortalProvider } from "@xhs/reds-rn-next";
|
|
4
|
+
import { Button, Icon, useThemeColor } from "@xhs/reds-rn-next";
|
|
5
|
+
|
|
6
|
+
const styles = StyleSheet.create({
|
|
7
|
+
container: {
|
|
8
|
+
flex: 1,
|
|
9
|
+
justifyContent: "center",
|
|
10
|
+
alignItems: "center",
|
|
11
|
+
padding: 20,
|
|
12
|
+
marginBottom: 800,
|
|
13
|
+
},
|
|
14
|
+
buttonContainer: {
|
|
15
|
+
marginVertical: 10,
|
|
16
|
+
width: "100%",
|
|
17
|
+
alignItems: "center",
|
|
18
|
+
},
|
|
19
|
+
footer: {
|
|
20
|
+
flex: 1,
|
|
21
|
+
// padding: 20,
|
|
22
|
+
// paddingTop: 0,
|
|
23
|
+
// flexDirection: "column-reverse",
|
|
24
|
+
// height: 100,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export default function App() {
|
|
29
|
+
const [alertVisible, setAlertVisible] = useState(false);
|
|
30
|
+
const [footerType, setFooterType] = useState<"button" | "text">("button");
|
|
31
|
+
const [showCancelButton, setShowCancelButton] = useState(true);
|
|
32
|
+
|
|
33
|
+
const [alertTitle, setAlertTitle] = useState<string | undefined>("提示");
|
|
34
|
+
const [alertMessage, setAlertMessage] = useState<string | undefined>(
|
|
35
|
+
"这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容这是一个自定义消息内容",
|
|
36
|
+
);
|
|
37
|
+
const [align, setAlign] = useState<"left" | "center">("center");
|
|
38
|
+
const [footerLayout, setFooterLayout] = useState<"horizontal" | "vertical">("horizontal");
|
|
39
|
+
const themeColor = useThemeColor("Icon");
|
|
40
|
+
const [mediaSrc, setMediaSrc] = useState<string>("");
|
|
41
|
+
const [footer, setFooter] = useState<React.ReactNode | undefined>(undefined);
|
|
42
|
+
const [header, setHeader] = useState<React.ReactNode | undefined>(undefined);
|
|
43
|
+
const [customMessage, setCustomMessage] = useState(false);
|
|
44
|
+
|
|
45
|
+
const showAlert = () => {
|
|
46
|
+
setAlertVisible(true);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
const hideAlert = () => {
|
|
50
|
+
setAlertVisible(false);
|
|
51
|
+
|
|
52
|
+
// 重置状态
|
|
53
|
+
setFooterType("button");
|
|
54
|
+
setFooterLayout("horizontal");
|
|
55
|
+
setAlign("center");
|
|
56
|
+
setAlertTitle("提示");
|
|
57
|
+
setAlertMessage("这是一个消息内容");
|
|
58
|
+
setShowCancelButton(true);
|
|
59
|
+
setFooter(undefined);
|
|
60
|
+
setHeader(undefined);
|
|
61
|
+
setCustomMessage(false);
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const handleConfirm = (e: GestureResponderEvent) => {
|
|
65
|
+
console.log("确认按钮点击", e);
|
|
66
|
+
hideAlert();
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
const handleCancel = (e: GestureResponderEvent) => {
|
|
70
|
+
console.log("取消按钮点击", e);
|
|
71
|
+
hideAlert();
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
const handleOpen = () => {
|
|
75
|
+
console.log("Alert 打开");
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const handleClose = () => {
|
|
79
|
+
console.log("Alert 关闭");
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const changeFoolterType = () => {
|
|
83
|
+
setFooterType("text");
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
const renderCusFooter = () => {
|
|
87
|
+
return (
|
|
88
|
+
<View style={{ padding: 20 }}>
|
|
89
|
+
<Button onClick={handleCancel} type="primary">
|
|
90
|
+
自定义footer
|
|
91
|
+
</Button>
|
|
92
|
+
</View>
|
|
93
|
+
);
|
|
94
|
+
};
|
|
95
|
+
const renderCusHeader = () => {
|
|
96
|
+
return (
|
|
97
|
+
<View style={{}}>
|
|
98
|
+
<Image
|
|
99
|
+
source={{ uri: "https://fe-platform.xhscdn.com/platform/104101l0316gv8eebgm06cj00vk900000000000eiv941q" }}
|
|
100
|
+
style={{ width: 270, height: 100 }}
|
|
101
|
+
/>
|
|
102
|
+
</View>
|
|
103
|
+
);
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
return (
|
|
107
|
+
<PortalProvider>
|
|
108
|
+
<ScrollView>
|
|
109
|
+
<View style={styles.container}>
|
|
110
|
+
<View style={styles.buttonContainer}>
|
|
111
|
+
<Button onClick={showAlert} type="primary" variant="fill">
|
|
112
|
+
显示基础Alert
|
|
113
|
+
</Button>
|
|
114
|
+
</View>
|
|
115
|
+
|
|
116
|
+
<View style={styles.buttonContainer}>
|
|
117
|
+
<Button
|
|
118
|
+
onClick={() => {
|
|
119
|
+
setAlertTitle("提示");
|
|
120
|
+
setAlertMessage("不显示取消按钮的alert");
|
|
121
|
+
setFooterLayout("horizontal");
|
|
122
|
+
setShowCancelButton(false);
|
|
123
|
+
showAlert();
|
|
124
|
+
}}
|
|
125
|
+
type="primary"
|
|
126
|
+
variant="outline"
|
|
127
|
+
>
|
|
128
|
+
不显示取消按钮的alert
|
|
129
|
+
</Button>
|
|
130
|
+
</View>
|
|
131
|
+
|
|
132
|
+
<View style={styles.buttonContainer}>
|
|
133
|
+
<Button
|
|
134
|
+
onClick={() => {
|
|
135
|
+
setAlertTitle("标题");
|
|
136
|
+
setAlertMessage("文本按钮样式");
|
|
137
|
+
setFooterLayout("horizontal");
|
|
138
|
+
changeFoolterType();
|
|
139
|
+
showAlert();
|
|
140
|
+
}}
|
|
141
|
+
type="primary"
|
|
142
|
+
variant="ghost"
|
|
143
|
+
>
|
|
144
|
+
文本按钮样式
|
|
145
|
+
</Button>
|
|
146
|
+
</View>
|
|
147
|
+
|
|
148
|
+
<View style={styles.buttonContainer}>
|
|
149
|
+
<Button
|
|
150
|
+
onClick={() => {
|
|
151
|
+
setAlertTitle("提示");
|
|
152
|
+
setAlertMessage(
|
|
153
|
+
"欢迎来到小红书! 请您充分阅读和理解《用户协议》和《隐私政策》,以及本提示的全部内容。点击“同意”按钮即代表您已同意前述协议全部条款以及以下约定。 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权 1.为给您提供发布服务,我们可能会申请手机存储权限、摄像头权限、麦克风权",
|
|
154
|
+
);
|
|
155
|
+
setFooterLayout("horizontal");
|
|
156
|
+
setAlign("left");
|
|
157
|
+
showAlert();
|
|
158
|
+
}}
|
|
159
|
+
type="primary"
|
|
160
|
+
variant="ghost"
|
|
161
|
+
>
|
|
162
|
+
内容可滚动
|
|
163
|
+
</Button>
|
|
164
|
+
</View>
|
|
165
|
+
|
|
166
|
+
<View style={styles.buttonContainer}>
|
|
167
|
+
<Button
|
|
168
|
+
onClick={() => {
|
|
169
|
+
setAlertTitle("标题");
|
|
170
|
+
setAlertMessage("文本");
|
|
171
|
+
setFooterLayout("vertical");
|
|
172
|
+
changeFoolterType();
|
|
173
|
+
setFooter(renderCusFooter());
|
|
174
|
+
showAlert();
|
|
175
|
+
}}
|
|
176
|
+
type="primary"
|
|
177
|
+
variant="ghost"
|
|
178
|
+
>
|
|
179
|
+
自定义footer
|
|
180
|
+
</Button>
|
|
181
|
+
</View>
|
|
182
|
+
|
|
183
|
+
<View style={styles.buttonContainer}>
|
|
184
|
+
<Button
|
|
185
|
+
onClick={() => {
|
|
186
|
+
setHeader(renderCusHeader());
|
|
187
|
+
showAlert();
|
|
188
|
+
}}
|
|
189
|
+
type="primary"
|
|
190
|
+
variant="ghost"
|
|
191
|
+
>
|
|
192
|
+
自定义header
|
|
193
|
+
</Button>
|
|
194
|
+
</View>
|
|
195
|
+
|
|
196
|
+
<View style={styles.buttonContainer}>
|
|
197
|
+
<Button
|
|
198
|
+
onClick={() => {
|
|
199
|
+
setCustomMessage(true);
|
|
200
|
+
setAlertMessage("");
|
|
201
|
+
showAlert();
|
|
202
|
+
}}
|
|
203
|
+
type="primary"
|
|
204
|
+
variant="ghost"
|
|
205
|
+
>
|
|
206
|
+
自定义message
|
|
207
|
+
</Button>
|
|
208
|
+
</View>
|
|
209
|
+
|
|
210
|
+
<Alert
|
|
211
|
+
show={alertVisible}
|
|
212
|
+
title={alertTitle}
|
|
213
|
+
message={alertMessage}
|
|
214
|
+
align={align}
|
|
215
|
+
confirmText="确认"
|
|
216
|
+
cancelText="取消"
|
|
217
|
+
onConfirm={handleConfirm}
|
|
218
|
+
onCancel={handleCancel}
|
|
219
|
+
onOpen={handleOpen}
|
|
220
|
+
onClose={handleClose}
|
|
221
|
+
footerLayout={footerLayout}
|
|
222
|
+
showConfirmButton
|
|
223
|
+
showCancelButton={showCancelButton}
|
|
224
|
+
footerType={footerType}
|
|
225
|
+
footer={footer}
|
|
226
|
+
header={header}
|
|
227
|
+
>
|
|
228
|
+
{customMessage && <Text>这是一个自定义message</Text>}
|
|
229
|
+
</Alert>
|
|
230
|
+
</View>
|
|
231
|
+
</ScrollView>
|
|
232
|
+
</PortalProvider>
|
|
233
|
+
);
|
|
234
|
+
}
|