@sendbird/uikit-react-native-foundation 1.0.0-rc.4 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/components/Image/index.js.map +1 -1
- package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -1
- package/lib/commonjs/theme/UIKitThemeProvider.js.map +1 -1
- package/lib/commonjs/ui/ActionMenu/index.js.map +1 -1
- package/lib/commonjs/ui/Alert/index.js.map +1 -1
- package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +1 -1
- package/lib/commonjs/ui/Avatar/index.js.map +1 -1
- package/lib/commonjs/ui/Badge/index.js.map +1 -1
- package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
- package/lib/commonjs/ui/Button/index.js.map +1 -1
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +1 -1
- package/lib/commonjs/ui/Dialog/DialogBox.js.map +1 -1
- package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/commonjs/ui/Dialog/index.js.map +1 -1
- package/lib/commonjs/ui/Divider/index.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/commonjs/ui/Header/index.js.map +1 -1
- package/lib/commonjs/ui/Icon/index.js.map +1 -1
- package/lib/commonjs/ui/LoadingSpinner/index.js.map +1 -1
- package/lib/commonjs/ui/MenuBar/index.js.map +1 -1
- package/lib/commonjs/ui/Modal/index.js.map +1 -1
- package/lib/commonjs/ui/Placeholder/index.js.map +1 -1
- package/lib/commonjs/ui/Prompt/index.js.map +1 -1
- package/lib/commonjs/ui/Switch/index.js.map +1 -1
- package/lib/commonjs/ui/Text/index.js.map +1 -1
- package/lib/commonjs/ui/Toast/index.js.map +1 -1
- package/lib/commonjs/ui/URLParsedText/index.js.map +1 -1
- package/lib/module/components/Image/index.js.map +1 -1
- package/lib/module/styles/HeaderStyleContext.js.map +1 -1
- package/lib/module/theme/UIKitThemeProvider.js.map +1 -1
- package/lib/module/ui/ActionMenu/index.js.map +1 -1
- package/lib/module/ui/Alert/index.js.map +1 -1
- package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/module/ui/Avatar/AvatarIcon.js.map +1 -1
- package/lib/module/ui/Avatar/index.js.map +1 -1
- package/lib/module/ui/Badge/index.js.map +1 -1
- package/lib/module/ui/BottomSheet/index.js.map +1 -1
- package/lib/module/ui/Button/index.js.map +1 -1
- package/lib/module/ui/ChannelFrozenBanner/index.js.map +1 -1
- package/lib/module/ui/Dialog/DialogBox.js.map +1 -1
- package/lib/module/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/module/ui/Dialog/index.js.map +1 -1
- package/lib/module/ui/Divider/index.js.map +1 -1
- package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/module/ui/Header/index.js.map +1 -1
- package/lib/module/ui/Icon/index.js.map +1 -1
- package/lib/module/ui/LoadingSpinner/index.js.map +1 -1
- package/lib/module/ui/MenuBar/index.js.map +1 -1
- package/lib/module/ui/Modal/index.js.map +1 -1
- package/lib/module/ui/Placeholder/index.js.map +1 -1
- package/lib/module/ui/Prompt/index.js.map +1 -1
- package/lib/module/ui/Switch/index.js.map +1 -1
- package/lib/module/ui/Text/index.js.map +1 -1
- package/lib/module/ui/Toast/index.js.map +1 -1
- package/lib/module/ui/URLParsedText/index.js.map +1 -1
- package/lib/typescript/src/components/Image/index.d.ts +1 -2
- package/lib/typescript/src/styles/HeaderStyleContext.d.ts +1 -1
- package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +3 -3
- package/lib/typescript/src/ui/ActionMenu/index.d.ts +1 -2
- package/lib/typescript/src/ui/Alert/index.d.ts +1 -2
- package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +3 -3
- package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +1 -2
- package/lib/typescript/src/ui/Avatar/index.d.ts +1 -2
- package/lib/typescript/src/ui/Badge/index.d.ts +1 -2
- package/lib/typescript/src/ui/BottomSheet/index.d.ts +1 -2
- package/lib/typescript/src/ui/Button/index.d.ts +3 -3
- package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +1 -2
- package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +3 -3
- package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +4 -4
- package/lib/typescript/src/ui/Dialog/index.d.ts +3 -3
- package/lib/typescript/src/ui/Divider/index.d.ts +1 -2
- package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +1 -1
- package/lib/typescript/src/ui/Header/index.d.ts +6 -10
- package/lib/typescript/src/ui/Icon/index.d.ts +1 -2
- package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +1 -2
- package/lib/typescript/src/ui/MenuBar/index.d.ts +1 -1
- package/lib/typescript/src/ui/Modal/index.d.ts +1 -2
- package/lib/typescript/src/ui/Placeholder/index.d.ts +1 -2
- package/lib/typescript/src/ui/Prompt/index.d.ts +1 -2
- package/lib/typescript/src/ui/Switch/index.d.ts +3 -3
- package/lib/typescript/src/ui/Text/index.d.ts +1 -2
- package/lib/typescript/src/ui/Toast/index.d.ts +5 -5
- package/lib/typescript/src/ui/URLParsedText/index.d.ts +1 -2
- package/package.json +5 -5
- package/src/components/Image/index.ts +1 -2
- package/src/styles/HeaderStyleContext.tsx +2 -2
- package/src/theme/UIKitThemeProvider.tsx +4 -2
- package/src/ui/ActionMenu/index.tsx +1 -1
- package/src/ui/Alert/index.tsx +1 -8
- package/src/ui/Avatar/AvatarGroup.tsx +5 -2
- package/src/ui/Avatar/AvatarIcon.tsx +1 -1
- package/src/ui/Avatar/index.tsx +12 -3
- package/src/ui/Badge/index.tsx +1 -1
- package/src/ui/BottomSheet/index.tsx +1 -1
- package/src/ui/Button/index.tsx +4 -4
- package/src/ui/ChannelFrozenBanner/index.tsx +1 -1
- package/src/ui/Dialog/DialogBox.tsx +3 -3
- package/src/ui/Dialog/DialogSheet.tsx +4 -4
- package/src/ui/Dialog/index.tsx +3 -3
- package/src/ui/Divider/index.tsx +1 -1
- package/src/ui/GroupChannelPreview/index.tsx +2 -2
- package/src/ui/Header/index.tsx +6 -12
- package/src/ui/Icon/index.tsx +7 -2
- package/src/ui/LoadingSpinner/index.tsx +2 -2
- package/src/ui/MenuBar/index.tsx +2 -2
- package/src/ui/Modal/index.tsx +2 -2
- package/src/ui/Placeholder/index.tsx +1 -1
- package/src/ui/Prompt/index.tsx +2 -2
- package/src/ui/Switch/index.tsx +4 -4
- package/src/ui/Text/index.tsx +1 -1
- package/src/ui/Toast/index.tsx +8 -4
- package/src/ui/URLParsedText/index.tsx +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","useUIKitTheme","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","useHeaderStyle","modalVisible","setModalVisible","useState","showAction","hideAction","width","height","useWindowDimensions","useEffect","useOnDismiss","undefined","StyleSheet","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","Platform","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","React","useRef","PanResponder","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","Dimensions","get","baseAnimBackground","Animated","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","createStyleSheet","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n type?: 'slide' | 'fade';\n onClose: () => void;\n backgroundStyle?: StyleProp<ViewStyle>;\n disableBackgroundClose?: boolean;\n enableKeyboardAvoid?: boolean;\n} & Omit<ModalProps, 'animationType' | 'onRequestClose'>;\n\n/**\n * Modal Open: Triggered by Modal.props.visible state changed to true\n * - visible true -> modalVisible true -> animation start\n *\n * Modal Close: Triggered by Modal.props.onClose() call\n * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false\n * */\nconst Modal: React.FC<Props> = ({\n children,\n onClose,\n backgroundStyle,\n onDismiss,\n type = 'fade',\n visible = false,\n disableBackgroundClose = false,\n enableKeyboardAvoid = false,\n statusBarTranslucent,\n ...props\n}) => {\n const { palette } = useUIKitTheme();\n const { content, backdrop, showTransition, hideTransition } = useModalAnimation(type);\n const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);\n const { topInset } = useHeaderStyle();\n\n const [modalVisible, setModalVisible] = useState(false);\n const showAction = () => setModalVisible(true);\n const hideAction = () => hideTransition(() => setModalVisible(false));\n\n const { width, height } = useWindowDimensions();\n\n useEffect(() => {\n if (visible) showAction();\n else hideAction();\n }, [visible]);\n\n useOnDismiss(modalVisible, onDismiss);\n\n return (\n <RNModal\n transparent\n hardwareAccelerated\n visible={modalVisible}\n onRequestClose={onClose}\n onShow={() => showTransition()}\n onDismiss={onDismiss}\n supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}\n animationType={'none'}\n {...props}\n >\n <TouchableWithoutFeedback onPress={disableBackgroundClose ? undefined : onClose}>\n <Animated.View\n style={[StyleSheet.absoluteFill, { opacity: backdrop.opacity, backgroundColor: palette.onBackgroundLight03 }]}\n />\n </TouchableWithoutFeedback>\n <KeyboardAvoidingView\n // NOTE: This is trick for Android.\n // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.\n key={`${width}-${height}`}\n enabled={enableKeyboardAvoid}\n style={styles.background}\n behavior={Platform.select({ ios: 'padding', default: 'height' })}\n pointerEvents={'box-none'}\n keyboardVerticalOffset={enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0}\n >\n <Animated.View\n style={[\n styles.background,\n backgroundStyle,\n { opacity: content.opacity, transform: [{ translateY: content.translateY }] },\n ]}\n pointerEvents={'box-none'}\n {...panResponder.panHandlers}\n >\n <Pressable\n // NOTE: https://github.com/facebook/react-native/issues/14295\n // Due to 'Pressable', the width of the children must be explicitly specified as a number.\n >\n {children}\n </Pressable>\n </Animated.View>\n </KeyboardAvoidingView>\n </RNModal>\n );\n};\n\nconst isHideGesture = (distanceY: number, velocityY: number) => {\n return distanceY > 125 || (distanceY > 0 && velocityY > 0.1);\n};\nconst useModalPanResponder = (\n type: 'slide' | 'fade',\n translateY: Animated.Value,\n show: () => void,\n hide: () => void,\n) => {\n if (type === 'fade') return { panHandlers: {} };\n return React.useRef(\n PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, { dy }) => dy > 8,\n // @ts-ignore\n onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),\n onPanResponderMove: (_, { dy }) => dy >= 0 && translateY.setValue(dy), // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),\n onPanResponderRelease: (_, { dy, vy }) => {\n if (isHideGesture(dy, vy)) hide();\n else show();\n },\n }),\n ).current;\n};\n\nconst useModalAnimation = (type: 'slide' | 'fade') => {\n const initialY = type === 'slide' ? Dimensions.get('window').height : 0;\n const baseAnimBackground = useRef(new Animated.Value(0)).current;\n const baseAnimContent = useRef(new Animated.Value(initialY)).current;\n\n const content = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [type === 'slide' ? 1 : 0, 1],\n }),\n translateY: baseAnimContent,\n };\n const backdrop = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n }),\n };\n const createTransition = (toValue: 0 | 1) => {\n const config = { duration: 250, useNativeDriver: false };\n return Animated.parallel([\n Animated.timing(baseAnimBackground, { toValue, ...config }),\n Animated.timing(baseAnimContent, { toValue: toValue === 0 ? initialY : 0, ...config }),\n ]).start;\n };\n return {\n content,\n backdrop,\n showTransition: createTransition(1),\n hideTransition: createTransition(0),\n };\n};\n\n// NOTE: onDismiss is supports iOS only\nconst useOnDismiss = (visible: boolean, onDismiss?: () => void) => {\n const prevVisible = usePrevProp(visible);\n useEffect(() => {\n if (Platform.OS === 'ios') return;\n if (prevVisible && !visible) onDismiss?.();\n }, [prevVisible, visible]);\n};\n\nconst usePrevProp = <T,>(prop: T) => {\n const prev = useRef(prop);\n const curr = useRef(prop);\n useEffect(() => {\n prev.current = curr.current;\n curr.current = prop;\n });\n return prev.current;\n};\n\nconst styles = createStyleSheet({\n background: { flex: 1 },\n});\n\nexport default Modal;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Modal","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","useUIKitTheme","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","useHeaderStyle","modalVisible","setModalVisible","useState","showAction","hideAction","width","height","useWindowDimensions","useEffect","useOnDismiss","undefined","StyleSheet","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","Platform","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","React","useRef","PanResponder","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","Dimensions","get","baseAnimBackground","Animated","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","createStyleSheet","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n type?: 'slide' | 'fade';\n onClose: () => void;\n backgroundStyle?: StyleProp<ViewStyle>;\n disableBackgroundClose?: boolean;\n enableKeyboardAvoid?: boolean;\n} & Omit<ModalProps, 'animationType' | 'onRequestClose'>;\n\n/**\n * Modal Open: Triggered by Modal.props.visible state changed to true\n * - visible true -> modalVisible true -> animation start\n *\n * Modal Close: Triggered by Modal.props.onClose() call\n * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false\n * */\nconst Modal = ({\n children,\n onClose,\n backgroundStyle,\n onDismiss,\n type = 'fade',\n visible = false,\n disableBackgroundClose = false,\n enableKeyboardAvoid = false,\n statusBarTranslucent,\n ...props\n}: Props) => {\n const { palette } = useUIKitTheme();\n const { content, backdrop, showTransition, hideTransition } = useModalAnimation(type);\n const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);\n const { topInset } = useHeaderStyle();\n\n const [modalVisible, setModalVisible] = useState(false);\n const showAction = () => setModalVisible(true);\n const hideAction = () => hideTransition(() => setModalVisible(false));\n\n const { width, height } = useWindowDimensions();\n\n useEffect(() => {\n if (visible) showAction();\n else hideAction();\n }, [visible]);\n\n useOnDismiss(modalVisible, onDismiss);\n\n return (\n <RNModal\n transparent\n hardwareAccelerated\n visible={modalVisible}\n onRequestClose={onClose}\n onShow={() => showTransition()}\n onDismiss={onDismiss}\n supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}\n animationType={'none'}\n {...props}\n >\n <TouchableWithoutFeedback onPress={disableBackgroundClose ? undefined : onClose}>\n <Animated.View\n style={[StyleSheet.absoluteFill, { opacity: backdrop.opacity, backgroundColor: palette.onBackgroundLight03 }]}\n />\n </TouchableWithoutFeedback>\n <KeyboardAvoidingView\n // NOTE: This is trick for Android.\n // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.\n key={`${width}-${height}`}\n enabled={enableKeyboardAvoid}\n style={styles.background}\n behavior={Platform.select({ ios: 'padding', default: 'height' })}\n pointerEvents={'box-none'}\n keyboardVerticalOffset={enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0}\n >\n <Animated.View\n style={[\n styles.background,\n backgroundStyle,\n { opacity: content.opacity, transform: [{ translateY: content.translateY }] },\n ]}\n pointerEvents={'box-none'}\n {...panResponder.panHandlers}\n >\n <Pressable\n // NOTE: https://github.com/facebook/react-native/issues/14295\n // Due to 'Pressable', the width of the children must be explicitly specified as a number.\n >\n {children}\n </Pressable>\n </Animated.View>\n </KeyboardAvoidingView>\n </RNModal>\n );\n};\n\nconst isHideGesture = (distanceY: number, velocityY: number) => {\n return distanceY > 125 || (distanceY > 0 && velocityY > 0.1);\n};\nconst useModalPanResponder = (\n type: 'slide' | 'fade',\n translateY: Animated.Value,\n show: () => void,\n hide: () => void,\n) => {\n if (type === 'fade') return { panHandlers: {} };\n return React.useRef(\n PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, { dy }) => dy > 8,\n // @ts-ignore\n onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),\n onPanResponderMove: (_, { dy }) => dy >= 0 && translateY.setValue(dy), // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),\n onPanResponderRelease: (_, { dy, vy }) => {\n if (isHideGesture(dy, vy)) hide();\n else show();\n },\n }),\n ).current;\n};\n\nconst useModalAnimation = (type: 'slide' | 'fade') => {\n const initialY = type === 'slide' ? Dimensions.get('window').height : 0;\n const baseAnimBackground = useRef(new Animated.Value(0)).current;\n const baseAnimContent = useRef(new Animated.Value(initialY)).current;\n\n const content = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [type === 'slide' ? 1 : 0, 1],\n }),\n translateY: baseAnimContent,\n };\n const backdrop = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n }),\n };\n const createTransition = (toValue: 0 | 1) => {\n const config = { duration: 250, useNativeDriver: false };\n return Animated.parallel([\n Animated.timing(baseAnimBackground, { toValue, ...config }),\n Animated.timing(baseAnimContent, { toValue: toValue === 0 ? initialY : 0, ...config }),\n ]).start;\n };\n return {\n content,\n backdrop,\n showTransition: createTransition(1),\n hideTransition: createTransition(0),\n };\n};\n\n// NOTE: onDismiss is supports iOS only\nconst useOnDismiss = (visible: boolean, onDismiss?: () => void) => {\n const prevVisible = usePrevProp(visible);\n useEffect(() => {\n if (Platform.OS === 'ios') return;\n if (prevVisible && !visible) onDismiss?.();\n }, [prevVisible, visible]);\n};\n\nconst usePrevProp = <T,>(prop: T) => {\n const prev = useRef(prop);\n const curr = useRef(prop);\n useEffect(() => {\n prev.current = curr.current;\n curr.current = prop;\n });\n return prev.current;\n};\n\nconst styles = createStyleSheet({\n background: { flex: 1 },\n});\n\nexport default Modal;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Placeholder","icon","loading","message","errorRetryLabel","onPressRetry","colors","useUIKitTheme","conditionChaining","styles","containerLoading","containerError","container","ui","placeholder","default","none","highlight","content","Boolean","createStyleSheet","width","height","alignItems","justifyContent"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Text from '../Text';\n\ntype Props = {\n loading?: boolean;\n\n icon: keyof typeof Icon.Assets;\n message?: string;\n errorRetryLabel?: string;\n onPressRetry?: () => void;\n};\n\nconst Placeholder
|
|
1
|
+
{"version":3,"names":["Placeholder","icon","loading","message","errorRetryLabel","onPressRetry","colors","useUIKitTheme","conditionChaining","styles","containerLoading","containerError","container","ui","placeholder","default","none","highlight","content","Boolean","createStyleSheet","width","height","alignItems","justifyContent"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Text from '../Text';\n\ntype Props = {\n loading?: boolean;\n\n icon: keyof typeof Icon.Assets;\n message?: string;\n errorRetryLabel?: string;\n onPressRetry?: () => void;\n};\n\nconst Placeholder = ({ icon, loading = false, message = '', errorRetryLabel, onPressRetry }: Props) => {\n const { colors } = useUIKitTheme();\n\n // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container\n return (\n <View\n style={conditionChaining(\n [loading, errorRetryLabel],\n [styles.containerLoading, styles.containerError, styles.container],\n )}\n >\n {conditionChaining(\n [loading],\n [\n <LoadingSpinner size={64} color={colors.ui.placeholder.default.none.highlight} />,\n <Icon icon={icon} size={64} color={colors.ui.placeholder.default.none.content} />,\n ],\n )}\n {Boolean(message) && !loading && (\n <Text body3 color={colors.ui.placeholder.default.none.content}>\n {message}\n </Text>\n )}\n {Boolean(errorRetryLabel) && !loading && (\n <Button\n variant={'text'}\n onPress={onPressRetry}\n contentColor={colors.ui.placeholder.default.none.highlight}\n icon={'refresh'}\n >\n {errorRetryLabel}\n </Button>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerError: {\n width: 200,\n height: 148,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerLoading: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default Placeholder;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAWA,MAAMA,WAAW,GAAG,QAAmF;EAAA,IAAlF;IAAEC,IAAF;IAAQC,OAAO,GAAG,KAAlB;IAAyBC,OAAO,GAAG,EAAnC;IAAuCC,eAAvC;IAAwDC;EAAxD,CAAkF;EACrG,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB,CADqG,CAGrG;;EACA,oBACE,6BAAC,iBAAD;IACE,KAAK,EAAE,IAAAC,6BAAA,EACL,CAACN,OAAD,EAAUE,eAAV,CADK,EAEL,CAACK,MAAM,CAACC,gBAAR,EAA0BD,MAAM,CAACE,cAAjC,EAAiDF,MAAM,CAACG,SAAxD,CAFK;EADT,GAMG,IAAAJ,6BAAA,EACC,CAACN,OAAD,CADD,EAEC,cACE,6BAAC,uBAAD;IAAgB,IAAI,EAAE,EAAtB;IAA0B,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC;EAApE,EADF,eAEE,6BAAC,aAAD;IAAM,IAAI,EAAEhB,IAAZ;IAAkB,IAAI,EAAE,EAAxB;IAA4B,KAAK,EAAEK,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtE,EAFF,CAFD,CANH,EAaGC,OAAO,CAAChB,OAAD,CAAP,IAAoB,CAACD,OAArB,iBACC,6BAAC,aAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtD,GACGf,OADH,CAdJ,EAkBGgB,OAAO,CAACf,eAAD,CAAP,IAA4B,CAACF,OAA7B,iBACC,6BAAC,eAAD;IACE,OAAO,EAAE,MADX;IAEE,OAAO,EAAEG,YAFX;IAGE,YAAY,EAAEC,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC,SAHnD;IAIE,IAAI,EAAE;EAJR,GAMGb,eANH,CAnBJ,CADF;AA+BD,CAnCD;;AAqCA,MAAMK,MAAM,GAAG,IAAAW,yBAAA,EAAiB;EAC9BR,SAAS,EAAE;IACTS,KAAK,EAAE,GADE;IAETC,MAAM,EAAE,GAFC;IAGTC,UAAU,EAAE,QAHH;IAITC,cAAc,EAAE;EAJP,CADmB;EAO9Bb,cAAc,EAAE;IACdU,KAAK,EAAE,GADO;IAEdC,MAAM,EAAE,GAFM;IAGdC,UAAU,EAAE,QAHE;IAIdC,cAAc,EAAE;EAJF,CAPc;EAa9Bd,gBAAgB,EAAE;IAChBW,KAAK,EAAE,GADS;IAEhBC,MAAM,EAAE,GAFQ;IAGhBC,UAAU,EAAE,QAHI;IAIhBC,cAAc,EAAE;EAJA;AAbY,CAAjB,CAAf;eAqBexB,W"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Prompt","onDismiss","visible","onHide","autoFocus","title","defaultValue","placeholder","onSubmit","NOOP","onCancel","submitLabel","cancelLabel","statusBarTranslucent","useHeaderStyle","colors","useUIKitTheme","inputRef","useRef","width","height","useWindowDimensions","buttons","text","onPress","setText","useState","useEffect","setTimeout","Platform","OS","current","blur","focus","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","inputContainer","paddingHorizontal","paddingVertical","buttonContainer","map","index","button","highlight","Keyboard","dismiss","createStyleSheet","paddingTop","marginBottom","flexDirection","padding","marginLeft"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Keyboard, Platform, TextInput as RNTextInput, View, useWindowDimensions } from 'react-native';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\nimport TextInput from '../TextInput';\n\nexport type PromptItem = {\n title: string;\n placeholder?: string;\n defaultValue?: string;\n onSubmit?: (text: string) => void;\n submitLabel?: string;\n onCancel?: () => void;\n cancelLabel?: string;\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n autoFocus?: boolean;\n} & PromptItem;\nconst Prompt
|
|
1
|
+
{"version":3,"names":["Prompt","onDismiss","visible","onHide","autoFocus","title","defaultValue","placeholder","onSubmit","NOOP","onCancel","submitLabel","cancelLabel","statusBarTranslucent","useHeaderStyle","colors","useUIKitTheme","inputRef","useRef","width","height","useWindowDimensions","buttons","text","onPress","setText","useState","useEffect","setTimeout","Platform","OS","current","blur","focus","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","inputContainer","paddingHorizontal","paddingVertical","buttonContainer","map","index","button","highlight","Keyboard","dismiss","createStyleSheet","paddingTop","marginBottom","flexDirection","padding","marginLeft"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Keyboard, Platform, TextInput as RNTextInput, View, useWindowDimensions } from 'react-native';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\nimport TextInput from '../TextInput';\n\nexport type PromptItem = {\n title: string;\n placeholder?: string;\n defaultValue?: string;\n onSubmit?: (text: string) => void;\n submitLabel?: string;\n onCancel?: () => void;\n cancelLabel?: string;\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n autoFocus?: boolean;\n} & PromptItem;\nconst Prompt = ({\n onDismiss,\n visible,\n onHide,\n autoFocus = true,\n title,\n defaultValue = '',\n placeholder = 'Enter',\n onSubmit = NOOP,\n onCancel = NOOP,\n submitLabel = 'Submit',\n cancelLabel = 'Cancel',\n}: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const inputRef = useRef<RNTextInput>(null);\n const { width, height } = useWindowDimensions();\n\n const buttons = [\n { text: cancelLabel, onPress: onCancel },\n { text: submitLabel, onPress: () => onSubmit(text) },\n ];\n\n const [text, setText] = useState(defaultValue);\n\n // FIXME: autoFocus trick with modal\n // Android\n // - InputProps.autoFocus is not trigger keyboard appearing.\n // - InputRef.focus() is trigger keyboard appearing, but position of keyboard selection is always the start of text.\n // iOS\n // - InputProps.autoFocus is trigger weird UI behavior on landscape mode.\n useEffect(() => {\n if (autoFocus && visible) {\n setTimeout(() => {\n if (Platform.OS === 'android') inputRef.current?.blur();\n inputRef.current?.focus();\n }, 250);\n }\n }, [autoFocus, visible, `${width}-${height}`]);\n\n return (\n <Modal\n enableKeyboardAvoid\n disableBackgroundClose\n onClose={onHide}\n onDismiss={() => {\n setText('');\n onDismiss?.();\n }}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.inputContainer}>\n <TextInput\n autoFocus={autoFocus && Platform.OS === 'android'}\n ref={inputRef}\n placeholder={placeholder}\n variant={'underline'}\n value={text}\n onChangeText={setText}\n style={{ paddingHorizontal: 0, paddingVertical: 10 }}\n />\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text, onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n contentColor={colors.ui.dialog.default.none.highlight}\n onPress={() => {\n Keyboard.dismiss();\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 8,\n },\n titleContainer: {\n marginBottom: 12,\n paddingVertical: 12,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n inputContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n button: {\n marginLeft: 8,\n },\n});\n\nexport default Prompt;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Switch","value","onChangeValue","inactiveThumbColor","inactiveTrackColor","trackColor","thumbColor","select","palette","colors","useUIKitTheme","position","useRef","Animated","Value","current","useEffect","animation","timing","toValue","styles","thumbOn","left","thumbOff","duration","useNativeDriver","start","stop","createInterpolate","offValue","onValue","interpolate","inputRange","outputRange","extrapolate","_trackColor","onBackground04","primary200","_thumbColor","background300","light","primary400","dark","primary300","container","track","backgroundColor","thumb","transform","translateX","OFFSET","W","H","createStyleSheet","width","height","alignItems","justifyContent","borderRadius","Platform","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","shadowOpacity"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Platform, Pressable } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\
|
|
1
|
+
{"version":3,"names":["Switch","value","onChangeValue","inactiveThumbColor","inactiveTrackColor","trackColor","thumbColor","select","palette","colors","useUIKitTheme","position","useRef","Animated","Value","current","useEffect","animation","timing","toValue","styles","thumbOn","left","thumbOff","duration","useNativeDriver","start","stop","createInterpolate","offValue","onValue","interpolate","inputRange","outputRange","extrapolate","_trackColor","onBackground04","primary200","_thumbColor","background300","light","primary400","dark","primary300","container","track","backgroundColor","thumb","transform","translateX","OFFSET","W","H","createStyleSheet","width","height","alignItems","justifyContent","borderRadius","Platform","android","elevation","ios","shadowColor","shadowRadius","shadowOffset","shadowOpacity"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Platform, Pressable } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype SwitchProps = React.PropsWithChildren<{\n trackColor?: string;\n thumbColor?: string;\n inactiveThumbColor?: string;\n inactiveTrackColor?: string;\n\n value: boolean;\n onChangeValue: (val: boolean) => void;\n}>;\nconst Switch = ({\n value,\n onChangeValue,\n inactiveThumbColor,\n inactiveTrackColor,\n trackColor,\n thumbColor,\n}: SwitchProps) => {\n const { select, palette, colors } = useUIKitTheme();\n const position = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n const animation = Animated.timing(position, {\n toValue: value ? styles.thumbOn.left : styles.thumbOff.left,\n duration: 150,\n useNativeDriver: false,\n });\n animation.start();\n return () => animation.stop();\n }, [value]);\n\n const createInterpolate = <T extends string>(offValue: T, onValue: T) => {\n return position.interpolate({\n inputRange: [styles.thumbOff.left, styles.thumbOn.left],\n outputRange: [offValue, onValue],\n extrapolate: 'clamp',\n });\n };\n const _trackColor = createInterpolate(inactiveTrackColor ?? colors.onBackground04, trackColor ?? palette.primary200);\n const _thumbColor = createInterpolate(\n inactiveThumbColor ?? palette.background300,\n thumbColor ?? select({ light: palette.primary400, dark: palette.primary300 }),\n );\n\n return (\n <Pressable onPress={() => onChangeValue(!value)} style={[styles.container]}>\n <Animated.View style={[styles.track, { backgroundColor: _trackColor }]} />\n <Animated.View style={[styles.thumb, { backgroundColor: _thumbColor, transform: [{ translateX: position }] }]} />\n </Pressable>\n );\n};\n\nconst OFFSET = { W: 20, H: 16 };\nconst styles = createStyleSheet({\n container: {\n width: OFFSET.W + OFFSET.H,\n height: OFFSET.H,\n alignItems: 'center',\n justifyContent: 'center',\n },\n track: {\n width: '100%',\n height: '100%',\n borderRadius: OFFSET.H / 2,\n position: 'absolute',\n },\n thumb: {\n width: OFFSET.W,\n height: OFFSET.W,\n borderRadius: OFFSET.W / 2,\n ...Platform.select({\n android: {\n elevation: 2,\n },\n ios: {\n shadowColor: 'black',\n shadowRadius: 1,\n shadowOffset: { width: 0, height: 2 },\n shadowOpacity: 0.4,\n },\n }),\n },\n thumbOn: {\n left: OFFSET.H / 2,\n },\n thumbOff: {\n left: -OFFSET.H / 2,\n },\n});\n\nexport default Switch;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Text","children","color","style","props","colors","useUIKitTheme","typoStyle","useTypographyFilter","text","h1","h2","subtitle1","subtitle2","body1","body2","body3","button","caption1","caption2","caption3","caption4","typography"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Text as RNText, TextProps as RNTextProps } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { TypoName, UIKitTheme } from '../../types';\n\ntype TypographyProps = Partial<Record<TypoName, boolean>>;\nexport type TextProps = RNTextProps & TypographyProps & { color?: ((colors: UIKitTheme['colors']) => string) | string };\nconst Text
|
|
1
|
+
{"version":3,"names":["Text","children","color","style","props","colors","useUIKitTheme","typoStyle","useTypographyFilter","text","h1","h2","subtitle1","subtitle2","body1","body2","body3","button","caption1","caption2","caption3","caption4","typography"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Text as RNText, TextProps as RNTextProps } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { TypoName, UIKitTheme } from '../../types';\n\ntype TypographyProps = Partial<Record<TypoName, boolean>>;\nexport type TextProps = RNTextProps & TypographyProps & { color?: ((colors: UIKitTheme['colors']) => string) | string };\nconst Text = ({ children, color, style, ...props }: TextProps) => {\n const { colors } = useUIKitTheme();\n const typoStyle = useTypographyFilter(props);\n return (\n <RNText\n style={[{ color: typeof color === 'string' ? color : color?.(colors) ?? colors.text }, typoStyle, style]}\n {...props}\n >\n {children}\n </RNText>\n );\n};\n\nconst useTypographyFilter = ({\n h1,\n h2,\n subtitle1,\n subtitle2,\n body1,\n body2,\n body3,\n button,\n caption1,\n caption2,\n caption3,\n caption4,\n}: TypographyProps) => {\n const { typography } = useUIKitTheme();\n if (h1) return typography.h1;\n if (h2) return typography.h2;\n if (subtitle1) return typography.subtitle1;\n if (subtitle2) return typography.subtitle2;\n if (body1) return typography.body1;\n if (body2) return typography.body2;\n if (body3) return typography.body3;\n if (button) return typography.button;\n if (caption1) return typography.caption1;\n if (caption2) return typography.caption2;\n if (caption3) return typography.caption3;\n if (caption4) return typography.caption4;\n return {};\n};\n\nexport default Text;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;;;;;AAKA,MAAMA,IAAI,GAAG,QAAqD;EAAA,IAApD;IAAEC,QAAF;IAAYC,KAAZ;IAAmBC,KAAnB;IAA0B,GAAGC;EAA7B,CAAoD;EAChE,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB;EACA,MAAMC,SAAS,GAAGC,mBAAmB,CAACJ,KAAD,CAArC;EACA,oBACE,6BAAC,iBAAD;IACE,KAAK,EAAE,CAAC;MAAEF,KAAK,EAAE,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC,CAAAA,KAAK,SAAL,IAAAA,KAAK,WAAL,YAAAA,KAAK,CAAGG,MAAH,CAAL,KAAmBA,MAAM,CAACI;IAAvE,CAAD,EAAgFF,SAAhF,EAA2FJ,KAA3F;EADT,GAEMC,KAFN,GAIGH,QAJH,CADF;AAQD,CAXD;;AAaA,MAAMO,mBAAmB,GAAG,SAaL;EAAA,IAbM;IAC3BE,EAD2B;IAE3BC,EAF2B;IAG3BC,SAH2B;IAI3BC,SAJ2B;IAK3BC,KAL2B;IAM3BC,KAN2B;IAO3BC,KAP2B;IAQ3BC,MAR2B;IAS3BC,QAT2B;IAU3BC,QAV2B;IAW3BC,QAX2B;IAY3BC;EAZ2B,CAaN;EACrB,MAAM;IAAEC;EAAF,IAAiB,IAAAhB,sBAAA,GAAvB;EACA,IAAII,EAAJ,EAAQ,OAAOY,UAAU,CAACZ,EAAlB;EACR,IAAIC,EAAJ,EAAQ,OAAOW,UAAU,CAACX,EAAlB;EACR,IAAIC,SAAJ,EAAe,OAAOU,UAAU,CAACV,SAAlB;EACf,IAAIC,SAAJ,EAAe,OAAOS,UAAU,CAACT,SAAlB;EACf,IAAIC,KAAJ,EAAW,OAAOQ,UAAU,CAACR,KAAlB;EACX,IAAIC,KAAJ,EAAW,OAAOO,UAAU,CAACP,KAAlB;EACX,IAAIC,KAAJ,EAAW,OAAOM,UAAU,CAACN,KAAlB;EACX,IAAIC,MAAJ,EAAY,OAAOK,UAAU,CAACL,MAAlB;EACZ,IAAIC,QAAJ,EAAc,OAAOI,UAAU,CAACJ,QAAlB;EACd,IAAIC,QAAJ,EAAc,OAAOG,UAAU,CAACH,QAAlB;EACd,IAAIC,QAAJ,EAAc,OAAOE,UAAU,CAACF,QAAlB;EACd,IAAIC,QAAJ,EAAc,OAAOC,UAAU,CAACD,QAAlB;EACd,OAAO,EAAP;AACD,CA5BD;;eA8BerB,I"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ToastContext","createContext","useOpacity","opacity","useRef","Animated","Value","current","transition","useCallback","value","timing","toValue","duration","useNativeDriver","start","show","hide","Toast","visible","type","children","top","bottom","colors","select","palette","useUIKitTheme","color","useMemo","dark","error300","light","error200","secondary300","secondary200","backgroundColor","useEffect","styles","toast","icon","onBackgroundReverse01","text","VISIBLE_MS","ToastProvider","dismissTimeout","state","setState","useState","useSafeAreaInsets","hideTimeout","setTimeout","prev","clearTimeout","toastPosition","useToast","context","useContext","Error","createStyleSheet","position","height","paddingHorizontal","justifyContent","alignItems","alignSelf","borderRadius","flexDirection","marginRight","maxWidth"],"sources":["index.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { Animated } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\ntype ToastType = 'normal' | 'error' | 'success';\ntype Context = { show(text: string, type?: ToastType): void };\n\nconst ToastContext = createContext<Context | null>(null);\n\ntype Props = {\n top?: number;\n bottom?: number;\n visible: boolean;\n type: ToastType;\n children: string;\n}
|
|
1
|
+
{"version":3,"names":["ToastContext","createContext","useOpacity","opacity","useRef","Animated","Value","current","transition","useCallback","value","timing","toValue","duration","useNativeDriver","start","show","hide","Toast","visible","type","children","top","bottom","colors","select","palette","useUIKitTheme","color","useMemo","dark","error300","light","error200","secondary300","secondary200","backgroundColor","useEffect","styles","toast","icon","onBackgroundReverse01","text","VISIBLE_MS","ToastProvider","dismissTimeout","state","setState","useState","useSafeAreaInsets","hideTimeout","setTimeout","prev","clearTimeout","toastPosition","useToast","context","useContext","Error","createStyleSheet","position","height","paddingHorizontal","justifyContent","alignItems","alignSelf","borderRadius","flexDirection","marginRight","maxWidth"],"sources":["index.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { Animated } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\ntype ToastType = 'normal' | 'error' | 'success';\ntype Context = { show(text: string, type?: ToastType): void };\n\nconst ToastContext = createContext<Context | null>(null);\n\ntype Props = React.PropsWithChildren<{\n top?: number;\n bottom?: number;\n visible: boolean;\n type: ToastType;\n children: string;\n}>;\n\nconst useOpacity = () => {\n const opacity = useRef(new Animated.Value(0)).current;\n const transition = useCallback(\n (value: number) => Animated.timing(opacity, { toValue: value, duration: 500, useNativeDriver: true }).start(),\n [],\n );\n return {\n opacity,\n show: () => transition(1),\n hide: () => transition(0),\n };\n};\n\nconst Toast = ({ visible, type, children, top, bottom }: Props) => {\n const { colors, select, palette } = useUIKitTheme();\n const { opacity, show, hide } = useOpacity();\n\n const color = useMemo(() => {\n if (type === 'error') {\n return select({ dark: palette.error300, light: palette.error200 });\n }\n if (type === 'success') {\n return select({ dark: palette.secondary300, light: palette.secondary200 });\n }\n return 'transparent';\n }, [type, select]);\n\n const backgroundColor = useMemo(() => {\n return select({ light: 'rgba(0,0,0,0.64)', dark: 'rgba(255,255,255,0.64)' });\n }, [select]);\n\n useEffect(() => {\n visible ? show() : hide();\n }, [visible]);\n\n return (\n <Animated.View pointerEvents={'none'} style={[styles.toast, { opacity, top, bottom, backgroundColor }]}>\n {type !== 'normal' && (\n <Icon icon={type === 'success' ? 'done' : 'error'} color={color} containerStyle={styles.icon} />\n )}\n <Text color={colors.onBackgroundReverse01} body3 numberOfLines={2} style={styles.text}>\n {children}\n </Text>\n </Animated.View>\n );\n};\n\nconst VISIBLE_MS = 3000;\nexport const ToastProvider = ({\n children,\n dismissTimeout = VISIBLE_MS,\n}: React.PropsWithChildren<{ dismissTimeout?: number }>) => {\n const [state, setState] = useState({ visible: false, type: 'error' as ToastType, text: '' });\n const { bottom } = useSafeAreaInsets();\n\n useEffect(() => {\n if (!state.visible) return;\n\n const hideTimeout = setTimeout(() => {\n setState((prev) => ({ ...prev, visible: false }));\n }, dismissTimeout);\n return () => clearTimeout(hideTimeout);\n });\n\n return (\n <ToastContext.Provider value={{ show: (text, type = 'normal') => text && setState({ text, type, visible: true }) }}>\n {children}\n <Toast type={state.type} visible={state.visible} bottom={bottom + styles.toastPosition.bottom}>\n {state.text}\n </Toast>\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = () => {\n const context = useContext(ToastContext);\n if (!context) throw new Error('ToastContext is not provided, wrap your app with ToastProvider');\n return context;\n};\n\nconst styles = createStyleSheet({\n toast: {\n position: 'absolute',\n height: 48,\n paddingHorizontal: 12,\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'center',\n borderRadius: 24,\n flexDirection: 'row',\n },\n icon: {\n marginRight: 4,\n },\n text: {\n maxWidth: 240,\n paddingHorizontal: 4,\n },\n toastPosition: {\n bottom: 60,\n },\n});\n\nexport default Toast;\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAEA;;AACA;;AACA;;AACA;;;;;;;;AAKA,MAAMA,YAAY,gBAAG,IAAAC,oBAAA,EAA8B,IAA9B,CAArB;;AAUA,MAAMC,UAAU,GAAG,MAAM;EACvB,MAAMC,OAAO,GAAG,IAAAC,aAAA,EAAO,IAAIC,qBAAA,CAASC,KAAb,CAAmB,CAAnB,CAAP,EAA8BC,OAA9C;EACA,MAAMC,UAAU,GAAG,IAAAC,kBAAA,EAChBC,KAAD,IAAmBL,qBAAA,CAASM,MAAT,CAAgBR,OAAhB,EAAyB;IAAES,OAAO,EAAEF,KAAX;IAAkBG,QAAQ,EAAE,GAA5B;IAAiCC,eAAe,EAAE;EAAlD,CAAzB,EAAmFC,KAAnF,EADF,EAEjB,EAFiB,CAAnB;EAIA,OAAO;IACLZ,OADK;IAELa,IAAI,EAAE,MAAMR,UAAU,CAAC,CAAD,CAFjB;IAGLS,IAAI,EAAE,MAAMT,UAAU,CAAC,CAAD;EAHjB,CAAP;AAKD,CAXD;;AAaA,MAAMU,KAAK,GAAG,QAAqD;EAAA,IAApD;IAAEC,OAAF;IAAWC,IAAX;IAAiBC,QAAjB;IAA2BC,GAA3B;IAAgCC;EAAhC,CAAoD;EACjE,MAAM;IAAEC,MAAF;IAAUC,MAAV;IAAkBC;EAAlB,IAA8B,IAAAC,sBAAA,GAApC;EACA,MAAM;IAAExB,OAAF;IAAWa,IAAX;IAAiBC;EAAjB,IAA0Bf,UAAU,EAA1C;EAEA,MAAM0B,KAAK,GAAG,IAAAC,cAAA,EAAQ,MAAM;IAC1B,IAAIT,IAAI,KAAK,OAAb,EAAsB;MACpB,OAAOK,MAAM,CAAC;QAAEK,IAAI,EAAEJ,OAAO,CAACK,QAAhB;QAA0BC,KAAK,EAAEN,OAAO,CAACO;MAAzC,CAAD,CAAb;IACD;;IACD,IAAIb,IAAI,KAAK,SAAb,EAAwB;MACtB,OAAOK,MAAM,CAAC;QAAEK,IAAI,EAAEJ,OAAO,CAACQ,YAAhB;QAA8BF,KAAK,EAAEN,OAAO,CAACS;MAA7C,CAAD,CAAb;IACD;;IACD,OAAO,aAAP;EACD,CARa,EAQX,CAACf,IAAD,EAAOK,MAAP,CARW,CAAd;EAUA,MAAMW,eAAe,GAAG,IAAAP,cAAA,EAAQ,MAAM;IACpC,OAAOJ,MAAM,CAAC;MAAEO,KAAK,EAAE,kBAAT;MAA6BF,IAAI,EAAE;IAAnC,CAAD,CAAb;EACD,CAFuB,EAErB,CAACL,MAAD,CAFqB,CAAxB;EAIA,IAAAY,gBAAA,EAAU,MAAM;IACdlB,OAAO,GAAGH,IAAI,EAAP,GAAYC,IAAI,EAAvB;EACD,CAFD,EAEG,CAACE,OAAD,CAFH;EAIA,oBACE,6BAAC,qBAAD,CAAU,IAAV;IAAe,aAAa,EAAE,MAA9B;IAAsC,KAAK,EAAE,CAACmB,MAAM,CAACC,KAAR,EAAe;MAAEpC,OAAF;MAAWmB,GAAX;MAAgBC,MAAhB;MAAwBa;IAAxB,CAAf;EAA7C,GACGhB,IAAI,KAAK,QAAT,iBACC,6BAAC,aAAD;IAAM,IAAI,EAAEA,IAAI,KAAK,SAAT,GAAqB,MAArB,GAA8B,OAA1C;IAAmD,KAAK,EAAEQ,KAA1D;IAAiE,cAAc,EAAEU,MAAM,CAACE;EAAxF,EAFJ,eAIE,6BAAC,aAAD;IAAM,KAAK,EAAEhB,MAAM,CAACiB,qBAApB;IAA2C,KAAK,MAAhD;IAAiD,aAAa,EAAE,CAAhE;IAAmE,KAAK,EAAEH,MAAM,CAACI;EAAjF,GACGrB,QADH,CAJF,CADF;AAUD,CAhCD;;AAkCA,MAAMsB,UAAU,GAAG,IAAnB;;AACO,MAAMC,aAAa,GAAG,SAG+B;EAAA,IAH9B;IAC5BvB,QAD4B;IAE5BwB,cAAc,GAAGF;EAFW,CAG8B;EAC1D,MAAM,CAACG,KAAD,EAAQC,QAAR,IAAoB,IAAAC,eAAA,EAAS;IAAE7B,OAAO,EAAE,KAAX;IAAkBC,IAAI,EAAE,OAAxB;IAA8CsB,IAAI,EAAE;EAApD,CAAT,CAA1B;EACA,MAAM;IAAEnB;EAAF,IAAa,IAAA0B,6CAAA,GAAnB;EAEA,IAAAZ,gBAAA,EAAU,MAAM;IACd,IAAI,CAACS,KAAK,CAAC3B,OAAX,EAAoB;IAEpB,MAAM+B,WAAW,GAAGC,UAAU,CAAC,MAAM;MACnCJ,QAAQ,CAAEK,IAAD,KAAW,EAAE,GAAGA,IAAL;QAAWjC,OAAO,EAAE;MAApB,CAAX,CAAD,CAAR;IACD,CAF6B,EAE3B0B,cAF2B,CAA9B;IAGA,OAAO,MAAMQ,YAAY,CAACH,WAAD,CAAzB;EACD,CAPD;EASA,oBACE,6BAAC,YAAD,CAAc,QAAd;IAAuB,KAAK,EAAE;MAAElC,IAAI,EAAE,UAAC0B,IAAD;QAAA,IAAOtB,IAAP,uEAAc,QAAd;QAAA,OAA2BsB,IAAI,IAAIK,QAAQ,CAAC;UAAEL,IAAF;UAAQtB,IAAR;UAAcD,OAAO,EAAE;QAAvB,CAAD,CAA3C;MAAA;IAAR;EAA9B,GACGE,QADH,eAEE,6BAAC,KAAD;IAAO,IAAI,EAAEyB,KAAK,CAAC1B,IAAnB;IAAyB,OAAO,EAAE0B,KAAK,CAAC3B,OAAxC;IAAiD,MAAM,EAAEI,MAAM,GAAGe,MAAM,CAACgB,aAAP,CAAqB/B;EAAvF,GACGuB,KAAK,CAACJ,IADT,CAFF,CADF;AAQD,CAxBM;;;;AA0BA,MAAMa,QAAQ,GAAG,MAAM;EAC5B,MAAMC,OAAO,GAAG,IAAAC,iBAAA,EAAWzD,YAAX,CAAhB;EACA,IAAI,CAACwD,OAAL,EAAc,MAAM,IAAIE,KAAJ,CAAU,gEAAV,CAAN;EACd,OAAOF,OAAP;AACD,CAJM;;;AAMP,MAAMlB,MAAM,GAAG,IAAAqB,yBAAA,EAAiB;EAC9BpB,KAAK,EAAE;IACLqB,QAAQ,EAAE,UADL;IAELC,MAAM,EAAE,EAFH;IAGLC,iBAAiB,EAAE,EAHd;IAILC,cAAc,EAAE,QAJX;IAKLC,UAAU,EAAE,QALP;IAMLC,SAAS,EAAE,QANN;IAOLC,YAAY,EAAE,EAPT;IAQLC,aAAa,EAAE;EARV,CADuB;EAW9B3B,IAAI,EAAE;IACJ4B,WAAW,EAAE;EADT,CAXwB;EAc9B1B,IAAI,EAAE;IACJ2B,QAAQ,EAAE,GADN;IAEJP,iBAAiB,EAAE;EAFf,CAdwB;EAkB9BR,aAAa,EAAE;IACb/B,MAAM,EAAE;EADK;AAlBe,CAAjB,CAAf;eAuBeL,K"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["openUrl","url","httpProtocol","targetUrl","Linking","openURL","catch","err","Logger","warn","URLParsedText","children","onPressUrl","strict","props","parsedChildren","useMemo","React","Children","map","toArray","child","replaceUrlAsComponents","startsWith","style","styles","createStyleSheet","textDecorationLine"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Linking } from 'react-native';\n\nimport { Logger, replaceUrlAsComponents } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport type { TextProps } from '../Text';\nimport Text from '../Text';\n\ntype OnPressUrl = (url: string, httpProtocol: boolean) => void;\n\nconst openUrl: OnPressUrl = (url, httpProtocol) => {\n const targetUrl = httpProtocol ? url : 'https://' + url;\n Linking.openURL(targetUrl).catch((err) => Logger.warn('[URLParsedText]', 'Cannot open url', err));\n};\n\ntype Props = TextProps & {\n onPressUrl?: OnPressUrl;\n strict?: boolean;\n};\nconst URLParsedText
|
|
1
|
+
{"version":3,"names":["openUrl","url","httpProtocol","targetUrl","Linking","openURL","catch","err","Logger","warn","URLParsedText","children","onPressUrl","strict","props","parsedChildren","useMemo","React","Children","map","toArray","child","replaceUrlAsComponents","startsWith","style","styles","createStyleSheet","textDecorationLine"],"sources":["index.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Linking } from 'react-native';\n\nimport { Logger, replaceUrlAsComponents } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport type { TextProps } from '../Text';\nimport Text from '../Text';\n\ntype OnPressUrl = (url: string, httpProtocol: boolean) => void;\n\nconst openUrl: OnPressUrl = (url, httpProtocol) => {\n const targetUrl = httpProtocol ? url : 'https://' + url;\n Linking.openURL(targetUrl).catch((err) => Logger.warn('[URLParsedText]', 'Cannot open url', err));\n};\n\ntype Props = TextProps & {\n onPressUrl?: OnPressUrl;\n strict?: boolean;\n};\nconst URLParsedText = ({ children, onPressUrl = openUrl, strict, ...props }: Props) => {\n const parsedChildren = useMemo((): React.ReactNode => {\n return React.Children.map(React.Children.toArray(children), (child) => {\n if (typeof child === 'string') {\n return replaceUrlAsComponents(\n child,\n (url) => {\n return (\n <Text\n {...props}\n suppressHighlighting\n onPress={() => onPressUrl?.(url, url.startsWith('http'))}\n style={[props.style, styles.url]}\n >\n {url}\n </Text>\n );\n },\n strict,\n );\n }\n\n return child;\n });\n }, [children]);\n\n return <Text {...props}>{parsedChildren}</Text>;\n};\nconst styles = createStyleSheet({\n url: { textDecorationLine: 'underline' },\n});\nexport default URLParsedText;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AAEA;;;;;;;;;;AAIA,MAAMA,OAAmB,GAAG,CAACC,GAAD,EAAMC,YAAN,KAAuB;EACjD,MAAMC,SAAS,GAAGD,YAAY,GAAGD,GAAH,GAAS,aAAaA,GAApD;;EACAG,oBAAA,CAAQC,OAAR,CAAgBF,SAAhB,EAA2BG,KAA3B,CAAkCC,GAAD,IAASC,kBAAA,CAAOC,IAAP,CAAY,iBAAZ,EAA+B,iBAA/B,EAAkDF,GAAlD,CAA1C;AACD,CAHD;;AASA,MAAMG,aAAa,GAAG,QAAiE;EAAA,IAAhE;IAAEC,QAAF;IAAYC,UAAU,GAAGZ,OAAzB;IAAkCa,MAAlC;IAA0C,GAAGC;EAA7C,CAAgE;EACrF,MAAMC,cAAc,GAAG,IAAAC,cAAA,EAAQ,MAAuB;IACpD,OAAOC,cAAA,CAAMC,QAAN,CAAeC,GAAf,CAAmBF,cAAA,CAAMC,QAAN,CAAeE,OAAf,CAAuBT,QAAvB,CAAnB,EAAsDU,KAAD,IAAW;MACrE,IAAI,OAAOA,KAAP,KAAiB,QAArB,EAA+B;QAC7B,OAAO,IAAAC,kCAAA,EACLD,KADK,EAEJpB,GAAD,IAAS;UACP,oBACE,6BAAC,aAAD,eACMa,KADN;YAEE,oBAAoB,MAFtB;YAGE,OAAO,EAAE,MAAMF,UAAN,aAAMA,UAAN,uBAAMA,UAAU,CAAGX,GAAH,EAAQA,GAAG,CAACsB,UAAJ,CAAe,MAAf,CAAR,CAH3B;YAIE,KAAK,EAAE,CAACT,KAAK,CAACU,KAAP,EAAcC,MAAM,CAACxB,GAArB;UAJT,IAMGA,GANH,CADF;QAUD,CAbI,EAcLY,MAdK,CAAP;MAgBD;;MAED,OAAOQ,KAAP;IACD,CArBM,CAAP;EAsBD,CAvBsB,EAuBpB,CAACV,QAAD,CAvBoB,CAAvB;EAyBA,oBAAO,6BAAC,aAAD,EAAUG,KAAV,EAAkBC,cAAlB,CAAP;AACD,CA3BD;;AA4BA,MAAMU,MAAM,GAAG,IAAAC,yBAAA,EAAiB;EAC9BzB,GAAG,EAAE;IAAE0B,kBAAkB,EAAE;EAAtB;AADyB,CAAjB,CAAf;eAGejB,a"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","getImageModule","hasFastImage","Boolean","FastImageView","require","default","e"],"sources":["index.ts"],"sourcesContent":["import type
|
|
1
|
+
{"version":3,"names":["NativeModules","getImageModule","hasFastImage","Boolean","FastImageView","require","default","e"],"sources":["index.ts"],"sourcesContent":["import type { ImageProps as NativeImageProps } from 'react-native';\nimport { NativeModules } from 'react-native';\n\nexport interface SendbirdImageProps extends Omit<NativeImageProps, 'onLoad' | 'onError'> {\n onLoad?: (event: { width: number; height: number }) => void;\n onError?: (event: { error?: unknown }) => void;\n tintColor?: string;\n}\n\nexport type SendbirdImageComponent = (props: SendbirdImageProps) => JSX.Element;\n\nfunction getImageModule(): SendbirdImageComponent {\n const hasFastImage = Boolean(NativeModules.FastImageView);\n if (hasFastImage) {\n try {\n return require('./Image.fastimage').default;\n } catch (e) {\n return require('./Image.reactnative').default;\n }\n } else {\n return require('./Image.reactnative').default;\n }\n}\n\nexport default getImageModule();\n"],"mappings":"AACA,SAASA,aAAT,QAA8B,cAA9B;;AAUA,SAASC,cAAT,GAAkD;EAChD,MAAMC,YAAY,GAAGC,OAAO,CAACH,aAAa,CAACI,aAAf,CAA5B;;EACA,IAAIF,YAAJ,EAAkB;IAChB,IAAI;MACF,OAAOG,OAAO,CAAC,mBAAD,CAAP,CAA6BC,OAApC;IACD,CAFD,CAEE,OAAOC,CAAP,EAAU;MACV,OAAOF,OAAO,CAAC,qBAAD,CAAP,CAA+BC,OAAtC;IACD;EACF,CAND,MAMO;IACL,OAAOD,OAAO,CAAC,qBAAD,CAAP,CAA+BC,OAAtC;EACD;AACF;;AAED,eAAeL,cAAc,EAA7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StatusBar","useSafeAreaInsets","HeaderStyleContext","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","currentHeight","HeaderStyleProvider","children","top"],"sources":["HeaderStyleContext.tsx"],"sourcesContent":["import React from 'react';\nimport { StatusBar } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { BaseHeaderProps, HeaderElement } from '../types';\n\nexport type HeaderStyleContextType = {\n HeaderComponent: (\n props: BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n { clearTitleMargin?: boolean }\n >,\n ) => React.ReactElement | null;\n defaultTitleAlign: 'left' | 'center';\n statusBarTranslucent: boolean;\n topInset: number;\n};\nexport const HeaderStyleContext = React.createContext<HeaderStyleContextType>({\n HeaderComponent: () => null,\n defaultTitleAlign: 'left',\n statusBarTranslucent: true,\n topInset: StatusBar.currentHeight ?? 0,\n});\n\ntype Props = Pick<HeaderStyleContextType, 'statusBarTranslucent' | 'defaultTitleAlign' | 'HeaderComponent'>;\nexport const HeaderStyleProvider
|
|
1
|
+
{"version":3,"names":["React","StatusBar","useSafeAreaInsets","HeaderStyleContext","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","currentHeight","HeaderStyleProvider","children","top"],"sources":["HeaderStyleContext.tsx"],"sourcesContent":["import React from 'react';\nimport { StatusBar } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { BaseHeaderProps, HeaderElement } from '../types';\n\nexport type HeaderStyleContextType = {\n HeaderComponent: (\n props: BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n { clearTitleMargin?: boolean }\n >,\n ) => React.ReactElement | null;\n defaultTitleAlign: 'left' | 'center';\n statusBarTranslucent: boolean;\n topInset: number;\n};\nexport const HeaderStyleContext = React.createContext<HeaderStyleContextType>({\n HeaderComponent: () => null,\n defaultTitleAlign: 'left',\n statusBarTranslucent: true,\n topInset: StatusBar.currentHeight ?? 0,\n});\n\ntype Props = Pick<HeaderStyleContextType, 'statusBarTranslucent' | 'defaultTitleAlign' | 'HeaderComponent'>;\nexport const HeaderStyleProvider = ({\n children,\n HeaderComponent = () => null,\n defaultTitleAlign,\n statusBarTranslucent,\n}: React.PropsWithChildren<Props>) => {\n const { top } = useSafeAreaInsets();\n\n return (\n <HeaderStyleContext.Provider\n value={{\n HeaderComponent,\n defaultTitleAlign,\n statusBarTranslucent,\n topInset: statusBarTranslucent ? top : 0,\n }}\n >\n {children}\n </HeaderStyleContext.Provider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,cAA1B;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAqBA,OAAO,MAAMC,kBAAkB,gBAAGH,KAAK,CAACI,aAAN,CAA4C;EAC5EC,eAAe,EAAE,MAAM,IADqD;EAE5EC,iBAAiB,EAAE,MAFyD;EAG5EC,oBAAoB,EAAE,IAHsD;EAI5EC,QAAQ,EAAEP,SAAS,CAACQ,aAAV,IAA2B;AAJuC,CAA5C,CAA3B;AAQP,OAAO,MAAMC,mBAAmB,GAAG,QAKG;EAAA,IALF;IAClCC,QADkC;IAElCN,eAAe,GAAG,MAAM,IAFU;IAGlCC,iBAHkC;IAIlCC;EAJkC,CAKE;EACpC,MAAM;IAAEK;EAAF,IAAUV,iBAAiB,EAAjC;EAEA,oBACE,oBAAC,kBAAD,CAAoB,QAApB;IACE,KAAK,EAAE;MACLG,eADK;MAELC,iBAFK;MAGLC,oBAHK;MAILC,QAAQ,EAAED,oBAAoB,GAAGK,GAAH,GAAS;IAJlC;EADT,GAQGD,QARH,CADF;AAYD,CApBM"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","LightUIKitTheme","UIKitThemeContext","UIKitThemeProvider","children","theme"],"sources":["UIKitThemeProvider.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { UIKitTheme } from '../types';\nimport LightUIKitTheme from './LightUIKitTheme';\nimport UIKitThemeContext from './UIKitThemeContext';\n\ntype Props = {
|
|
1
|
+
{"version":3,"names":["React","LightUIKitTheme","UIKitThemeContext","UIKitThemeProvider","children","theme"],"sources":["UIKitThemeProvider.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { UIKitTheme } from '../types';\nimport LightUIKitTheme from './LightUIKitTheme';\nimport UIKitThemeContext from './UIKitThemeContext';\n\ntype Props = React.PropsWithChildren<{\n theme?: UIKitTheme;\n}>;\nconst UIKitThemeProvider = ({ children, theme = LightUIKitTheme }: Props) => {\n return <UIKitThemeContext.Provider value={theme}>{children}</UIKitThemeContext.Provider>;\n};\n\nexport default UIKitThemeProvider;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,OAAOC,eAAP,MAA4B,mBAA5B;AACA,OAAOC,iBAAP,MAA8B,qBAA9B;;AAKA,MAAMC,kBAAkB,GAAG,QAAkD;EAAA,IAAjD;IAAEC,QAAF;IAAYC,KAAK,GAAGJ;EAApB,CAAiD;EAC3E,oBAAO,oBAAC,iBAAD,CAAmB,QAAnB;IAA4B,KAAK,EAAEI;EAAnC,GAA2CD,QAA3C,CAAP;AACD,CAFD;;AAIA,eAAeD,kBAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","TouchableOpacity","View","Logger","createStyleSheet","useHeaderStyle","useUIKitTheme","DialogBox","LoadingSpinner","Modal","Text","ActionMenu","visible","onHide","onError","onDismiss","title","menuItems","statusBarTranslucent","colors","pending","setPending","_onHide","alignItems","justifyContent","styles","ui","dialog","default","none","text","maxWidth","highlight","width","marginLeft","buttonContainer","map","item","index","button","onPress","e","errorHandler","error","flexDirection","paddingHorizontal","paddingVertical","marginTop","marginBottom"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport DialogBox from '../Dialog/DialogBox';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Modal from '../Modal';\nimport Text from '../Text';\n\nexport type ActionMenuItem = {\n title?: string;\n menuItems: {\n title: string;\n onPress?: (() => Promise<void>) | (() => void);\n onError?: () => void;\n }[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & ActionMenuItem;\nconst ActionMenu
|
|
1
|
+
{"version":3,"names":["React","useState","TouchableOpacity","View","Logger","createStyleSheet","useHeaderStyle","useUIKitTheme","DialogBox","LoadingSpinner","Modal","Text","ActionMenu","visible","onHide","onError","onDismiss","title","menuItems","statusBarTranslucent","colors","pending","setPending","_onHide","alignItems","justifyContent","styles","ui","dialog","default","none","text","maxWidth","highlight","width","marginLeft","buttonContainer","map","item","index","button","onPress","e","errorHandler","error","flexDirection","paddingHorizontal","paddingVertical","marginTop","marginBottom"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport DialogBox from '../Dialog/DialogBox';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Modal from '../Modal';\nimport Text from '../Text';\n\nexport type ActionMenuItem = {\n title?: string;\n menuItems: {\n title: string;\n onPress?: (() => Promise<void>) | (() => void);\n onError?: () => void;\n }[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & ActionMenuItem;\nconst ActionMenu = ({ visible, onHide, onError, onDismiss, title, menuItems }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const [pending, setPending] = useState(false);\n const _onHide = () => {\n if (!pending) onHide();\n };\n\n return (\n <Modal\n onClose={_onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox>\n <View style={styles.title}>\n <Text\n h1\n color={colors.ui.dialog.default.none.text}\n numberOfLines={1}\n // style={{ flex: 1 }}\n style={{ maxWidth: pending ? '86%' : '100%' }}\n >\n {title}\n </Text>\n {pending && (\n <LoadingSpinner\n size={20}\n color={colors.ui.dialog.default.none.highlight}\n style={{ width: '10%', marginLeft: '4%' }}\n />\n )}\n </View>\n <View style={styles.buttonContainer}>\n {menuItems.map((item, index) => {\n return (\n <TouchableOpacity\n activeOpacity={0.75}\n key={item.title + index}\n style={styles.button}\n disabled={pending}\n onPress={async () => {\n setPending(true);\n try {\n await item.onPress?.();\n } catch (e: unknown) {\n const errorHandler = onError ?? item.onError;\n errorHandler?.(e);\n if (!errorHandler) Logger.error('ActionMenu onPress error', e);\n } finally {\n onHide();\n setPending(false);\n }\n }}\n >\n <Text subtitle2 color={colors.ui.dialog.default.none.text} numberOfLines={1}>\n {item.title}\n </Text>\n </TouchableOpacity>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n title: {\n flexDirection: 'row',\n paddingHorizontal: 24,\n paddingVertical: 20,\n alignItems: 'center',\n },\n buttonContainer: {\n marginTop: 4,\n marginBottom: 8,\n },\n button: {\n paddingHorizontal: 24,\n paddingVertical: 12,\n },\n});\n\nexport default ActionMenu;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAASC,gBAAT,EAA2BC,IAA3B,QAAuC,cAAvC;AAEA,SAASC,MAAT,QAAuB,uBAAvB;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,cAAP,MAA2B,6BAA3B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,SAAP,MAAsB,qBAAtB;AACA,OAAOC,cAAP,MAA2B,mBAA3B;AACA,OAAOC,KAAP,MAAkB,UAAlB;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAiBA,MAAMC,UAAU,GAAG,QAAsE;EAAA,IAArE;IAAEC,OAAF;IAAWC,MAAX;IAAmBC,OAAnB;IAA4BC,SAA5B;IAAuCC,KAAvC;IAA8CC;EAA9C,CAAqE;EACvF,MAAM;IAAEC;EAAF,IAA2Bb,cAAc,EAA/C;EACA,MAAM;IAAEc;EAAF,IAAab,aAAa,EAAhC;EACA,MAAM,CAACc,OAAD,EAAUC,UAAV,IAAwBrB,QAAQ,CAAC,KAAD,CAAtC;;EACA,MAAMsB,OAAO,GAAG,MAAM;IACpB,IAAI,CAACF,OAAL,EAAcP,MAAM;EACrB,CAFD;;EAIA,oBACE,oBAAC,KAAD;IACE,OAAO,EAAES,OADX;IAEE,SAAS,EAAEP,SAFb;IAGE,oBAAoB,EAAEG,oBAHxB;IAIE,OAAO,EAAEN,OAJX;IAKE,eAAe,EAAE;MAAEW,UAAU,EAAE,QAAd;MAAwBC,cAAc,EAAE;IAAxC;EALnB,gBAOE,oBAAC,SAAD,qBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACT;EAApB,gBACE,oBAAC,IAAD;IACE,EAAE,MADJ;IAEE,KAAK,EAAEG,MAAM,CAACO,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BC,IAFvC;IAGE,aAAa,EAAE,CAHjB,CAIE;IAJF;IAKE,KAAK,EAAE;MAAEC,QAAQ,EAAEX,OAAO,GAAG,KAAH,GAAW;IAA9B;EALT,GAOGJ,KAPH,CADF,EAUGI,OAAO,iBACN,oBAAC,cAAD;IACE,IAAI,EAAE,EADR;IAEE,KAAK,EAAED,MAAM,CAACO,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BG,SAFvC;IAGE,KAAK,EAAE;MAAEC,KAAK,EAAE,KAAT;MAAgBC,UAAU,EAAE;IAA5B;EAHT,EAXJ,CADF,eAmBE,oBAAC,IAAD;IAAM,KAAK,EAAET,MAAM,CAACU;EAApB,GACGlB,SAAS,CAACmB,GAAV,CAAc,CAACC,IAAD,EAAOC,KAAP,KAAiB;IAC9B,oBACE,oBAAC,gBAAD;MACE,aAAa,EAAE,IADjB;MAEE,GAAG,EAAED,IAAI,CAACrB,KAAL,GAAasB,KAFpB;MAGE,KAAK,EAAEb,MAAM,CAACc,MAHhB;MAIE,QAAQ,EAAEnB,OAJZ;MAKE,OAAO,EAAE,YAAY;QACnBC,UAAU,CAAC,IAAD,CAAV;;QACA,IAAI;UAAA;;UACF,wBAAMgB,IAAI,CAACG,OAAX,kDAAM,mBAAAH,IAAI,CAAV;QACD,CAFD,CAEE,OAAOI,CAAP,EAAmB;UACnB,MAAMC,YAAY,GAAG5B,OAAO,IAAIuB,IAAI,CAACvB,OAArC;UACA4B,YAAY,SAAZ,IAAAA,YAAY,WAAZ,YAAAA,YAAY,CAAGD,CAAH,CAAZ;UACA,IAAI,CAACC,YAAL,EAAmBvC,MAAM,CAACwC,KAAP,CAAa,0BAAb,EAAyCF,CAAzC;QACpB,CAND,SAMU;UACR5B,MAAM;UACNQ,UAAU,CAAC,KAAD,CAAV;QACD;MACF;IAjBH,gBAmBE,oBAAC,IAAD;MAAM,SAAS,MAAf;MAAgB,KAAK,EAAEF,MAAM,CAACO,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BC,IAArD;MAA2D,aAAa,EAAE;IAA1E,GACGO,IAAI,CAACrB,KADR,CAnBF,CADF;EAyBD,CA1BA,CADH,CAnBF,CAPF,CADF;AA2DD,CAnED;;AAqEA,MAAMS,MAAM,GAAGrB,gBAAgB,CAAC;EAC9BY,KAAK,EAAE;IACL4B,aAAa,EAAE,KADV;IAELC,iBAAiB,EAAE,EAFd;IAGLC,eAAe,EAAE,EAHZ;IAILvB,UAAU,EAAE;EAJP,CADuB;EAO9BY,eAAe,EAAE;IACfY,SAAS,EAAE,CADI;IAEfC,YAAY,EAAE;EAFC,CAPa;EAW9BT,MAAM,EAAE;IACNM,iBAAiB,EAAE,EADb;IAENC,eAAe,EAAE;EAFX;AAXsB,CAAD,CAA/B;AAiBA,eAAenC,UAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","createStyleSheet","useHeaderStyle","useUIKitTheme","Button","DialogBox","Modal","Text","Alert","onDismiss","visible","onHide","title","message","buttons","text","statusBarTranslucent","colors","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","messageContainer","buttonContainer","map","index","style","onPress","button","destructive","highlight","paddingTop","paddingBottom","paddingHorizontal","flexDirection","marginBottom","marginLeft","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { AlertButton, View } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\n\nexport type AlertItem = {\n title?: string;\n message?: string;\n buttons?: AlertButton[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n} & AlertItem;\nconst Alert
|
|
1
|
+
{"version":3,"names":["React","View","createStyleSheet","useHeaderStyle","useUIKitTheme","Button","DialogBox","Modal","Text","Alert","onDismiss","visible","onHide","title","message","buttons","text","statusBarTranslucent","colors","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","messageContainer","buttonContainer","map","index","style","onPress","button","destructive","highlight","paddingTop","paddingBottom","paddingHorizontal","flexDirection","marginBottom","marginLeft","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { AlertButton, View } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\n\nexport type AlertItem = {\n title?: string;\n message?: string;\n buttons?: AlertButton[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n} & AlertItem;\nconst Alert = ({ onDismiss, visible, onHide, title = '', message = '', buttons = [{ text: 'OK' }] }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n\n return (\n <Modal\n onClose={onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.messageContainer}>\n {Boolean(message) && (\n <Text\n subtitle2={!title}\n body3={Boolean(title)}\n color={!title ? colors.ui.dialog.default.none.text : colors.ui.dialog.default.none.message}\n numberOfLines={3}\n >\n {message}\n </Text>\n )}\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text = 'OK', style = 'default', onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n onPress={async () => {\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n contentColor={\n style === 'destructive'\n ? colors.ui.dialog.default.none.destructive\n : colors.ui.dialog.default.none.highlight\n }\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 20,\n },\n titleContainer: {\n paddingBottom: 16,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n messageContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n button: {\n marginLeft: 8,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n});\n\nexport default Alert;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","View","MAX","AvatarGroup","children","containerStyle","size","childAmount","Children","count","overflow","width","height","borderRadius","backgroundColor","avatars","map","child","index","isValidElement","cloneElement","top","getTopPoint","left","getLeftPoint","getWidthPoint","getHeightPoint","innerLeft","getInnerLeft","innerTop","getInnerTop","position","square","slice","_","total","idx"],"sources":["AvatarGroup.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nconst MAX = 4;\n\ntype Props = {
|
|
1
|
+
{"version":3,"names":["React","useMemo","View","MAX","AvatarGroup","children","containerStyle","size","childAmount","Children","count","overflow","width","height","borderRadius","backgroundColor","avatars","map","child","index","isValidElement","cloneElement","top","getTopPoint","left","getLeftPoint","getWidthPoint","getHeightPoint","innerLeft","getInnerLeft","innerTop","getInnerTop","position","square","slice","_","total","idx"],"sources":["AvatarGroup.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nconst MAX = 4;\n\ntype Props = React.PropsWithChildren<{\n size?: number;\n containerStyle?: StyleProp<ViewStyle>;\n}>;\nconst AvatarGroup = ({ children, containerStyle, size = 56 }: Props) => {\n const childAmount = React.Children.count(children);\n\n if (childAmount === 0) {\n return (\n <View\n style={[\n containerStyle,\n {\n overflow: 'hidden',\n width: size,\n height: size,\n borderRadius: size,\n backgroundColor: 'rgba(120,120,120,0.2)',\n },\n ]}\n />\n );\n }\n\n const avatars = useMemo(() => {\n return (\n React.Children.map(children, (child, index) => {\n if (index + 1 > MAX) return child;\n if (!React.isValidElement(child)) return child;\n\n if (childAmount === 1) return React.cloneElement(child, { size, containerStyle });\n\n const top = getTopPoint(index, childAmount) * size;\n const left = getLeftPoint(index) * size;\n const width = getWidthPoint(index, childAmount) * size;\n const height = getHeightPoint(index, childAmount) * size;\n const innerLeft = -getInnerLeft(index, childAmount) * size;\n const innerTop = -getInnerTop(childAmount) * size;\n\n return (\n <View style={{ overflow: 'hidden', position: 'absolute', top, left, width, height }}>\n {React.cloneElement(child, { size, square: true, containerStyle: { left: innerLeft, top: innerTop } })}\n </View>\n );\n })?.slice(0, 4) ?? []\n );\n }, [children]);\n\n return (\n <View style={[containerStyle, { overflow: 'hidden', width: size, height: size, borderRadius: size }]}>\n {avatars}\n </View>\n );\n};\n\nconst getHeightPoint = (_: number, total: number) => {\n if (total === 2) return 1;\n return 0.5;\n};\nconst getWidthPoint = (idx: number, total: number) => {\n if (total === 3 && idx === 0) return 1;\n return 0.5;\n};\nconst getTopPoint = (idx: number, total: number) => {\n if (total === 2) return -0.025;\n if (total === 3 && idx === 0) return -0.025;\n if (total === 3 && idx !== 0) return 0.525;\n if (idx === 0 || idx === 1) return -0.025;\n return 0.525;\n};\nconst getLeftPoint = (idx: number) => {\n if (idx === 0 || idx === 2) return -0.025;\n return 0.525;\n};\nconst getInnerLeft = (idx: number, total: number) => {\n if (total === 3 && idx === 0) return 0;\n return 0.25;\n};\nconst getInnerTop = (total: number) => {\n if (total === 2) return 0;\n return 0.25;\n};\n\nexport default AvatarGroup;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Icon","AvatarIcon","size","icon","containerStyle","backgroundColor","colors","palette","styles","container","width","height","borderRadius","background300","onBackgroundReverse01","overflow","alignItems","justifyContent"],"sources":["AvatarIcon.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\n\ntype Props = {\n icon: keyof typeof Icon.Assets;\n size?: number;\n backgroundColor?: string;\n containerStyle?: StyleProp<ViewStyle>;\n};\nconst AvatarIcon
|
|
1
|
+
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Icon","AvatarIcon","size","icon","containerStyle","backgroundColor","colors","palette","styles","container","width","height","borderRadius","background300","onBackgroundReverse01","overflow","alignItems","justifyContent"],"sources":["AvatarIcon.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\n\ntype Props = {\n icon: keyof typeof Icon.Assets;\n size?: number;\n backgroundColor?: string;\n containerStyle?: StyleProp<ViewStyle>;\n};\nconst AvatarIcon = ({ size = 56, icon, containerStyle, backgroundColor }: Props) => {\n const { colors, palette } = useUIKitTheme();\n return (\n <View\n style={[\n styles.container,\n {\n width: size,\n height: size,\n borderRadius: size / 2,\n backgroundColor: backgroundColor ?? palette.background300,\n },\n containerStyle,\n ]}\n >\n <Icon icon={icon} size={size / 2} color={colors.onBackgroundReverse01} />\n </View>\n );\n};\nconst styles = createStyleSheet({\n container: {\n overflow: 'hidden',\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\nexport default AvatarIcon;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAoBC,IAApB,QAA2C,cAA3C;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAQA,MAAMC,UAAU,GAAG,QAAiE;EAAA,IAAhE;IAAEC,IAAI,GAAG,EAAT;IAAaC,IAAb;IAAmBC,cAAnB;IAAmCC;EAAnC,CAAgE;EAClF,MAAM;IAAEC,MAAF;IAAUC;EAAV,IAAsBR,aAAa,EAAzC;EACA,oBACE,oBAAC,IAAD;IACE,KAAK,EAAE,CACLS,MAAM,CAACC,SADF,EAEL;MACEC,KAAK,EAAER,IADT;MAEES,MAAM,EAAET,IAFV;MAGEU,YAAY,EAAEV,IAAI,GAAG,CAHvB;MAIEG,eAAe,EAAEA,eAAe,IAAIE,OAAO,CAACM;IAJ9C,CAFK,EAQLT,cARK;EADT,gBAYE,oBAAC,IAAD;IAAM,IAAI,EAAED,IAAZ;IAAkB,IAAI,EAAED,IAAI,GAAG,CAA/B;IAAkC,KAAK,EAAEI,MAAM,CAACQ;EAAhD,EAZF,CADF;AAgBD,CAlBD;;AAmBA,MAAMN,MAAM,GAAGV,gBAAgB,CAAC;EAC9BW,SAAS,EAAE;IACTM,QAAQ,EAAE,QADD;IAETC,UAAU,EAAE,QAFH;IAGTC,cAAc,EAAE;EAHP;AADmB,CAAD,CAA/B;AAOA,eAAehB,UAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","StyleSheet","View","conditionChaining","Image","createStyleSheet","useUIKitTheme","Icon","AvatarGroup","AvatarIcon","Avatar","uri","square","muted","size","containerStyle","colors","palette","loadFailure","setLoadFailure","styles","container","width","height","borderRadius","backgroundColor","background300","Boolean","absoluteFill","onBackgroundReverse01","MutedOverlay","primary300","opacity","onBackgroundDark01","alignItems","justifyContent","overflow","Group"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Image from '../../components/Image';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\nimport AvatarGroup from './AvatarGroup';\nimport AvatarIcon from './AvatarIcon';\n\ntype SubComponents = {
|
|
1
|
+
{"version":3,"names":["React","useState","StyleSheet","View","conditionChaining","Image","createStyleSheet","useUIKitTheme","Icon","AvatarGroup","AvatarIcon","Avatar","uri","square","muted","size","containerStyle","colors","palette","loadFailure","setLoadFailure","styles","container","width","height","borderRadius","backgroundColor","background300","Boolean","absoluteFill","onBackgroundReverse01","MutedOverlay","primary300","opacity","onBackgroundDark01","alignItems","justifyContent","overflow","Group"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Image from '../../components/Image';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\nimport AvatarGroup from './AvatarGroup';\nimport AvatarIcon from './AvatarIcon';\n\ntype SubComponents = {\n Group: typeof AvatarGroup;\n Icon: typeof AvatarIcon;\n};\ntype Props = {\n uri?: string;\n size?: number;\n square?: boolean;\n muted?: boolean;\n containerStyle?: StyleProp<ViewStyle>;\n};\nconst Avatar: ((props: Props) => JSX.Element) & SubComponents = ({\n uri,\n square,\n muted = false,\n size = 56,\n containerStyle,\n}) => {\n const { colors, palette } = useUIKitTheme();\n const [loadFailure, setLoadFailure] = useState(false);\n\n return (\n <View\n style={[\n styles.container,\n { width: size, height: size, borderRadius: square ? 0 : size / 2, backgroundColor: palette.background300 },\n containerStyle,\n ]}\n >\n {conditionChaining(\n [Boolean(uri) && !loadFailure],\n [\n <Image\n onError={() => setLoadFailure(true)}\n source={{ uri }}\n resizeMode={'cover'}\n style={StyleSheet.absoluteFill}\n />,\n <Icon icon={'user'} size={size / 2} color={colors.onBackgroundReverse01} />,\n ],\n )}\n {muted && <MutedOverlay size={size} />}\n </View>\n );\n};\n\nconst MutedOverlay = ({ size }: { size: number }) => {\n const { palette } = useUIKitTheme();\n return (\n <View style={[styles.container, StyleSheet.absoluteFill]}>\n <View style={[StyleSheet.absoluteFill, { backgroundColor: palette.primary300, opacity: 0.5 }]} />\n <Icon color={palette.onBackgroundDark01} icon={'mute'} size={size * 0.72} />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n },\n});\n\nAvatar.Group = AvatarGroup;\nAvatar.Icon = AvatarIcon;\nexport default Avatar;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,QAAgC,OAAhC;AACA,SAAoBC,UAApB,EAAgCC,IAAhC,QAAuD,cAAvD;AAEA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA,OAAOC,KAAP,MAAkB,wBAAlB;AACA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,UAAP,MAAuB,cAAvB;;AAaA,MAAMC,MAAuD,GAAG,QAM1D;EAAA,IAN2D;IAC/DC,GAD+D;IAE/DC,MAF+D;IAG/DC,KAAK,GAAG,KAHuD;IAI/DC,IAAI,GAAG,EAJwD;IAK/DC;EAL+D,CAM3D;EACJ,MAAM;IAAEC,MAAF;IAAUC;EAAV,IAAsBX,aAAa,EAAzC;EACA,MAAM,CAACY,WAAD,EAAcC,cAAd,IAAgCnB,QAAQ,CAAC,KAAD,CAA9C;EAEA,oBACE,oBAAC,IAAD;IACE,KAAK,EAAE,CACLoB,MAAM,CAACC,SADF,EAEL;MAAEC,KAAK,EAAER,IAAT;MAAeS,MAAM,EAAET,IAAvB;MAA6BU,YAAY,EAAEZ,MAAM,GAAG,CAAH,GAAOE,IAAI,GAAG,CAA/D;MAAkEW,eAAe,EAAER,OAAO,CAACS;IAA3F,CAFK,EAGLX,cAHK;EADT,GAOGZ,iBAAiB,CAChB,CAACwB,OAAO,CAAChB,GAAD,CAAP,IAAgB,CAACO,WAAlB,CADgB,EAEhB,cACE,oBAAC,KAAD;IACE,OAAO,EAAE,MAAMC,cAAc,CAAC,IAAD,CAD/B;IAEE,MAAM,EAAE;MAAER;IAAF,CAFV;IAGE,UAAU,EAAE,OAHd;IAIE,KAAK,EAAEV,UAAU,CAAC2B;EAJpB,EADF,eAOE,oBAAC,IAAD;IAAM,IAAI,EAAE,MAAZ;IAAoB,IAAI,EAAEd,IAAI,GAAG,CAAjC;IAAoC,KAAK,EAAEE,MAAM,CAACa;EAAlD,EAPF,CAFgB,CAPpB,EAmBGhB,KAAK,iBAAI,oBAAC,YAAD;IAAc,IAAI,EAAEC;EAApB,EAnBZ,CADF;AAuBD,CAjCD;;AAmCA,MAAMgB,YAAY,GAAG,SAAgC;EAAA,IAA/B;IAAEhB;EAAF,CAA+B;EACnD,MAAM;IAAEG;EAAF,IAAcX,aAAa,EAAjC;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACc,MAAM,CAACC,SAAR,EAAmBpB,UAAU,CAAC2B,YAA9B;EAAb,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAAC3B,UAAU,CAAC2B,YAAZ,EAA0B;MAAEH,eAAe,EAAER,OAAO,CAACc,UAA3B;MAAuCC,OAAO,EAAE;IAAhD,CAA1B;EAAb,EADF,eAEE,oBAAC,IAAD;IAAM,KAAK,EAAEf,OAAO,CAACgB,kBAArB;IAAyC,IAAI,EAAE,MAA/C;IAAuD,IAAI,EAAEnB,IAAI,GAAG;EAApE,EAFF,CADF;AAMD,CARD;;AAUA,MAAMM,MAAM,GAAGf,gBAAgB,CAAC;EAC9BgB,SAAS,EAAE;IACTa,UAAU,EAAE,QADH;IAETC,cAAc,EAAE,QAFP;IAGTC,QAAQ,EAAE;EAHD;AADmB,CAAD,CAA/B;AAQA1B,MAAM,CAAC2B,KAAP,GAAe7B,WAAf;AACAE,MAAM,CAACH,IAAP,GAAcE,UAAd;AACA,eAAeC,MAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Platform","View","truncatedBadgeCount","createStyleSheet","useUIKitTheme","Text","Badge","count","maxCount","badgeColor","textColor","style","size","colors","isSmall","styles","badgeSmall","badgeDefault","backgroundColor","ui","badge","default","none","background","badgeSmallPadding","badgeDefaultPadding","text","paddingTop","select","ios","android","minWidth","minHeight","borderRadius","alignItems","justifyContent","paddingHorizontal"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, StyleProp, View, ViewStyle } from 'react-native';\n\nimport { truncatedBadgeCount } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text from '../Text';\n\ntype Props = {\n count: number;\n maxCount?: number;\n badgeColor?: string;\n textColor?: string;\n style?: StyleProp<ViewStyle>;\n size?: 'small' | 'default';\n};\n\nconst Badge
|
|
1
|
+
{"version":3,"names":["React","Platform","View","truncatedBadgeCount","createStyleSheet","useUIKitTheme","Text","Badge","count","maxCount","badgeColor","textColor","style","size","colors","isSmall","styles","badgeSmall","badgeDefault","backgroundColor","ui","badge","default","none","background","badgeSmallPadding","badgeDefaultPadding","text","paddingTop","select","ios","android","minWidth","minHeight","borderRadius","alignItems","justifyContent","paddingHorizontal"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Platform, StyleProp, View, ViewStyle } from 'react-native';\n\nimport { truncatedBadgeCount } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text from '../Text';\n\ntype Props = {\n count: number;\n maxCount?: number;\n badgeColor?: string;\n textColor?: string;\n style?: StyleProp<ViewStyle>;\n size?: 'small' | 'default';\n};\n\nconst Badge = ({ count, maxCount, badgeColor, textColor, style, size = 'default' }: Props) => {\n const { colors } = useUIKitTheme();\n const isSmall = size === 'small';\n return (\n <View\n style={[\n isSmall ? styles.badgeSmall : styles.badgeDefault,\n { backgroundColor: badgeColor ?? colors.ui.badge.default.none.background },\n count >= 10 && (isSmall ? styles.badgeSmallPadding : styles.badgeDefaultPadding),\n style,\n ]}\n >\n <Text caption1 color={textColor ?? colors.ui.badge.default.none.text}>\n {truncatedBadgeCount(count, maxCount)}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n badgeDefault: {\n paddingTop: Platform.select({ ios: 2, android: 2 }),\n minWidth: 20,\n minHeight: 20,\n borderRadius: 99,\n alignItems: 'center',\n justifyContent: 'center',\n },\n badgeDefaultPadding: {\n paddingHorizontal: 8,\n },\n badgeSmall: {\n paddingTop: Platform.select({ ios: 3, android: 2 }),\n minWidth: 16,\n minHeight: 16,\n borderRadius: 99,\n alignItems: 'center',\n justifyContent: 'center',\n },\n badgeSmallPadding: {\n paddingHorizontal: 4,\n },\n});\n\nexport default Badge;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,QAAT,EAA8BC,IAA9B,QAAqD,cAArD;AAEA,SAASC,mBAAT,QAAoC,uBAApC;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAWA,MAAMC,KAAK,GAAG,QAAgF;EAAA,IAA/E;IAAEC,KAAF;IAASC,QAAT;IAAmBC,UAAnB;IAA+BC,SAA/B;IAA0CC,KAA1C;IAAiDC,IAAI,GAAG;EAAxD,CAA+E;EAC5F,MAAM;IAAEC;EAAF,IAAaT,aAAa,EAAhC;EACA,MAAMU,OAAO,GAAGF,IAAI,KAAK,OAAzB;EACA,oBACE,oBAAC,IAAD;IACE,KAAK,EAAE,CACLE,OAAO,GAAGC,MAAM,CAACC,UAAV,GAAuBD,MAAM,CAACE,YADhC,EAEL;MAAEC,eAAe,EAAET,UAAU,IAAII,MAAM,CAACM,EAAP,CAAUC,KAAV,CAAgBC,OAAhB,CAAwBC,IAAxB,CAA6BC;IAA9D,CAFK,EAGLhB,KAAK,IAAI,EAAT,KAAgBO,OAAO,GAAGC,MAAM,CAACS,iBAAV,GAA8BT,MAAM,CAACU,mBAA5D,CAHK,EAILd,KAJK;EADT,gBAQE,oBAAC,IAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAED,SAAS,IAAIG,MAAM,CAACM,EAAP,CAAUC,KAAV,CAAgBC,OAAhB,CAAwBC,IAAxB,CAA6BI;EAAhE,GACGxB,mBAAmB,CAACK,KAAD,EAAQC,QAAR,CADtB,CARF,CADF;AAcD,CAjBD;;AAmBA,MAAMO,MAAM,GAAGZ,gBAAgB,CAAC;EAC9Bc,YAAY,EAAE;IACZU,UAAU,EAAE3B,QAAQ,CAAC4B,MAAT,CAAgB;MAAEC,GAAG,EAAE,CAAP;MAAUC,OAAO,EAAE;IAAnB,CAAhB,CADA;IAEZC,QAAQ,EAAE,EAFE;IAGZC,SAAS,EAAE,EAHC;IAIZC,YAAY,EAAE,EAJF;IAKZC,UAAU,EAAE,QALA;IAMZC,cAAc,EAAE;EANJ,CADgB;EAS9BV,mBAAmB,EAAE;IACnBW,iBAAiB,EAAE;EADA,CATS;EAY9BpB,UAAU,EAAE;IACVW,UAAU,EAAE3B,QAAQ,CAAC4B,MAAT,CAAgB;MAAEC,GAAG,EAAE,CAAP;MAAUC,OAAO,EAAE;IAAnB,CAAhB,CADF;IAEVC,QAAQ,EAAE,EAFA;IAGVC,SAAS,EAAE,EAHD;IAIVC,YAAY,EAAE,EAJJ;IAKVC,UAAU,EAAE,QALF;IAMVC,cAAc,EAAE;EANN,CAZkB;EAoB9BX,iBAAiB,EAAE;IACjBY,iBAAiB,EAAE;EADF;AApBW,CAAD,CAA/B;AAyBA,eAAe9B,KAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","TouchableOpacity","useWindowDimensions","useSafeAreaInsets","useHeaderStyle","DialogSheet","Modal","BottomSheet","onDismiss","onHide","visible","sheetItems","statusBarTranslucent","width","bottom","left","right","alignItems","justifyContent","paddingBottom","map","idx","onPress","props","title","paddingLeft","paddingRight"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport DialogSheet from '../Dialog/DialogSheet';\nimport type Icon from '../Icon';\nimport Modal from '../Modal';\n\nexport type BottomSheetItem = {\n sheetItems: {\n icon?: keyof typeof Icon.Assets;\n iconColor?: string;\n title: string;\n titleColor?: string;\n onPress: () => void;\n }[];\n};\ntype Props = {\n visible: boolean;\n onHide: () => Promise<void>;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & BottomSheetItem;\nconst BottomSheet
|
|
1
|
+
{"version":3,"names":["React","TouchableOpacity","useWindowDimensions","useSafeAreaInsets","useHeaderStyle","DialogSheet","Modal","BottomSheet","onDismiss","onHide","visible","sheetItems","statusBarTranslucent","width","bottom","left","right","alignItems","justifyContent","paddingBottom","map","idx","onPress","props","title","paddingLeft","paddingRight"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport DialogSheet from '../Dialog/DialogSheet';\nimport type Icon from '../Icon';\nimport Modal from '../Modal';\n\nexport type BottomSheetItem = {\n sheetItems: {\n icon?: keyof typeof Icon.Assets;\n iconColor?: string;\n title: string;\n titleColor?: string;\n onPress: () => void;\n }[];\n};\ntype Props = {\n visible: boolean;\n onHide: () => Promise<void>;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & BottomSheetItem;\nconst BottomSheet = ({ onDismiss, onHide, visible, sheetItems }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { width } = useWindowDimensions();\n const { bottom, left, right } = useSafeAreaInsets();\n return (\n <Modal\n type={'slide'}\n onClose={onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'flex-end' }}\n >\n <DialogSheet style={{ width, paddingBottom: bottom }}>\n {sheetItems.map(({ onPress, ...props }, idx) => (\n <TouchableOpacity\n activeOpacity={0.75}\n key={props.title + idx}\n style={{ paddingLeft: left, paddingRight: right }}\n onPress={async () => {\n await onHide();\n try {\n onPress();\n } catch {}\n }}\n >\n <DialogSheet.Item {...props} />\n </TouchableOpacity>\n ))}\n </DialogSheet>\n </Modal>\n );\n};\n\nexport default BottomSheet;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,gBAAT,EAA2BC,mBAA3B,QAAsD,cAAtD;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,OAAOC,cAAP,MAA2B,6BAA3B;AACA,OAAOC,WAAP,MAAwB,uBAAxB;AAEA,OAAOC,KAAP,MAAkB,UAAlB;;AAiBA,MAAMC,WAAW,GAAG,QAAuD;EAAA,IAAtD;IAAEC,SAAF;IAAaC,MAAb;IAAqBC,OAArB;IAA8BC;EAA9B,CAAsD;EACzE,MAAM;IAAEC;EAAF,IAA2BR,cAAc,EAA/C;EACA,MAAM;IAAES;EAAF,IAAYX,mBAAmB,EAArC;EACA,MAAM;IAAEY,MAAF;IAAUC,IAAV;IAAgBC;EAAhB,IAA0Bb,iBAAiB,EAAjD;EACA,oBACE,oBAAC,KAAD;IACE,IAAI,EAAE,OADR;IAEE,OAAO,EAAEM,MAFX;IAGE,SAAS,EAAED,SAHb;IAIE,oBAAoB,EAAEI,oBAJxB;IAKE,OAAO,EAAEF,OALX;IAME,eAAe,EAAE;MAAEO,UAAU,EAAE,QAAd;MAAwBC,cAAc,EAAE;IAAxC;EANnB,gBAQE,oBAAC,WAAD;IAAa,KAAK,EAAE;MAAEL,KAAF;MAASM,aAAa,EAAEL;IAAxB;EAApB,GACGH,UAAU,CAACS,GAAX,CAAe,QAAwBC,GAAxB;IAAA,IAAC;MAAEC,OAAF;MAAW,GAAGC;IAAd,CAAD;IAAA,oBACd,oBAAC,gBAAD;MACE,aAAa,EAAE,IADjB;MAEE,GAAG,EAAEA,KAAK,CAACC,KAAN,GAAcH,GAFrB;MAGE,KAAK,EAAE;QAAEI,WAAW,EAAEV,IAAf;QAAqBW,YAAY,EAAEV;MAAnC,CAHT;MAIE,OAAO,EAAE,YAAY;QACnB,MAAMP,MAAM,EAAZ;;QACA,IAAI;UACFa,OAAO;QACR,CAFD,CAEE,MAAM,CAAE;MACX;IATH,gBAWE,oBAAC,WAAD,CAAa,IAAb,EAAsBC,KAAtB,CAXF,CADc;EAAA,CAAf,CADH,CARF,CADF;AA4BD,CAhCD;;AAkCA,eAAehB,WAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","createStyleSheet","useUIKitTheme","Icon","Text","Button","icon","variant","buttonColor","contentColor","disabled","onPress","style","children","colors","getStateColor","pressed","stateColors","ui","button","enabled","stateColor","backgroundColor","background","styles","container","content","text","flexDirection","padding","borderRadius","alignItems","justifyContent","marginVertical","marginRight"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, StyleProp, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n icon?: keyof typeof Icon.Assets;\n variant?: 'contained' | 'text';\n disabled?: boolean;\n onPress?: () => void;\n buttonColor?: string;\n contentColor?: string;\n}
|
|
1
|
+
{"version":3,"names":["React","Pressable","createStyleSheet","useUIKitTheme","Icon","Text","Button","icon","variant","buttonColor","contentColor","disabled","onPress","style","children","colors","getStateColor","pressed","stateColors","ui","button","enabled","stateColor","backgroundColor","background","styles","container","content","text","flexDirection","padding","borderRadius","alignItems","justifyContent","marginVertical","marginRight"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, StyleProp, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\ntype Props = React.PropsWithChildren<{\n style?: StyleProp<ViewStyle>;\n icon?: keyof typeof Icon.Assets;\n variant?: 'contained' | 'text';\n disabled?: boolean;\n onPress?: () => void;\n buttonColor?: string;\n contentColor?: string;\n}>;\nconst Button = ({\n icon,\n variant = 'contained',\n buttonColor,\n contentColor,\n disabled,\n onPress,\n style,\n children,\n}: Props) => {\n const { colors } = useUIKitTheme();\n\n const getStateColor = (pressed: boolean, disabled?: boolean) => {\n const stateColors = colors.ui.button[variant];\n if (disabled) return stateColors.disabled;\n if (pressed) return stateColors.pressed;\n return stateColors.enabled;\n };\n\n return (\n <Pressable\n disabled={disabled}\n onPress={onPress}\n style={({ pressed }) => {\n const stateColor = getStateColor(pressed, disabled);\n return [{ backgroundColor: buttonColor ?? stateColor.background }, styles.container, style];\n }}\n >\n {({ pressed }) => {\n const stateColor = getStateColor(pressed, disabled);\n\n return (\n <>\n {icon && (\n <Icon size={24} icon={icon} color={contentColor ?? stateColor.content} containerStyle={styles.icon} />\n )}\n <Text button color={contentColor ?? stateColor.content} style={styles.text}>\n {children}\n </Text>\n </>\n );\n }}\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n flexDirection: 'row',\n padding: 8,\n borderRadius: 4,\n alignItems: 'center',\n justifyContent: 'center',\n },\n icon: { marginVertical: -4, marginRight: 8 },\n text: {},\n});\n\nexport default Button;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAAgD,cAAhD;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAWA,MAAMC,MAAM,GAAG,QASF;EAAA,IATG;IACdC,IADc;IAEdC,OAAO,GAAG,WAFI;IAGdC,WAHc;IAIdC,YAJc;IAKdC,QALc;IAMdC,OANc;IAOdC,KAPc;IAQdC;EARc,CASH;EACX,MAAM;IAAEC;EAAF,IAAaZ,aAAa,EAAhC;;EAEA,MAAMa,aAAa,GAAG,CAACC,OAAD,EAAmBN,QAAnB,KAA0C;IAC9D,MAAMO,WAAW,GAAGH,MAAM,CAACI,EAAP,CAAUC,MAAV,CAAiBZ,OAAjB,CAApB;IACA,IAAIG,QAAJ,EAAc,OAAOO,WAAW,CAACP,QAAnB;IACd,IAAIM,OAAJ,EAAa,OAAOC,WAAW,CAACD,OAAnB;IACb,OAAOC,WAAW,CAACG,OAAnB;EACD,CALD;;EAOA,oBACE,oBAAC,SAAD;IACE,QAAQ,EAAEV,QADZ;IAEE,OAAO,EAAEC,OAFX;IAGE,KAAK,EAAE,SAAiB;MAAA,IAAhB;QAAEK;MAAF,CAAgB;MACtB,MAAMK,UAAU,GAAGN,aAAa,CAACC,OAAD,EAAUN,QAAV,CAAhC;MACA,OAAO,CAAC;QAAEY,eAAe,EAAEd,WAAW,IAAIa,UAAU,CAACE;MAA7C,CAAD,EAA4DC,MAAM,CAACC,SAAnE,EAA8Eb,KAA9E,CAAP;IACD;EANH,GAQG,SAAiB;IAAA,IAAhB;MAAEI;IAAF,CAAgB;IAChB,MAAMK,UAAU,GAAGN,aAAa,CAACC,OAAD,EAAUN,QAAV,CAAhC;IAEA,oBACE,0CACGJ,IAAI,iBACH,oBAAC,IAAD;MAAM,IAAI,EAAE,EAAZ;MAAgB,IAAI,EAAEA,IAAtB;MAA4B,KAAK,EAAEG,YAAY,IAAIY,UAAU,CAACK,OAA9D;MAAuE,cAAc,EAAEF,MAAM,CAAClB;IAA9F,EAFJ,eAIE,oBAAC,IAAD;MAAM,MAAM,MAAZ;MAAa,KAAK,EAAEG,YAAY,IAAIY,UAAU,CAACK,OAA/C;MAAwD,KAAK,EAAEF,MAAM,CAACG;IAAtE,GACGd,QADH,CAJF,CADF;EAUD,CArBH,CADF;AAyBD,CA5CD;;AA8CA,MAAMW,MAAM,GAAGvB,gBAAgB,CAAC;EAC9BwB,SAAS,EAAE;IACTG,aAAa,EAAE,KADN;IAETC,OAAO,EAAE,CAFA;IAGTC,YAAY,EAAE,CAHL;IAITC,UAAU,EAAE,QAJH;IAKTC,cAAc,EAAE;EALP,CADmB;EAQ9B1B,IAAI,EAAE;IAAE2B,cAAc,EAAE,CAAC,CAAnB;IAAsBC,WAAW,EAAE;EAAnC,CARwB;EAS9BP,IAAI,EAAE;AATwB,CAAD,CAA/B;AAYA,eAAetB,MAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Text","ChannelFrozenBanner","text","backgroundColor","textColor","style","palette","styles","container","information","onBackgroundLight01","alignItems","justifyContent","paddingVertical","borderRadius"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text from '../Text';\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n text?: string;\n textColor?: string;\n backgroundColor?: string;\n};\n\nconst ChannelFrozenBanner
|
|
1
|
+
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Text","ChannelFrozenBanner","text","backgroundColor","textColor","style","palette","styles","container","information","onBackgroundLight01","alignItems","justifyContent","paddingVertical","borderRadius"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text from '../Text';\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n text?: string;\n textColor?: string;\n backgroundColor?: string;\n};\n\nconst ChannelFrozenBanner = ({ text = 'Channel is frozen', backgroundColor, textColor, style }: Props) => {\n const { palette } = useUIKitTheme();\n\n return (\n <View\n pointerEvents={'none'}\n style={[styles.container, { backgroundColor: backgroundColor ?? palette.information }, style]}\n >\n <Text caption2 color={textColor ?? palette.onBackgroundLight01}>\n {text}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n paddingVertical: 6,\n borderRadius: 4,\n },\n});\n\nexport default ChannelFrozenBanner;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAoBC,IAApB,QAA2C,cAA3C;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AASA,MAAMC,mBAAmB,GAAG,QAA8E;EAAA,IAA7E;IAAEC,IAAI,GAAG,mBAAT;IAA8BC,eAA9B;IAA+CC,SAA/C;IAA0DC;EAA1D,CAA6E;EACxG,MAAM;IAAEC;EAAF,IAAcP,aAAa,EAAjC;EAEA,oBACE,oBAAC,IAAD;IACE,aAAa,EAAE,MADjB;IAEE,KAAK,EAAE,CAACQ,MAAM,CAACC,SAAR,EAAmB;MAAEL,eAAe,EAAEA,eAAe,IAAIG,OAAO,CAACG;IAA9C,CAAnB,EAAgFJ,KAAhF;EAFT,gBAIE,oBAAC,IAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAED,SAAS,IAAIE,OAAO,CAACI;EAA3C,GACGR,IADH,CAJF,CADF;AAUD,CAbD;;AAeA,MAAMK,MAAM,GAAGT,gBAAgB,CAAC;EAC9BU,SAAS,EAAE;IACTG,UAAU,EAAE,QADH;IAETC,cAAc,EAAE,QAFP;IAGTC,eAAe,EAAE,CAHR;IAITC,YAAY,EAAE;EAJL;AADmB,CAAD,CAA/B;AASA,eAAeb,mBAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","DialogBox","style","children","colors","styles","container","backgroundColor","ui","dialog","default","none","background","width","borderRadius"],"sources":["DialogBox.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n}
|
|
1
|
+
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","DialogBox","style","children","colors","styles","container","backgroundColor","ui","dialog","default","none","background","width","borderRadius"],"sources":["DialogBox.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = React.PropsWithChildren<{\n style?: StyleProp<ViewStyle>;\n}>;\nconst DialogBox = ({ style, children }: Props) => {\n const { colors } = useUIKitTheme();\n return (\n <View style={[styles.container, { backgroundColor: colors.ui.dialog.default.none.background }, style]}>\n {children}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n width: 280,\n borderRadius: 4,\n },\n});\n\nexport default DialogBox;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAoBC,IAApB,QAA2C,cAA3C;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;;AAKA,MAAMC,SAAS,GAAG,QAAgC;EAAA,IAA/B;IAAEC,KAAF;IAASC;EAAT,CAA+B;EAChD,MAAM;IAAEC;EAAF,IAAaJ,aAAa,EAAhC;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACK,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEH,MAAM,CAACI,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BC;IAAjD,CAAnB,EAAkFV,KAAlF;EAAb,GACGC,QADH,CADF;AAKD,CAPD;;AASA,MAAME,MAAM,GAAGN,gBAAgB,CAAC;EAC9BO,SAAS,EAAE;IACTO,KAAK,EAAE,GADE;IAETC,YAAY,EAAE;EAFL;AADmB,CAAD,CAA/B;AAOA,eAAeb,SAAf"}
|