@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.
Files changed (209) hide show
  1. package/coverage/.tmp/coverage-0.json +1 -1
  2. package/coverage/.tmp/coverage-1.json +1 -1
  3. package/coverage/.tmp/coverage-10.json +1 -1
  4. package/coverage/.tmp/coverage-11.json +1 -1
  5. package/coverage/.tmp/coverage-12.json +1 -1
  6. package/coverage/.tmp/coverage-13.json +1 -1
  7. package/coverage/.tmp/coverage-14.json +1 -1
  8. package/coverage/.tmp/coverage-15.json +1 -1
  9. package/coverage/.tmp/coverage-16.json +1 -1
  10. package/coverage/.tmp/coverage-17.json +1 -1
  11. package/coverage/.tmp/coverage-19.json +1 -1
  12. package/coverage/.tmp/coverage-2.json +1 -1
  13. package/coverage/.tmp/coverage-20.json +1 -1
  14. package/coverage/.tmp/coverage-21.json +1 -1
  15. package/coverage/.tmp/coverage-22.json +1 -1
  16. package/coverage/.tmp/coverage-23.json +1 -1
  17. package/coverage/.tmp/coverage-25.json +1 -1
  18. package/coverage/.tmp/coverage-26.json +1 -1
  19. package/coverage/.tmp/coverage-27.json +1 -1
  20. package/coverage/.tmp/coverage-28.json +1 -1
  21. package/coverage/.tmp/coverage-29.json +1 -1
  22. package/coverage/.tmp/coverage-3.json +1 -1
  23. package/coverage/.tmp/coverage-31.json +1 -1
  24. package/coverage/.tmp/coverage-32.json +1 -0
  25. package/coverage/.tmp/coverage-4.json +1 -1
  26. package/coverage/.tmp/coverage-5.json +1 -1
  27. package/coverage/.tmp/coverage-6.json +1 -1
  28. package/coverage/.tmp/coverage-7.json +1 -1
  29. package/coverage/.tmp/coverage-8.json +1 -1
  30. package/coverage/.tmp/coverage-9.json +1 -1
  31. package/lib/cjs/_chunks/GhFTd1qc.js +22 -0
  32. package/lib/cjs/_chunks/GhFTd1qc.js.map +1 -0
  33. package/lib/cjs/components/Alert/Alert.js +143 -0
  34. package/lib/cjs/components/Alert/Alert.js.map +1 -0
  35. package/lib/cjs/components/Alert/index.js +145 -0
  36. package/lib/cjs/components/Alert/index.js.map +1 -0
  37. package/lib/cjs/components/Alert/interface/index.js +8 -0
  38. package/lib/cjs/components/Alert/interface/index.js.map +1 -0
  39. package/lib/cjs/components/Alert/styles.js +124 -0
  40. package/lib/cjs/components/Alert/styles.js.map +1 -0
  41. package/lib/cjs/components/Avatar/Avatar.js +1 -1
  42. package/lib/cjs/components/Avatar/Avatar.js.map +1 -1
  43. package/lib/cjs/components/AvatarGroup/AvatarGroup.js +92 -99
  44. package/lib/cjs/components/AvatarGroup/AvatarGroup.js.map +1 -1
  45. package/lib/cjs/components/AvatarGroup/index.js +45 -11
  46. package/lib/cjs/components/AvatarGroup/index.js.map +1 -1
  47. package/lib/cjs/components/Button/Button.js +1 -1
  48. package/lib/cjs/components/Button/Button.js.map +1 -1
  49. package/lib/cjs/components/FAB/FAB.js +1 -1
  50. package/lib/cjs/components/FAB/FAB.js.map +1 -1
  51. package/lib/cjs/components/Image/hook/index.js +2 -2
  52. package/lib/cjs/components/Image/hook/index.js.map +1 -1
  53. package/lib/cjs/components/ImagePreview/ImagePreview.js +88 -66
  54. package/lib/cjs/components/ImagePreview/ImagePreview.js.map +1 -1
  55. package/lib/cjs/components/ImagePreview/ImageViewer3.js +3 -3
  56. package/lib/cjs/components/ImagePreview/ImageViewer3.js.map +1 -1
  57. package/lib/cjs/components/ImagePreview/index.js +48 -9
  58. package/lib/cjs/components/ImagePreview/index.js.map +1 -1
  59. package/lib/cjs/components/List/ListItem/ListItem.js +86 -111
  60. package/lib/cjs/components/List/ListItem/ListItem.js.map +1 -1
  61. package/lib/cjs/components/List/index.js +44 -9
  62. package/lib/cjs/components/List/index.js.map +1 -1
  63. package/lib/cjs/components/Tag/Tag.js +1 -1
  64. package/lib/cjs/components/Tag/Tag.js.map +1 -1
  65. package/lib/cjs/components/Text/hooks/loadFontFromFile.js +1 -1
  66. package/lib/cjs/components/Text/hooks/loadFontFromFile.js.map +1 -1
  67. package/lib/cjs/index.js +244 -30
  68. package/lib/cjs/index.js.map +1 -1
  69. package/lib/esm/_chunks/BKEXyO9m.js +19 -0
  70. package/lib/esm/_chunks/BKEXyO9m.js.map +1 -0
  71. package/lib/esm/_chunks/{D-HreRcG.js → CwHnr-H1.js} +2 -2
  72. package/lib/esm/_chunks/{D-HreRcG.js.map → CwHnr-H1.js.map} +1 -1
  73. package/lib/esm/components/ActionSheets/ActionSheets.js +1 -1
  74. package/lib/esm/components/ActionSheets/index.js +1 -1
  75. package/lib/esm/components/Alert/Alert.js +135 -0
  76. package/lib/esm/components/Alert/Alert.js.map +1 -0
  77. package/lib/esm/components/Alert/index.js +139 -0
  78. package/lib/esm/components/Alert/index.js.map +1 -0
  79. package/lib/esm/components/Alert/interface/index.js +2 -0
  80. package/lib/esm/components/Alert/interface/index.js.map +1 -0
  81. package/lib/esm/components/Alert/styles.js +122 -0
  82. package/lib/esm/components/Alert/styles.js.map +1 -0
  83. package/lib/esm/components/Avatar/Avatar.js +2 -2
  84. package/lib/esm/components/Avatar/Avatar.js.map +1 -1
  85. package/lib/esm/components/Avatar/index.js +1 -1
  86. package/lib/esm/components/Avatar/styles.js +1 -1
  87. package/lib/esm/components/AvatarGroup/AvatarGroup.js +90 -101
  88. package/lib/esm/components/AvatarGroup/AvatarGroup.js.map +1 -1
  89. package/lib/esm/components/AvatarGroup/index.js +43 -9
  90. package/lib/esm/components/AvatarGroup/index.js.map +1 -1
  91. package/lib/esm/components/Badge/Badge.js +1 -1
  92. package/lib/esm/components/Badge/index.js +1 -1
  93. package/lib/esm/components/BottomBar/BottomBar.js +1 -1
  94. package/lib/esm/components/BottomBar/index.js +1 -1
  95. package/lib/esm/components/Button/Button.js +2 -2
  96. package/lib/esm/components/Button/Button.js.map +1 -1
  97. package/lib/esm/components/Button/index.js +1 -1
  98. package/lib/esm/components/Button/styleMap.js +1 -1
  99. package/lib/esm/components/Collapse/Collapse.js +1 -1
  100. package/lib/esm/components/Collapse/Item/Item.js +1 -1
  101. package/lib/esm/components/Collapse/Item/styles.js +1 -1
  102. package/lib/esm/components/Collapse/index.js +1 -1
  103. package/lib/esm/components/ConfigProvider/ConfigProvider.js +1 -1
  104. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +1 -1
  105. package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js +1 -1
  106. package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js +1 -1
  107. package/lib/esm/components/ConfigProvider/index.js +1 -1
  108. package/lib/esm/components/Divider/Divider.js +1 -1
  109. package/lib/esm/components/Divider/index.js +1 -1
  110. package/lib/esm/components/Divider/styles.js +1 -1
  111. package/lib/esm/components/DropDown/DropDown.js +1 -1
  112. package/lib/esm/components/DropDown/DropDownItem.js +1 -1
  113. package/lib/esm/components/DropDown/index.js +1 -1
  114. package/lib/esm/components/DropDown/styles.js +1 -1
  115. package/lib/esm/components/Empty/Empty.js +1 -1
  116. package/lib/esm/components/Empty/index.js +1 -1
  117. package/lib/esm/components/Empty/styles.js +1 -1
  118. package/lib/esm/components/FAB/FAB.js +2 -2
  119. package/lib/esm/components/FAB/FAB.js.map +1 -1
  120. package/lib/esm/components/FAB/index.js +1 -1
  121. package/lib/esm/components/Image/Image.js +1 -1
  122. package/lib/esm/components/Image/hook/index.js +3 -3
  123. package/lib/esm/components/Image/hook/index.js.map +1 -1
  124. package/lib/esm/components/Image/index.js +1 -1
  125. package/lib/esm/components/ImagePreview/Gesture/useGesture.js +1 -1
  126. package/lib/esm/components/ImagePreview/ImagePreview.js +87 -69
  127. package/lib/esm/components/ImagePreview/ImagePreview.js.map +1 -1
  128. package/lib/esm/components/ImagePreview/ImageViewer.js +1 -1
  129. package/lib/esm/components/ImagePreview/ImageViewer3.js +4 -4
  130. package/lib/esm/components/ImagePreview/ImageViewer3.js.map +1 -1
  131. package/lib/esm/components/ImagePreview/index.js +47 -8
  132. package/lib/esm/components/ImagePreview/index.js.map +1 -1
  133. package/lib/esm/components/List/ListItem/ListItem.js +84 -113
  134. package/lib/esm/components/List/ListItem/ListItem.js.map +1 -1
  135. package/lib/esm/components/List/index.js +43 -8
  136. package/lib/esm/components/List/index.js.map +1 -1
  137. package/lib/esm/components/Picker/Picker.js +1 -1
  138. package/lib/esm/components/Picker/index.js +1 -1
  139. package/lib/esm/components/PickerView/PickerView.js +1 -1
  140. package/lib/esm/components/PickerView/Wheel.js +1 -1
  141. package/lib/esm/components/PickerView/index.js +1 -1
  142. package/lib/esm/components/Popover/Popover.js +1 -1
  143. package/lib/esm/components/Popover/component.js +1 -1
  144. package/lib/esm/components/Popover/hook.js +1 -1
  145. package/lib/esm/components/Popover/index.js +1 -1
  146. package/lib/esm/components/Portal/core/PortalProvider.js +1 -1
  147. package/lib/esm/components/Portal/index.js +1 -1
  148. package/lib/esm/components/Progress/Progress.js +1 -1
  149. package/lib/esm/components/Progress/index.js +1 -1
  150. package/lib/esm/components/ProgressIndicator/ProgressIndicator.js +1 -1
  151. package/lib/esm/components/ProgressIndicator/index.js +1 -1
  152. package/lib/esm/components/ProgressIndicator/styles.js +1 -1
  153. package/lib/esm/components/PullRefresh/PullRefresh.js +1 -1
  154. package/lib/esm/components/PullRefresh/component.js +1 -1
  155. package/lib/esm/components/PullRefresh/index.js +1 -1
  156. package/lib/esm/components/Result/Result.js +1 -1
  157. package/lib/esm/components/Result/index.js +1 -1
  158. package/lib/esm/components/Result/styles.js +1 -1
  159. package/lib/esm/components/Sheets/Sheets.js +1 -1
  160. package/lib/esm/components/Sheets/index.js +1 -1
  161. package/lib/esm/components/Silder/Silder.js +1 -1
  162. package/lib/esm/components/Silder/index.js +1 -1
  163. package/lib/esm/components/Skeleton/Item/SkeletonItem.js +1 -1
  164. package/lib/esm/components/Skeleton/Skeleton.js +1 -1
  165. package/lib/esm/components/Skeleton/index.js +1 -1
  166. package/lib/esm/components/Switch/Switch.js +1 -1
  167. package/lib/esm/components/Switch/index.js +1 -1
  168. package/lib/esm/components/Tab/Tab.js +1 -1
  169. package/lib/esm/components/Tab/index.js +1 -1
  170. package/lib/esm/components/Tab/styles.js +1 -1
  171. package/lib/esm/components/TabBar/TabBar.js +1 -1
  172. package/lib/esm/components/TabBar/index.js +1 -1
  173. package/lib/esm/components/Tag/Tag.js +2 -2
  174. package/lib/esm/components/Tag/Tag.js.map +1 -1
  175. package/lib/esm/components/Tag/index.js +1 -1
  176. package/lib/esm/components/Text/Text.js +1 -1
  177. package/lib/esm/components/Text/hooks/cloneContainer.js +1 -1
  178. package/lib/esm/components/Text/hooks/index.js +1 -1
  179. package/lib/esm/components/Text/hooks/loadFontFromFile.js +2 -2
  180. package/lib/esm/components/Text/hooks/loadFontFromFile.js.map +1 -1
  181. package/lib/esm/components/Text/index.js +1 -1
  182. package/lib/esm/components/Text/styles.js +1 -1
  183. package/lib/esm/components/Toast/Toast.js +1 -1
  184. package/lib/esm/components/Toast/api.js +1 -1
  185. package/lib/esm/components/Toast/index.js +1 -1
  186. package/lib/esm/components/Toast/styles.js +1 -1
  187. package/lib/esm/index.js +247 -28
  188. package/lib/esm/index.js.map +1 -1
  189. package/lib/types/components/Alert/Alert.d.ts +4 -0
  190. package/lib/types/components/Alert/demo/index.d.ts +2 -0
  191. package/lib/types/components/Alert/index.d.ts +4 -0
  192. package/lib/types/components/Alert/interface/index.d.ts +35 -0
  193. package/lib/types/components/Alert/styles.d.ts +108 -0
  194. package/lib/types/components/Alert/test/index.bench.d.ts +1 -0
  195. package/lib/types/components/Alert/test/index.test.d.ts +1 -0
  196. package/lib/types/components/Alert/test/paper.bench.d.ts +1 -0
  197. package/lib/types/index.d.ts +4 -0
  198. package/package.json +2 -2
  199. package/src/components/Alert/Alert.tsx +170 -0
  200. package/src/components/Alert/demo/index.tsx +234 -0
  201. package/src/components/Alert/doc/index.mdx +37 -0
  202. package/src/components/Alert/index.ts +5 -0
  203. package/src/components/Alert/interface/index.ts +35 -0
  204. package/src/components/Alert/styles.ts +116 -0
  205. package/src/components/Alert/test/__snapshots__/index.test.tsx.snap +519 -0
  206. package/src/components/Alert/test/index.bench.tsx +13 -0
  207. package/src/components/Alert/test/index.test.tsx +62 -0
  208. package/src/components/Alert/test/paper.bench.tsx +26 -0
  209. package/src/index.ts +15 -0
@@ -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,4 @@
1
+ import React from "react";
2
+ import { RedsAlert } from "./interface";
3
+ declare const Alert: React.FC<RedsAlert>;
4
+ export default Alert;
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export default function App(): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ import Alert from "./Alert";
2
+ import * as AlertType from "./interface";
3
+ export default Alert;
4
+ export { Alert, AlertType };
@@ -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 {};
@@ -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",
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.2"
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
+ }