@sendbird/uikit-react-native-foundation 1.0.0 → 1.1.0
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 +10 -2
- package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -1
- package/lib/commonjs/styles/createScaleFactor.js +2 -1
- package/lib/commonjs/styles/createScaleFactor.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 +15 -11
- package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/commonjs/ui/Header/index.js +3 -8
- 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 +10 -3
- package/lib/module/styles/HeaderStyleContext.js.map +1 -1
- package/lib/module/styles/createScaleFactor.js +2 -1
- package/lib/module/styles/createScaleFactor.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 +15 -9
- package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/module/ui/Header/index.js +4 -8
- 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 +2 -1
- package/lib/typescript/src/styles/getDefaultHeaderHeight.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 +3 -2
- 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 +8 -3
- package/src/styles/createScaleFactor.ts +2 -1
- 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 +18 -9
- package/src/ui/Header/index.tsx +9 -17
- 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":["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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Icon","Text","DialogSheet","style","children","colors","styles","container","backgroundColor","ui","dialog","default","none","background","SheetItem","icon","title","iconColor","titleColor","sheetItemContainer","highlight","sheetItemIcon","text","sheetItemText","overflow","flexDirection","width","borderTopLeftRadius","borderTopRightRadius","alignItems","height","marginLeft","marginHorizontal","Item"],"sources":["DialogSheet.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';\nimport Text from '../Text';\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n}
|
|
1
|
+
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Icon","Text","DialogSheet","style","children","colors","styles","container","backgroundColor","ui","dialog","default","none","background","SheetItem","icon","title","iconColor","titleColor","sheetItemContainer","highlight","sheetItemIcon","text","sheetItemText","overflow","flexDirection","width","borderTopLeftRadius","borderTopRightRadius","alignItems","height","marginLeft","marginHorizontal","Item"],"sources":["DialogSheet.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';\nimport Text from '../Text';\n\ntype Props = React.PropsWithChildren<{\n style?: StyleProp<ViewStyle>;\n}>;\nconst DialogSheet: ((props: Props) => JSX.Element) & { Item: typeof SheetItem } = ({ style, children }) => {\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\nexport type SheetItemProps = {\n icon?: keyof typeof Icon.Assets;\n iconColor?: string;\n title: string;\n titleColor?: string;\n};\nconst SheetItem = ({ icon, title, iconColor, titleColor }: SheetItemProps) => {\n const { colors } = useUIKitTheme();\n return (\n <View style={[styles.sheetItemContainer, { backgroundColor: colors.ui.dialog.default.none.background }]}>\n {icon && (\n <Icon\n icon={icon}\n color={iconColor ?? colors.ui.dialog.default.none.highlight}\n containerStyle={styles.sheetItemIcon}\n />\n )}\n <Text\n subtitle1\n numberOfLines={1}\n color={titleColor ?? colors.ui.dialog.default.none.text}\n style={styles.sheetItemText}\n >\n {title}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n overflow: 'hidden',\n flexDirection: 'column',\n width: '100%',\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n },\n sheetItemContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 48,\n },\n sheetItemIcon: {\n marginLeft: 16,\n },\n sheetItemText: {\n marginHorizontal: 24,\n },\n});\n\nDialogSheet.Item = SheetItem;\nexport default DialogSheet;\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;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAKA,MAAMC,WAAyE,GAAG,QAAyB;EAAA,IAAxB;IAAEC,KAAF;IAASC;EAAT,CAAwB;EACzG,MAAM;IAAEC;EAAF,IAAaN,aAAa,EAAhC;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACO,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;;AAeA,MAAMU,SAAS,GAAG,SAA4D;EAAA,IAA3D;IAAEC,IAAF;IAAQC,KAAR;IAAeC,SAAf;IAA0BC;EAA1B,CAA2D;EAC5E,MAAM;IAAEb;EAAF,IAAaN,aAAa,EAAhC;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACO,MAAM,CAACa,kBAAR,EAA4B;MAAEX,eAAe,EAAEH,MAAM,CAACI,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BC;IAAjD,CAA5B;EAAb,GACGE,IAAI,iBACH,oBAAC,IAAD;IACE,IAAI,EAAEA,IADR;IAEE,KAAK,EAAEE,SAAS,IAAIZ,MAAM,CAACI,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BQ,SAFpD;IAGE,cAAc,EAAEd,MAAM,CAACe;EAHzB,EAFJ,eAQE,oBAAC,IAAD;IACE,SAAS,MADX;IAEE,aAAa,EAAE,CAFjB;IAGE,KAAK,EAAEH,UAAU,IAAIb,MAAM,CAACI,EAAP,CAAUC,MAAV,CAAiBC,OAAjB,CAAyBC,IAAzB,CAA8BU,IAHrD;IAIE,KAAK,EAAEhB,MAAM,CAACiB;EAJhB,GAMGP,KANH,CARF,CADF;AAmBD,CArBD;;AAuBA,MAAMV,MAAM,GAAGR,gBAAgB,CAAC;EAC9BS,SAAS,EAAE;IACTiB,QAAQ,EAAE,QADD;IAETC,aAAa,EAAE,QAFN;IAGTC,KAAK,EAAE,MAHE;IAITC,mBAAmB,EAAE,CAJZ;IAKTC,oBAAoB,EAAE;EALb,CADmB;EAQ9BT,kBAAkB,EAAE;IAClBM,aAAa,EAAE,KADG;IAElBI,UAAU,EAAE,QAFM;IAGlBC,MAAM,EAAE;EAHU,CARU;EAa9BT,aAAa,EAAE;IACbU,UAAU,EAAE;EADC,CAbe;EAgB9BR,aAAa,EAAE;IACbS,gBAAgB,EAAE;EADL;AAhBe,CAAD,CAA/B;AAqBA9B,WAAW,CAAC+B,IAAZ,GAAmBnB,SAAnB;AACA,eAAeZ,WAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useContext","useRef","useForceUpdate","ActionMenu","Alert","BottomSheet","Prompt","AlertContext","createContext","ActionMenuContext","PromptContext","BottomSheetContext","DISMISS_TIMEOUT","DialogProvider","defaultLabels","children","waitDismissTimeout","waitDismissPromise","waitDismiss","resolver","current","setTimeout","completeDismiss","clearTimeout","undefined","render","dialogQueue","workingDialogJob","visibleState","isProcessing","Boolean","updateToShow","updateToHide","Promise","resolve","consumeQueue","job","shift","createJob","type","props","jobItem","push","alert","openMenu","openPrompt","openSheet","title","menuItems","message","buttons","text","ok","onSubmit","defaultValue","submitLabel","prompt","cancelLabel","cancel","placeholder","sheetItems","useActionMenu","context","Error","useAlert","usePrompt","useBottomSheet"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react';\n\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type { ActionMenuItem } from '../ActionMenu';\nimport ActionMenu from '../ActionMenu';\nimport type { AlertItem } from '../Alert';\nimport Alert from '../Alert';\nimport type { BottomSheetItem } from '../BottomSheet';\nimport BottomSheet from '../BottomSheet';\nimport type { PromptItem } from '../Prompt';\nimport Prompt from '../Prompt';\n\ntype DialogJob =\n | {\n type: 'ActionMenu';\n props: ActionMenuItem;\n }\n | {\n type: 'Alert';\n props: AlertItem;\n }\n | {\n type: 'Prompt';\n props: PromptItem;\n }\n | {\n type: 'BottomSheet';\n props: BottomSheetItem;\n };\n\ntype DialogPropsBy<T extends DialogJob['type'], U extends DialogJob = DialogJob> = U extends { type: T; props: infer P }\n ? P\n : never;\n\ntype DialogContextType = {\n openMenu: (props: DialogPropsBy<'ActionMenu'>) => void;\n alert: (props: DialogPropsBy<'Alert'>) => void;\n openPrompt: (props: DialogPropsBy<'Prompt'>) => void;\n openSheet: (props: DialogPropsBy<'BottomSheet'>) => void;\n};\n\nconst AlertContext = React.createContext<Pick<DialogContextType, 'alert'> | null>(null);\nconst ActionMenuContext = React.createContext<Pick<DialogContextType, 'openMenu'> | null>(null);\nconst PromptContext = React.createContext<Pick<DialogContextType, 'openPrompt'> | null>(null);\nconst BottomSheetContext = React.createContext<Pick<DialogContextType, 'openSheet'> | null>(null);\n\ntype Props = {\n defaultLabels?: {\n alert?: { ok?: string };\n prompt?: { placeholder?: string; ok?: string; cancel?: string };\n };\n};\nconst DISMISS_TIMEOUT = 3000;\nexport const DialogProvider: React.FC<Props> = ({ defaultLabels, children }) => {\n const waitDismissTimeout = useRef<NodeJS.Timeout>();\n const waitDismissPromise = useRef<() => void>();\n const waitDismiss = useCallback((resolver: () => void) => {\n waitDismissPromise.current = resolver;\n waitDismissTimeout.current = setTimeout(completeDismiss, DISMISS_TIMEOUT);\n }, []);\n const completeDismiss = useCallback(() => {\n if (waitDismissTimeout.current) clearTimeout(waitDismissTimeout.current);\n if (waitDismissPromise.current) waitDismissPromise.current();\n waitDismissTimeout.current = undefined;\n waitDismissPromise.current = undefined;\n }, []);\n\n const render = useForceUpdate();\n const dialogQueue = useRef<DialogJob[]>([]);\n const workingDialogJob = useRef<DialogJob>();\n const visibleState = useRef(false);\n\n const isProcessing = () => Boolean(workingDialogJob.current);\n const updateToShow = useCallback(() => {\n visibleState.current = true;\n render();\n }, []);\n const updateToHide = useCallback((): Promise<void> => {\n return new Promise((resolve) => {\n visibleState.current = false;\n render();\n waitDismiss(resolve);\n });\n }, []);\n const consumeQueue = useCallback(() => {\n completeDismiss();\n const job = dialogQueue.current.shift();\n if (job) {\n workingDialogJob.current = job;\n updateToShow();\n } else {\n workingDialogJob.current = undefined;\n }\n }, []);\n\n const createJob =\n <T extends DialogJob['type']>(type: T) =>\n (props: DialogPropsBy<T>) => {\n const jobItem = { type, props } as DialogJob;\n if (isProcessing()) dialogQueue.current.push(jobItem);\n else {\n workingDialogJob.current = jobItem;\n updateToShow();\n }\n };\n\n const alert = useCallback(createJob('Alert'), []);\n const openMenu = useCallback(createJob('ActionMenu'), []);\n const openPrompt = useCallback(createJob('Prompt'), []);\n const openSheet = useCallback(createJob('BottomSheet'), []);\n\n return (\n <AlertContext.Provider value={{ alert }}>\n <ActionMenuContext.Provider value={{ openMenu }}>\n <PromptContext.Provider value={{ openPrompt }}>\n <BottomSheetContext.Provider value={{ openSheet }}>\n {children}\n {workingDialogJob.current?.type === 'ActionMenu' && (\n <ActionMenu\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n title={workingDialogJob.current.props.title}\n menuItems={workingDialogJob.current.props.menuItems}\n />\n )}\n {workingDialogJob.current?.type === 'Alert' && (\n <Alert\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n title={workingDialogJob.current.props.title}\n message={workingDialogJob.current.props.message}\n buttons={workingDialogJob.current.props.buttons ?? [{ text: defaultLabels?.alert?.ok || 'OK' }]}\n />\n )}\n {workingDialogJob.current?.type === 'Prompt' && (\n <Prompt\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n title={workingDialogJob.current.props.title}\n onSubmit={workingDialogJob.current.props.onSubmit}\n defaultValue={workingDialogJob.current.props.defaultValue}\n submitLabel={workingDialogJob.current.props.submitLabel ?? defaultLabels?.prompt?.ok}\n cancelLabel={workingDialogJob.current.props.cancelLabel ?? defaultLabels?.prompt?.cancel}\n placeholder={workingDialogJob.current.props.placeholder ?? defaultLabels?.prompt?.placeholder}\n />\n )}\n {workingDialogJob.current?.type === 'BottomSheet' && (\n <BottomSheet\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n sheetItems={workingDialogJob.current.props.sheetItems}\n />\n )}\n </BottomSheetContext.Provider>\n </PromptContext.Provider>\n </ActionMenuContext.Provider>\n </AlertContext.Provider>\n );\n};\n\nexport const useActionMenu = () => {\n const context = useContext(ActionMenuContext);\n if (!context) throw new Error('ActionMenuContext is not provided, wrap your app with DialogProvider');\n return context;\n};\nexport const useAlert = () => {\n const context = useContext(AlertContext);\n if (!context) throw new Error('AlertContext is not provided, wrap your app with DialogProvider');\n return context;\n};\nexport const usePrompt = () => {\n const context = useContext(PromptContext);\n if (!context) throw new Error('PromptContext is not provided, wrap your app with DialogProvider');\n return context;\n};\nexport const useBottomSheet = () => {\n const context = useContext(BottomSheetContext);\n if (!context) throw new Error('BottomSheetContext is not provided, wrap your app with DialogProvider');\n return context;\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useContext","useRef","useForceUpdate","ActionMenu","Alert","BottomSheet","Prompt","AlertContext","createContext","ActionMenuContext","PromptContext","BottomSheetContext","DISMISS_TIMEOUT","DialogProvider","defaultLabels","children","waitDismissTimeout","waitDismissPromise","waitDismiss","resolver","current","setTimeout","completeDismiss","clearTimeout","undefined","render","dialogQueue","workingDialogJob","visibleState","isProcessing","Boolean","updateToShow","updateToHide","Promise","resolve","consumeQueue","job","shift","createJob","type","props","jobItem","push","alert","openMenu","openPrompt","openSheet","title","menuItems","message","buttons","text","ok","onSubmit","defaultValue","submitLabel","prompt","cancelLabel","cancel","placeholder","sheetItems","useActionMenu","context","Error","useAlert","usePrompt","useBottomSheet"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback, useContext, useRef } from 'react';\n\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport type { ActionMenuItem } from '../ActionMenu';\nimport ActionMenu from '../ActionMenu';\nimport type { AlertItem } from '../Alert';\nimport Alert from '../Alert';\nimport type { BottomSheetItem } from '../BottomSheet';\nimport BottomSheet from '../BottomSheet';\nimport type { PromptItem } from '../Prompt';\nimport Prompt from '../Prompt';\n\ntype DialogJob =\n | {\n type: 'ActionMenu';\n props: ActionMenuItem;\n }\n | {\n type: 'Alert';\n props: AlertItem;\n }\n | {\n type: 'Prompt';\n props: PromptItem;\n }\n | {\n type: 'BottomSheet';\n props: BottomSheetItem;\n };\n\ntype DialogPropsBy<T extends DialogJob['type'], U extends DialogJob = DialogJob> = U extends { type: T; props: infer P }\n ? P\n : never;\n\ntype DialogContextType = {\n openMenu: (props: DialogPropsBy<'ActionMenu'>) => void;\n alert: (props: DialogPropsBy<'Alert'>) => void;\n openPrompt: (props: DialogPropsBy<'Prompt'>) => void;\n openSheet: (props: DialogPropsBy<'BottomSheet'>) => void;\n};\n\nconst AlertContext = React.createContext<Pick<DialogContextType, 'alert'> | null>(null);\nconst ActionMenuContext = React.createContext<Pick<DialogContextType, 'openMenu'> | null>(null);\nconst PromptContext = React.createContext<Pick<DialogContextType, 'openPrompt'> | null>(null);\nconst BottomSheetContext = React.createContext<Pick<DialogContextType, 'openSheet'> | null>(null);\n\ntype Props = React.PropsWithChildren<{\n defaultLabels?: {\n alert?: { ok?: string };\n prompt?: { placeholder?: string; ok?: string; cancel?: string };\n };\n}>;\nconst DISMISS_TIMEOUT = 3000;\nexport const DialogProvider = ({ defaultLabels, children }: Props) => {\n const waitDismissTimeout = useRef<NodeJS.Timeout>();\n const waitDismissPromise = useRef<() => void>();\n const waitDismiss = useCallback((resolver: () => void) => {\n waitDismissPromise.current = resolver;\n waitDismissTimeout.current = setTimeout(completeDismiss, DISMISS_TIMEOUT);\n }, []);\n const completeDismiss = useCallback(() => {\n if (waitDismissTimeout.current) clearTimeout(waitDismissTimeout.current);\n if (waitDismissPromise.current) waitDismissPromise.current();\n waitDismissTimeout.current = undefined;\n waitDismissPromise.current = undefined;\n }, []);\n\n const render = useForceUpdate();\n const dialogQueue = useRef<DialogJob[]>([]);\n const workingDialogJob = useRef<DialogJob>();\n const visibleState = useRef(false);\n\n const isProcessing = () => Boolean(workingDialogJob.current);\n const updateToShow = useCallback(() => {\n visibleState.current = true;\n render();\n }, []);\n const updateToHide = useCallback((): Promise<void> => {\n return new Promise((resolve) => {\n visibleState.current = false;\n render();\n waitDismiss(resolve);\n });\n }, []);\n const consumeQueue = useCallback(() => {\n completeDismiss();\n const job = dialogQueue.current.shift();\n if (job) {\n workingDialogJob.current = job;\n updateToShow();\n } else {\n workingDialogJob.current = undefined;\n }\n }, []);\n\n const createJob =\n <T extends DialogJob['type']>(type: T) =>\n (props: DialogPropsBy<T>) => {\n const jobItem = { type, props } as DialogJob;\n if (isProcessing()) dialogQueue.current.push(jobItem);\n else {\n workingDialogJob.current = jobItem;\n updateToShow();\n }\n };\n\n const alert = useCallback(createJob('Alert'), []);\n const openMenu = useCallback(createJob('ActionMenu'), []);\n const openPrompt = useCallback(createJob('Prompt'), []);\n const openSheet = useCallback(createJob('BottomSheet'), []);\n\n return (\n <AlertContext.Provider value={{ alert }}>\n <ActionMenuContext.Provider value={{ openMenu }}>\n <PromptContext.Provider value={{ openPrompt }}>\n <BottomSheetContext.Provider value={{ openSheet }}>\n {children}\n {workingDialogJob.current?.type === 'ActionMenu' && (\n <ActionMenu\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n title={workingDialogJob.current.props.title}\n menuItems={workingDialogJob.current.props.menuItems}\n />\n )}\n {workingDialogJob.current?.type === 'Alert' && (\n <Alert\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n title={workingDialogJob.current.props.title}\n message={workingDialogJob.current.props.message}\n buttons={workingDialogJob.current.props.buttons ?? [{ text: defaultLabels?.alert?.ok || 'OK' }]}\n />\n )}\n {workingDialogJob.current?.type === 'Prompt' && (\n <Prompt\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n title={workingDialogJob.current.props.title}\n onSubmit={workingDialogJob.current.props.onSubmit}\n defaultValue={workingDialogJob.current.props.defaultValue}\n submitLabel={workingDialogJob.current.props.submitLabel ?? defaultLabels?.prompt?.ok}\n cancelLabel={workingDialogJob.current.props.cancelLabel ?? defaultLabels?.prompt?.cancel}\n placeholder={workingDialogJob.current.props.placeholder ?? defaultLabels?.prompt?.placeholder}\n />\n )}\n {workingDialogJob.current?.type === 'BottomSheet' && (\n <BottomSheet\n onHide={updateToHide}\n onDismiss={consumeQueue}\n visible={visibleState.current}\n sheetItems={workingDialogJob.current.props.sheetItems}\n />\n )}\n </BottomSheetContext.Provider>\n </PromptContext.Provider>\n </ActionMenuContext.Provider>\n </AlertContext.Provider>\n );\n};\n\nexport const useActionMenu = () => {\n const context = useContext(ActionMenuContext);\n if (!context) throw new Error('ActionMenuContext is not provided, wrap your app with DialogProvider');\n return context;\n};\nexport const useAlert = () => {\n const context = useContext(AlertContext);\n if (!context) throw new Error('AlertContext is not provided, wrap your app with DialogProvider');\n return context;\n};\nexport const usePrompt = () => {\n const context = useContext(PromptContext);\n if (!context) throw new Error('PromptContext is not provided, wrap your app with DialogProvider');\n return context;\n};\nexport const useBottomSheet = () => {\n const context = useContext(BottomSheetContext);\n if (!context) throw new Error('BottomSheetContext is not provided, wrap your app with DialogProvider');\n return context;\n};\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Divider","style","space","colors","styles","divider","paddingHorizontal","inner","backgroundColor","onBackground04","width","height"],"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';\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n space?: number;\n};\n\nconst Divider
|
|
1
|
+
{"version":3,"names":["React","View","createStyleSheet","useUIKitTheme","Divider","style","space","colors","styles","divider","paddingHorizontal","inner","backgroundColor","onBackground04","width","height"],"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';\n\ntype Props = {\n style?: StyleProp<ViewStyle>;\n space?: number;\n};\n\nconst Divider = ({ style, space }: Props) => {\n const { colors } = useUIKitTheme();\n return (\n <View style={[style, styles.divider, { paddingHorizontal: space }]}>\n <View style={[styles.inner, { backgroundColor: colors.onBackground04 }]} />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n divider: {\n width: '100%',\n height: 1,\n },\n inner: {\n width: '100%',\n height: '100%',\n },\n});\n\nexport default Divider;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAoBC,IAApB,QAA2C,cAA3C;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;;AAOA,MAAMC,OAAO,GAAG,QAA6B;EAAA,IAA5B;IAAEC,KAAF;IAASC;EAAT,CAA4B;EAC3C,MAAM;IAAEC;EAAF,IAAaJ,aAAa,EAAhC;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACE,KAAD,EAAQG,MAAM,CAACC,OAAf,EAAwB;MAAEC,iBAAiB,EAAEJ;IAArB,CAAxB;EAAb,gBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACE,MAAM,CAACG,KAAR,EAAe;MAAEC,eAAe,EAAEL,MAAM,CAACM;IAA1B,CAAf;EAAb,EADF,CADF;AAKD,CAPD;;AASA,MAAML,MAAM,GAAGN,gBAAgB,CAAC;EAC9BO,OAAO,EAAE;IACPK,KAAK,EAAE,MADA;IAEPC,MAAM,EAAE;EAFD,CADqB;EAK9BJ,KAAK,EAAE;IACLG,KAAK,EAAE,MADF;IAELC,MAAM,EAAE;EAFH;AALuB,CAAD,CAA/B;AAWA,eAAeX,OAAf"}
|
|
@@ -19,6 +19,7 @@ const GroupChannelPreview = _ref => {
|
|
|
19
19
|
bodyIcon,
|
|
20
20
|
title,
|
|
21
21
|
titleCaption,
|
|
22
|
+
titleCaptionLeft,
|
|
22
23
|
frozen,
|
|
23
24
|
notificationOff
|
|
24
25
|
} = _ref;
|
|
@@ -45,7 +46,7 @@ const GroupChannelPreview = _ref => {
|
|
|
45
46
|
}, /*#__PURE__*/React.createElement(View, {
|
|
46
47
|
style: styles.rightTopSection
|
|
47
48
|
}, /*#__PURE__*/React.createElement(View, {
|
|
48
|
-
style: styles.
|
|
49
|
+
style: styles.channelInfoContainer
|
|
49
50
|
}, /*#__PURE__*/React.createElement(Text, {
|
|
50
51
|
numberOfLines: 1,
|
|
51
52
|
subtitle1: true,
|
|
@@ -65,10 +66,11 @@ const GroupChannelPreview = _ref => {
|
|
|
65
66
|
icon: 'notifications-off-filled',
|
|
66
67
|
color: colors.onBackground03
|
|
67
68
|
})), /*#__PURE__*/React.createElement(View, {
|
|
68
|
-
style: styles.
|
|
69
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
69
|
+
style: styles.titleCaptionContainer
|
|
70
|
+
}, titleCaptionLeft, /*#__PURE__*/React.createElement(Text, {
|
|
70
71
|
caption2: true,
|
|
71
|
-
color: color.default.none.textTitleCaption
|
|
72
|
+
color: color.default.none.textTitleCaption,
|
|
73
|
+
style: styles.titleCaptionText
|
|
72
74
|
}, titleCaption))), /*#__PURE__*/React.createElement(View, {
|
|
73
75
|
style: styles.rightBottomSection
|
|
74
76
|
}, /*#__PURE__*/React.createElement(View, {
|
|
@@ -129,7 +131,7 @@ const styles = createStyleSheet({
|
|
|
129
131
|
flexDirection: 'row',
|
|
130
132
|
marginBottom: 4
|
|
131
133
|
},
|
|
132
|
-
|
|
134
|
+
channelInfoContainer: {
|
|
133
135
|
flex: 1,
|
|
134
136
|
marginRight: 4,
|
|
135
137
|
alignItems: 'center',
|
|
@@ -146,9 +148,13 @@ const styles = createStyleSheet({
|
|
|
146
148
|
channelInfoFrozen: {
|
|
147
149
|
marginRight: 4
|
|
148
150
|
},
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
151
|
+
titleCaptionContainer: {
|
|
152
|
+
alignItems: 'flex-start',
|
|
153
|
+
flexDirection: 'row',
|
|
154
|
+
marginLeft: 4
|
|
155
|
+
},
|
|
156
|
+
titleCaptionText: {
|
|
157
|
+
marginTop: 2
|
|
152
158
|
},
|
|
153
159
|
rightBottomSection: {
|
|
154
160
|
flex: 1,
|
|
@@ -186,5 +192,5 @@ const styles = createStyleSheet({
|
|
|
186
192
|
width: '84.5%'
|
|
187
193
|
}
|
|
188
194
|
});
|
|
189
|
-
export default
|
|
195
|
+
export default GroupChannelPreview;
|
|
190
196
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","conditionChaining","Image","createStyleSheet","useUIKitTheme","Badge","Icon","Text","GroupChannelPreview","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","frozen","notificationOff","colors","color","ui","groupChannelPreview","styles","container","backgroundColor","default","none","background","coverContainer","Boolean","channelCover","coverBackground","uri","rightSection","rightTopSection","channelInfo","channelInfoTitle","textTitle","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","textTitleCaption","rightBottomSection","alignItems","bodyIconBackground","bodyText","textBody","separator","Separator","width","flexDirection","paddingHorizontal","paddingVertical","marginRight","height","borderRadius","flex","marginBottom","flexShrink","paddingTop","marginLeft","justifyContent","unreadBadge","minWidth","minHeight","position","right","bottom","memo"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } 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 Badge from '../Badge';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\ntype Props = {\n customCover?: React.ReactElement;\n coverUrl: string;\n\n title: string;\n titleCaption: string;\n bodyIcon?: keyof typeof Icon.Assets;\n body: string;\n\n memberCount?: number;\n badgeCount: number;\n maxBadgeCount?: number;\n\n frozen?: boolean;\n notificationOff?: boolean;\n};\n\nconst GroupChannelPreview: React.FC<Props> = ({\n customCover,\n coverUrl,\n memberCount,\n badgeCount,\n maxBadgeCount,\n body,\n bodyIcon,\n title,\n titleCaption,\n frozen,\n notificationOff,\n}) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelPreview;\n\n return (\n <View style={[styles.container, { backgroundColor: color.default.none.background }]}>\n <View style={styles.coverContainer}>\n {conditionChaining(\n [Boolean(customCover)],\n [\n customCover,\n <Image\n resizeMode={'cover'}\n style={[styles.channelCover, { backgroundColor: color.default.none.coverBackground }]}\n source={{ uri: coverUrl }}\n />,\n ],\n )}\n </View>\n <View style={styles.rightSection}>\n <View style={styles.rightTopSection}>\n <View style={styles.channelInfo}>\n <Text numberOfLines={1} subtitle1 style={styles.channelInfoTitle} color={color.default.none.textTitle}>\n {title}\n </Text>\n {Boolean(memberCount) && (\n <Text caption1 style={styles.channelInfoMemberCount} color={color.default.none.memberCount}>\n {memberCount}\n </Text>\n )}\n {frozen && (\n <Icon size={16} icon={'freeze'} color={colors.primary} containerStyle={styles.channelInfoFrozen} />\n )}\n {notificationOff && <Icon size={16} icon={'notifications-off-filled'} color={colors.onBackground03} />}\n </View>\n <View style={styles.titleCaption}>\n <Text caption2 color={color.default.none.textTitleCaption}>\n {titleCaption}\n </Text>\n </View>\n </View>\n\n <View style={styles.rightBottomSection}>\n <View style={[styles.body, bodyIcon && { alignItems: 'center' }]}>\n {bodyIcon && (\n <Icon\n size={18}\n icon={bodyIcon}\n color={color.default.none.bodyIcon}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: colors.ui.groupChannelPreview.default.none.bodyIconBackground },\n ]}\n />\n )}\n <Text body3 numberOfLines={1} style={styles.bodyText} color={color.default.none.textBody}>\n {body}\n </Text>\n </View>\n <View>{badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}</View>\n </View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\n );\n};\n\ntype SeparatorProps = { color: string };\nconst Separator = ({ color }: SeparatorProps) => <View style={[styles.separator, { backgroundColor: color }]} />;\n\nconst styles = createStyleSheet({\n container: {\n width: '100%',\n flexDirection: 'row',\n paddingHorizontal: 16,\n paddingVertical: 10,\n alignItems: 'center',\n },\n coverContainer: {\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n },\n rightTopSection: {\n flexDirection: 'row',\n marginBottom: 4,\n },\n channelInfo: {\n flex: 1,\n marginRight: 4,\n alignItems: 'center',\n flexDirection: 'row',\n },\n channelInfoTitle: {\n flexShrink: 1,\n marginRight: 4,\n },\n channelInfoMemberCount: {\n paddingTop: 2,\n marginRight: 4,\n },\n channelInfoFrozen: {\n marginRight: 4,\n },\n titleCaption: {\n marginLeft: 4,\n paddingTop: 2,\n },\n rightBottomSection: {\n flex: 1,\n height: '100%',\n flexDirection: 'row',\n },\n body: {\n marginRight: 4,\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-start',\n flexDirection: 'row',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadBadge: {\n minWidth: 20,\n minHeight: 20,\n borderRadius: 99,\n alignItems: 'center',\n justifyContent: 'center',\n },\n separator: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n height: 1,\n width: '84.5%',\n },\n});\n\nexport default React.memo(GroupChannelPreview);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","View","conditionChaining","Image","createStyleSheet","useUIKitTheme","Badge","Icon","Text","GroupChannelPreview","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","colors","color","ui","groupChannelPreview","styles","container","backgroundColor","default","none","background","coverContainer","Boolean","channelCover","coverBackground","uri","rightSection","rightTopSection","channelInfoContainer","channelInfoTitle","textTitle","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","textTitleCaption","titleCaptionText","rightBottomSection","alignItems","bodyIconBackground","bodyText","textBody","separator","Separator","width","flexDirection","paddingHorizontal","paddingVertical","marginRight","height","borderRadius","flex","marginBottom","flexShrink","paddingTop","marginLeft","marginTop","justifyContent","unreadBadge","minWidth","minHeight","position","right","bottom"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } 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 Badge from '../Badge';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\ntype Props = {\n customCover?: React.ReactElement;\n coverUrl: string;\n\n title: string;\n\n titleCaption: string;\n titleCaptionLeft?: React.ReactElement;\n\n bodyIcon?: keyof typeof Icon.Assets;\n body: string;\n\n memberCount?: number;\n badgeCount: number;\n maxBadgeCount?: number;\n\n frozen?: boolean;\n notificationOff?: boolean;\n};\n\nconst GroupChannelPreview = ({\n customCover,\n coverUrl,\n memberCount,\n badgeCount,\n maxBadgeCount,\n body,\n bodyIcon,\n title,\n titleCaption,\n titleCaptionLeft,\n frozen,\n notificationOff,\n}: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelPreview;\n\n return (\n <View style={[styles.container, { backgroundColor: color.default.none.background }]}>\n <View style={styles.coverContainer}>\n {conditionChaining(\n [Boolean(customCover)],\n [\n customCover,\n <Image\n resizeMode={'cover'}\n style={[styles.channelCover, { backgroundColor: color.default.none.coverBackground }]}\n source={{ uri: coverUrl }}\n />,\n ],\n )}\n </View>\n <View style={styles.rightSection}>\n <View style={styles.rightTopSection}>\n <View style={styles.channelInfoContainer}>\n <Text numberOfLines={1} subtitle1 style={styles.channelInfoTitle} color={color.default.none.textTitle}>\n {title}\n </Text>\n {Boolean(memberCount) && (\n <Text caption1 style={styles.channelInfoMemberCount} color={color.default.none.memberCount}>\n {memberCount}\n </Text>\n )}\n {frozen && (\n <Icon size={16} icon={'freeze'} color={colors.primary} containerStyle={styles.channelInfoFrozen} />\n )}\n {notificationOff && <Icon size={16} icon={'notifications-off-filled'} color={colors.onBackground03} />}\n </View>\n <View style={styles.titleCaptionContainer}>\n {titleCaptionLeft}\n <Text caption2 color={color.default.none.textTitleCaption} style={styles.titleCaptionText}>\n {titleCaption}\n </Text>\n </View>\n </View>\n\n <View style={styles.rightBottomSection}>\n <View style={[styles.body, bodyIcon && { alignItems: 'center' }]}>\n {bodyIcon && (\n <Icon\n size={18}\n icon={bodyIcon}\n color={color.default.none.bodyIcon}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: colors.ui.groupChannelPreview.default.none.bodyIconBackground },\n ]}\n />\n )}\n <Text body3 numberOfLines={1} style={styles.bodyText} color={color.default.none.textBody}>\n {body}\n </Text>\n </View>\n <View>{badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}</View>\n </View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\n );\n};\n\ntype SeparatorProps = { color: string };\nconst Separator = ({ color }: SeparatorProps) => <View style={[styles.separator, { backgroundColor: color }]} />;\n\nconst styles = createStyleSheet({\n container: {\n width: '100%',\n flexDirection: 'row',\n paddingHorizontal: 16,\n paddingVertical: 10,\n alignItems: 'center',\n },\n coverContainer: {\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n },\n rightTopSection: {\n flexDirection: 'row',\n marginBottom: 4,\n },\n channelInfoContainer: {\n flex: 1,\n marginRight: 4,\n alignItems: 'center',\n flexDirection: 'row',\n },\n channelInfoTitle: {\n flexShrink: 1,\n marginRight: 4,\n },\n channelInfoMemberCount: {\n paddingTop: 2,\n marginRight: 4,\n },\n channelInfoFrozen: {\n marginRight: 4,\n },\n titleCaptionContainer: {\n alignItems: 'flex-start',\n flexDirection: 'row',\n marginLeft: 4,\n },\n titleCaptionText: {\n marginTop: 2,\n },\n rightBottomSection: {\n flex: 1,\n height: '100%',\n flexDirection: 'row',\n },\n body: {\n marginRight: 4,\n flex: 1,\n justifyContent: 'center',\n alignItems: 'flex-start',\n flexDirection: 'row',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadBadge: {\n minWidth: 20,\n minHeight: 20,\n borderRadius: 99,\n alignItems: 'center',\n justifyContent: 'center',\n },\n separator: {\n position: 'absolute',\n right: 0,\n bottom: 0,\n height: 1,\n width: '84.5%',\n },\n});\n\nexport default GroupChannelPreview;\n"],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
2
2
|
|
|
3
3
|
import React from 'react';
|
|
4
|
-
import { TouchableOpacity, View
|
|
4
|
+
import { TouchableOpacity, View } from 'react-native';
|
|
5
5
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
6
6
|
import { conditionChaining } from '@sendbird/uikit-utils';
|
|
7
7
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
8
|
-
import getDefaultHeaderHeight from '../../styles/getDefaultHeaderHeight';
|
|
9
8
|
import useHeaderStyle from '../../styles/useHeaderStyle';
|
|
10
9
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
11
10
|
import Text from '../Text';
|
|
@@ -28,12 +27,9 @@ const Header = _ref => {
|
|
|
28
27
|
} = _ref;
|
|
29
28
|
const {
|
|
30
29
|
topInset,
|
|
31
|
-
defaultTitleAlign
|
|
30
|
+
defaultTitleAlign,
|
|
31
|
+
defaultHeight
|
|
32
32
|
} = useHeaderStyle();
|
|
33
|
-
const {
|
|
34
|
-
width,
|
|
35
|
-
height
|
|
36
|
-
} = useWindowDimensions();
|
|
37
33
|
const {
|
|
38
34
|
colors
|
|
39
35
|
} = useUIKitTheme();
|
|
@@ -62,7 +58,7 @@ const Header = _ref => {
|
|
|
62
58
|
}]
|
|
63
59
|
}, /*#__PURE__*/React.createElement(View, {
|
|
64
60
|
style: [styles.header, {
|
|
65
|
-
height:
|
|
61
|
+
height: defaultHeight
|
|
66
62
|
}]
|
|
67
63
|
}, /*#__PURE__*/React.createElement(LeftSide, {
|
|
68
64
|
titleAlign: actualTitleAlign,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","TouchableOpacity","View","useWindowDimensions","useSafeAreaInsets","conditionChaining","createStyleSheet","getDefaultHeaderHeight","useHeaderStyle","useUIKitTheme","Text","AlignMapper","left","center","right","Header","children","titleAlign","title","onPressLeft","onPressRight","clearTitleMargin","topInset","defaultTitleAlign","width","height","colors","paddingLeft","paddingRight","actualTitleAlign","paddingTop","backgroundColor","ui","header","nav","none","background","styles","container","paddingHorizontal","borderBottomColor","borderBottom","marginHorizontal","justifyContent","LeftSide","RightSide","HeaderTitle","style","props","HeaderSubtitle","onBackground03","HeaderButton","disabled","onPress","color","button","e","borderBottomWidth","flexDirection","flex","alignItems","minWidth","marginRight","marginLeft","padding","Button","Title","Subtitle"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, TouchableOpacityProps, View, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport getDefaultHeaderHeight from '../../styles/getDefaultHeaderHeight';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text, { TextProps } from '../Text';\n\ntype HeaderElement = string | React.ReactElement | null;\ntype HeaderProps = BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n { clearTitleMargin?: boolean }\n>;\n\nconst AlignMapper = { left: 'flex-start', center: 'center', right: 'flex-end' } as const;\nconst Header: React.FC<HeaderProps> & {\n Button: typeof HeaderButton;\n Title: typeof HeaderTitle;\n Subtitle: typeof HeaderSubtitle;\n} = ({\n children,\n titleAlign,\n title = null,\n left = null,\n right = null,\n onPressLeft,\n onPressRight,\n clearTitleMargin = false,\n}) => {\n const { topInset, defaultTitleAlign } = useHeaderStyle();\n const { width, height } = useWindowDimensions();\n const { colors } = useUIKitTheme();\n const { left: paddingLeft, right: paddingRight } = useSafeAreaInsets();\n\n const actualTitleAlign = titleAlign ?? defaultTitleAlign;\n\n if (!title && !left && !right) {\n return (\n <View style={{ paddingTop: topInset, backgroundColor: colors.ui.header.nav.none.background }}>{children}</View>\n );\n }\n\n return (\n <View\n style={[\n styles.container,\n {\n paddingLeft: paddingLeft + styles.container.paddingHorizontal,\n paddingRight: paddingRight + styles.container.paddingHorizontal,\n paddingTop: topInset,\n backgroundColor: colors.ui.header.nav.none.background,\n borderBottomColor: colors.ui.header.nav.none.borderBottom,\n },\n ]}\n >\n <View style={[styles.header, { height: getDefaultHeaderHeight(width > height) }]}>\n <LeftSide titleAlign={actualTitleAlign} left={left} onPressLeft={onPressLeft} />\n <View\n style={[\n styles.title,\n clearTitleMargin && { marginHorizontal: 0 },\n { justifyContent: AlignMapper[actualTitleAlign] },\n ]}\n >\n {typeof title === 'string' ? <HeaderTitle>{title}</HeaderTitle> : title}\n </View>\n <RightSide titleAlign={actualTitleAlign} right={right} onPressRight={onPressRight} />\n </View>\n {children}\n </View>\n );\n};\n\nconst LeftSide: React.FC<HeaderProps> = ({ titleAlign, onPressLeft, left }) => {\n if (titleAlign === 'center') {\n return <View style={styles.left}>{left && <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>}</View>;\n }\n if (!left) return null;\n return (\n <View style={styles.left}>\n <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>\n </View>\n );\n};\n\nconst RightSide: React.FC<HeaderProps> = ({ titleAlign, onPressRight, right }) => {\n if (titleAlign === 'center') {\n return <View style={styles.right}>{right && <HeaderButton onPress={onPressRight}>{right}</HeaderButton>}</View>;\n }\n if (!right) return null;\n return (\n <View style={styles.right}>\n <HeaderButton onPress={onPressRight}>{right}</HeaderButton>\n </View>\n );\n};\n\nconst HeaderTitle: React.FC<{ children: string } & TextProps> = ({ children, style, ...props }) => {\n return (\n <Text {...props} h1 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderSubtitle: React.FC<{ children: string } & TextProps> = ({ children, style, ...props }) => {\n const { colors } = useUIKitTheme();\n return (\n <Text color={colors.onBackground03} {...props} caption2 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderButton: React.FC<TouchableOpacityProps & { color?: string }> = ({\n children,\n disabled,\n onPress,\n color,\n ...props\n}) => {\n return (\n <TouchableOpacity\n style={styles.button}\n {...props}\n disabled={!onPress || disabled}\n onPress={(e) => onPress?.(e)}\n activeOpacity={0.7}\n >\n {conditionChaining(\n [typeof children === 'string' || typeof children === 'number'],\n [\n <Text button numberOfLines={1} color={color}>\n {children}\n </Text>,\n children,\n ],\n )}\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n borderBottomWidth: 1,\n },\n header: {\n flexDirection: 'row',\n },\n title: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n marginHorizontal: 12,\n },\n left: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 12,\n },\n right: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 12,\n },\n button: {\n padding: 4,\n },\n});\n\nHeader.Button = HeaderButton;\nHeader.Title = HeaderTitle;\nHeader.Subtitle = HeaderSubtitle;\nexport default Header;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","TouchableOpacity","View","useSafeAreaInsets","conditionChaining","createStyleSheet","useHeaderStyle","useUIKitTheme","Text","AlignMapper","left","center","right","Header","children","titleAlign","title","onPressLeft","onPressRight","clearTitleMargin","topInset","defaultTitleAlign","defaultHeight","colors","paddingLeft","paddingRight","actualTitleAlign","paddingTop","backgroundColor","ui","header","nav","none","background","styles","container","paddingHorizontal","borderBottomColor","borderBottom","height","marginHorizontal","justifyContent","LeftSide","RightSide","HeaderTitle","style","props","HeaderSubtitle","onBackground03","HeaderButton","disabled","onPress","color","button","e","borderBottomWidth","flexDirection","flex","alignItems","minWidth","marginRight","marginLeft","padding","Button","Title","Subtitle"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, TouchableOpacityProps, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text, { TextProps } from '../Text';\n\ntype HeaderElement = string | React.ReactElement | null;\ntype HeaderProps = BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n { clearTitleMargin?: boolean }\n>;\n\nconst AlignMapper = { left: 'flex-start', center: 'center', right: 'flex-end' } as const;\nconst Header: ((props: HeaderProps) => JSX.Element) & {\n Button: typeof HeaderButton;\n Title: typeof HeaderTitle;\n Subtitle: typeof HeaderSubtitle;\n} = ({\n children,\n titleAlign,\n title = null,\n left = null,\n right = null,\n onPressLeft,\n onPressRight,\n clearTitleMargin = false,\n}) => {\n const { topInset, defaultTitleAlign, defaultHeight } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const { left: paddingLeft, right: paddingRight } = useSafeAreaInsets();\n\n const actualTitleAlign = titleAlign ?? defaultTitleAlign;\n\n if (!title && !left && !right) {\n return (\n <View style={{ paddingTop: topInset, backgroundColor: colors.ui.header.nav.none.background }}>{children}</View>\n );\n }\n\n return (\n <View\n style={[\n styles.container,\n {\n paddingLeft: paddingLeft + styles.container.paddingHorizontal,\n paddingRight: paddingRight + styles.container.paddingHorizontal,\n paddingTop: topInset,\n backgroundColor: colors.ui.header.nav.none.background,\n borderBottomColor: colors.ui.header.nav.none.borderBottom,\n },\n ]}\n >\n <View style={[styles.header, { height: defaultHeight }]}>\n <LeftSide titleAlign={actualTitleAlign} left={left} onPressLeft={onPressLeft} />\n <View\n style={[\n styles.title,\n clearTitleMargin && { marginHorizontal: 0 },\n { justifyContent: AlignMapper[actualTitleAlign] },\n ]}\n >\n {typeof title === 'string' ? <HeaderTitle>{title}</HeaderTitle> : title}\n </View>\n <RightSide titleAlign={actualTitleAlign} right={right} onPressRight={onPressRight} />\n </View>\n {children}\n </View>\n );\n};\n\nconst LeftSide = ({ titleAlign, onPressLeft, left }: HeaderProps) => {\n if (titleAlign === 'center') {\n return <View style={styles.left}>{left && <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>}</View>;\n }\n if (!left) return null;\n return (\n <View style={styles.left}>\n <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>\n </View>\n );\n};\n\nconst RightSide = ({ titleAlign, onPressRight, right }: HeaderProps) => {\n if (titleAlign === 'center') {\n return <View style={styles.right}>{right && <HeaderButton onPress={onPressRight}>{right}</HeaderButton>}</View>;\n }\n if (!right) return null;\n return (\n <View style={styles.right}>\n <HeaderButton onPress={onPressRight}>{right}</HeaderButton>\n </View>\n );\n};\n\nconst HeaderTitle = ({ children, style, ...props }: TextProps) => {\n return (\n <Text {...props} h1 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderSubtitle = ({ children, style, ...props }: TextProps) => {\n const { colors } = useUIKitTheme();\n return (\n <Text color={colors.onBackground03} {...props} caption2 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderButton = ({ children, disabled, onPress, color, ...props }: TouchableOpacityProps & { color?: string }) => {\n return (\n <TouchableOpacity\n style={styles.button}\n {...props}\n disabled={!onPress || disabled}\n onPress={(e) => onPress?.(e)}\n activeOpacity={0.7}\n >\n {conditionChaining(\n [typeof children === 'string' || typeof children === 'number'],\n [\n <Text button numberOfLines={1} color={color}>\n {children}\n </Text>,\n children,\n ],\n )}\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n borderBottomWidth: 1,\n },\n header: {\n flexDirection: 'row',\n },\n title: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n marginHorizontal: 12,\n },\n left: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 12,\n },\n right: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 12,\n },\n button: {\n padding: 4,\n },\n});\n\nHeader.Button = HeaderButton;\nHeader.Title = HeaderTitle;\nHeader.Subtitle = HeaderSubtitle;\nexport default Header;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Image","StyleSheet","View","IconAssets","createStyleSheet","useUIKitTheme","Icon","icon","color","size","containerStyle","style","sizeStyle","sizeStyles","width","height","colors","containerStyles","container","tintColor","primary","create","alignItems","justifyContent","Assets"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Image, ImageStyle, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport IconAssets from '../../assets/icon';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype IconNames = keyof typeof IconAssets;\ntype SizeFactor = keyof typeof sizeStyles;\n\ntype Props = {\n icon: IconNames;\n color?: string;\n size?: number;\n style?: StyleProp<ImageStyle>;\n containerStyle?: StyleProp<ViewStyle>;\n};\
|
|
1
|
+
{"version":3,"names":["React","Image","StyleSheet","View","IconAssets","createStyleSheet","useUIKitTheme","Icon","icon","color","size","containerStyle","style","sizeStyle","sizeStyles","width","height","colors","containerStyles","container","tintColor","primary","create","alignItems","justifyContent","Assets"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Image, ImageStyle, StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport IconAssets from '../../assets/icon';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype IconNames = keyof typeof IconAssets;\ntype SizeFactor = keyof typeof sizeStyles;\n\ntype Props = {\n icon: IconNames;\n color?: string;\n size?: number;\n style?: StyleProp<ImageStyle>;\n containerStyle?: StyleProp<ViewStyle>;\n};\nconst Icon: ((props: Props) => JSX.Element) & { Assets: typeof IconAssets } = ({\n icon,\n color,\n size = 24,\n containerStyle,\n style,\n}) => {\n const sizeStyle = sizeStyles[size as SizeFactor] ?? { width: size, height: size };\n const { colors } = useUIKitTheme();\n return (\n <View style={[containerStyle, containerStyles.container]}>\n <Image\n resizeMode={'contain'}\n source={IconAssets[icon]}\n style={[{ tintColor: color ?? colors.primary }, sizeStyle, style]}\n />\n </View>\n );\n};\n\nconst containerStyles = StyleSheet.create({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nconst sizeStyles = createStyleSheet({\n 16: {\n width: 16,\n height: 16,\n },\n 20: {\n width: 20,\n height: 20,\n },\n 24: {\n width: 24,\n height: 24,\n },\n 28: {\n width: 28,\n height: 28,\n },\n 32: {\n width: 32,\n height: 32,\n },\n});\n\nIcon.Assets = IconAssets;\nexport default Icon;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,KAAT,EAAuCC,UAAvC,EAAmDC,IAAnD,QAA0E,cAA1E;AAEA,OAAOC,UAAP,MAAuB,mBAAvB;AACA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;;AAYA,MAAMC,IAAqE,GAAG,QAMxE;EAAA,IANyE;IAC7EC,IAD6E;IAE7EC,KAF6E;IAG7EC,IAAI,GAAG,EAHsE;IAI7EC,cAJ6E;IAK7EC;EAL6E,CAMzE;EACJ,MAAMC,SAAS,GAAGC,UAAU,CAACJ,IAAD,CAAV,IAAkC;IAAEK,KAAK,EAAEL,IAAT;IAAeM,MAAM,EAAEN;EAAvB,CAApD;EACA,MAAM;IAAEO;EAAF,IAAaX,aAAa,EAAhC;EACA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACK,cAAD,EAAiBO,eAAe,CAACC,SAAjC;EAAb,gBACE,oBAAC,KAAD;IACE,UAAU,EAAE,SADd;IAEE,MAAM,EAAEf,UAAU,CAACI,IAAD,CAFpB;IAGE,KAAK,EAAE,CAAC;MAAEY,SAAS,EAAEX,KAAK,IAAIQ,MAAM,CAACI;IAA7B,CAAD,EAAyCR,SAAzC,EAAoDD,KAApD;EAHT,EADF,CADF;AASD,CAlBD;;AAoBA,MAAMM,eAAe,GAAGhB,UAAU,CAACoB,MAAX,CAAkB;EACxCH,SAAS,EAAE;IACTI,UAAU,EAAE,QADH;IAETC,cAAc,EAAE;EAFP;AAD6B,CAAlB,CAAxB;AAOA,MAAMV,UAAU,GAAGT,gBAAgB,CAAC;EAClC,IAAI;IACFU,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAD8B;EAKlC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAL8B;EASlC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAT8B;EAalC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN,CAb8B;EAiBlC,IAAI;IACFD,KAAK,EAAE,EADL;IAEFC,MAAM,EAAE;EAFN;AAjB8B,CAAD,CAAnC;AAuBAT,IAAI,CAACkB,MAAL,GAAcrB,UAAd;AACA,eAAeG,IAAf"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","Animated","Easing","useUIKitTheme","Icon","LoadingSpinner","size","color","style","colors","primary","useLoopAnimated","duration","useNativeDriver","animated","Value","current","loop","timing","toValue","easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","Rotate","children","rotate","interpolate","inputRange","outputRange","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing, StyleProp, ViewStyle } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\n\ntype Props = {\n size?: number;\n color?: string;\n style?: StyleProp<ViewStyle>;\n};\n\nconst LoadingSpinner
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","Animated","Easing","useUIKitTheme","Icon","LoadingSpinner","size","color","style","colors","primary","useLoopAnimated","duration","useNativeDriver","animated","Value","current","loop","timing","toValue","easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","Rotate","children","rotate","interpolate","inputRange","outputRange","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing, StyleProp, ViewStyle } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\n\ntype Props = {\n size?: number;\n color?: string;\n style?: StyleProp<ViewStyle>;\n};\n\nconst LoadingSpinner = ({ size = 24, color, style }: Props) => {\n const { colors } = useUIKitTheme();\n return (\n <Rotate style={style}>\n <Icon icon={'spinner'} size={size} color={color ?? colors.primary} />\n </Rotate>\n );\n};\n\nconst useLoopAnimated = (duration: number, useNativeDriver = true) => {\n const animated = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(animated, { toValue: 1, duration, useNativeDriver, easing: Easing.inOut(Easing.linear) }),\n { resetBeforeIteration: true },\n ).start();\n\n return () => {\n animated.stopAnimation();\n animated.setValue(0);\n };\n }, []);\n\n return animated;\n};\n\nconst Rotate = ({ children, style }: React.PropsWithChildren<{ style: StyleProp<ViewStyle> }>) => {\n const loop = useLoopAnimated(1000);\n const rotate = loop.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });\n return <Animated.View style={[style, { transform: [{ rotate }] }]}>{children}</Animated.View>;\n};\n\nexport default LoadingSpinner;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,MAA3B,QAAyC,OAAzC;AACA,SAASC,QAAT,EAAmBC,MAAnB,QAAuD,cAAvD;AAEA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAQA,MAAMC,cAAc,GAAG,QAAwC;EAAA,IAAvC;IAAEC,IAAI,GAAG,EAAT;IAAaC,KAAb;IAAoBC;EAApB,CAAuC;EAC7D,MAAM;IAAEC;EAAF,IAAaN,aAAa,EAAhC;EACA,oBACE,oBAAC,MAAD;IAAQ,KAAK,EAAEK;EAAf,gBACE,oBAAC,IAAD;IAAM,IAAI,EAAE,SAAZ;IAAuB,IAAI,EAAEF,IAA7B;IAAmC,KAAK,EAAEC,KAAK,IAAIE,MAAM,CAACC;EAA1D,EADF,CADF;AAKD,CAPD;;AASA,MAAMC,eAAe,GAAG,UAACC,QAAD,EAA8C;EAAA,IAA3BC,eAA2B,uEAAT,IAAS;EACpE,MAAMC,QAAQ,GAAGd,MAAM,CAAC,IAAIC,QAAQ,CAACc,KAAb,CAAmB,CAAnB,CAAD,CAAN,CAA8BC,OAA/C;EAEAjB,SAAS,CAAC,MAAM;IACdE,QAAQ,CAACgB,IAAT,CACEhB,QAAQ,CAACiB,MAAT,CAAgBJ,QAAhB,EAA0B;MAAEK,OAAO,EAAE,CAAX;MAAcP,QAAd;MAAwBC,eAAxB;MAAyCO,MAAM,EAAElB,MAAM,CAACmB,KAAP,CAAanB,MAAM,CAACoB,MAApB;IAAjD,CAA1B,CADF,EAEE;MAAEC,oBAAoB,EAAE;IAAxB,CAFF,EAGEC,KAHF;IAKA,OAAO,MAAM;MACXV,QAAQ,CAACW,aAAT;MACAX,QAAQ,CAACY,QAAT,CAAkB,CAAlB;IACD,CAHD;EAID,CAVQ,EAUN,EAVM,CAAT;EAYA,OAAOZ,QAAP;AACD,CAhBD;;AAkBA,MAAMa,MAAM,GAAG,SAAmF;EAAA,IAAlF;IAAEC,QAAF;IAAYpB;EAAZ,CAAkF;EAChG,MAAMS,IAAI,GAAGN,eAAe,CAAC,IAAD,CAA5B;EACA,MAAMkB,MAAM,GAAGZ,IAAI,CAACa,WAAL,CAAiB;IAAEC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAd;IAAsBC,WAAW,EAAE,CAAC,MAAD,EAAS,QAAT;EAAnC,CAAjB,CAAf;EACA,oBAAO,oBAAC,QAAD,CAAU,IAAV;IAAe,KAAK,EAAE,CAACxB,KAAD,EAAQ;MAAEyB,SAAS,EAAE,CAAC;QAAEJ;MAAF,CAAD;IAAb,CAAR;EAAtB,GAA6DD,QAA7D,CAAP;AACD,CAJD;;AAMA,eAAevB,cAAf"}
|