@sendbird/uikit-react-native-foundation 2.4.1 → 2.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/commonjs/assets/bundle-icons.js +0 -3
- package/lib/commonjs/assets/bundle-icons.js.map +1 -1
- package/lib/commonjs/assets/icon/index.js.map +1 -1
- package/lib/commonjs/components/Box/index.js +0 -9
- package/lib/commonjs/components/Box/index.js.map +1 -1
- package/lib/commonjs/components/Divider/index.js +0 -7
- package/lib/commonjs/components/Divider/index.js.map +1 -1
- package/lib/commonjs/components/Icon/index.js +0 -9
- package/lib/commonjs/components/Icon/index.js.map +1 -1
- package/lib/commonjs/components/Image/Image.fastimage.js +8 -17
- package/lib/commonjs/components/Image/Image.fastimage.js.map +1 -1
- package/lib/commonjs/components/Image/Image.reactnative.js +0 -6
- package/lib/commonjs/components/Image/Image.reactnative.js.map +1 -1
- package/lib/commonjs/components/Image/index.js +0 -5
- package/lib/commonjs/components/Image/index.js.map +1 -1
- package/lib/commonjs/components/ImageWithPlaceholder/index.js +0 -15
- package/lib/commonjs/components/ImageWithPlaceholder/index.js.map +1 -1
- package/lib/commonjs/components/Modal/index.js +6 -24
- package/lib/commonjs/components/Modal/index.js.map +1 -1
- package/lib/commonjs/components/PressBox/index.js +0 -11
- package/lib/commonjs/components/PressBox/index.js.map +1 -1
- package/lib/commonjs/components/RegexText/index.js +2 -8
- package/lib/commonjs/components/RegexText/index.js.map +1 -1
- package/lib/commonjs/components/Switch/index.js +0 -14
- package/lib/commonjs/components/Switch/index.js.map +1 -1
- package/lib/commonjs/components/Text/index.js +0 -8
- package/lib/commonjs/components/Text/index.js.map +1 -1
- package/lib/commonjs/components/TextInput/index.js +0 -8
- package/lib/commonjs/components/TextInput/index.js.map +1 -1
- package/lib/commonjs/components/URLParsedText/index.js +0 -14
- package/lib/commonjs/components/URLParsedText/index.js.map +1 -1
- package/lib/commonjs/index.js +0 -49
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/styles/HeaderStyleContext.js +0 -9
- package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -1
- package/lib/commonjs/styles/createScaleFactor.js +0 -6
- package/lib/commonjs/styles/createScaleFactor.js.map +1 -1
- package/lib/commonjs/styles/createSelectByColorScheme.js +0 -2
- package/lib/commonjs/styles/createSelectByColorScheme.js.map +1 -1
- package/lib/commonjs/styles/createStyleSheet.js +1 -6
- package/lib/commonjs/styles/createStyleSheet.js.map +1 -1
- package/lib/commonjs/styles/createTypography.js +0 -3
- package/lib/commonjs/styles/createTypography.js.map +1 -1
- package/lib/commonjs/styles/getDefaultHeaderHeight.js +0 -2
- package/lib/commonjs/styles/getDefaultHeaderHeight.js.map +1 -1
- package/lib/commonjs/styles/useHeaderStyle.js +0 -4
- package/lib/commonjs/styles/useHeaderStyle.js.map +1 -1
- package/lib/commonjs/theme/DarkUIKitTheme.js +0 -3
- package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/commonjs/theme/LightUIKitTheme.js +0 -3
- package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
- package/lib/commonjs/theme/Palette.js.map +1 -1
- package/lib/commonjs/theme/UIKitThemeContext.js +0 -4
- package/lib/commonjs/theme/UIKitThemeContext.js.map +1 -1
- package/lib/commonjs/theme/UIKitThemeProvider.js +0 -6
- package/lib/commonjs/theme/UIKitThemeProvider.js.map +1 -1
- package/lib/commonjs/theme/createTheme.js +0 -13
- package/lib/commonjs/theme/createTheme.js.map +1 -1
- package/lib/commonjs/theme/useUIKitTheme.js +0 -5
- package/lib/commonjs/theme/useUIKitTheme.js.map +1 -1
- package/lib/commonjs/ui/ActionMenu/index.js +2 -20
- package/lib/commonjs/ui/ActionMenu/index.js.map +1 -1
- package/lib/commonjs/ui/Alert/index.js +0 -12
- package/lib/commonjs/ui/Alert/index.js.map +1 -1
- package/lib/commonjs/ui/Avatar/AvatarGroup.js +0 -17
- package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/commonjs/ui/Avatar/AvatarIcon.js +0 -8
- package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +1 -1
- package/lib/commonjs/ui/Avatar/index.js +0 -15
- package/lib/commonjs/ui/Avatar/index.js.map +1 -1
- package/lib/commonjs/ui/Badge/index.js +0 -9
- package/lib/commonjs/ui/Badge/index.js.map +1 -1
- package/lib/commonjs/ui/BottomSheet/index.js +0 -10
- package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
- package/lib/commonjs/ui/Button/index.js +0 -11
- package/lib/commonjs/ui/Button/index.js.map +1 -1
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js +0 -8
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +1 -1
- package/lib/commonjs/ui/Dialog/DialogBox.js +0 -7
- package/lib/commonjs/ui/Dialog/DialogBox.js.map +1 -1
- package/lib/commonjs/ui/Dialog/DialogSheet.js +0 -10
- package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/commonjs/ui/Dialog/index.js +0 -30
- package/lib/commonjs/ui/Dialog/index.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelPreview/index.js +0 -13
- package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/commonjs/ui/Header/index.js +0 -24
- package/lib/commonjs/ui/Header/index.js.map +1 -1
- package/lib/commonjs/ui/LoadingSpinner/index.js +0 -12
- package/lib/commonjs/ui/LoadingSpinner/index.js.map +1 -1
- package/lib/commonjs/ui/MenuBar/index.js +0 -11
- package/lib/commonjs/ui/MenuBar/index.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.admin.js +0 -7
- package/lib/commonjs/ui/OpenChannelMessage/Message.admin.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.image.js +0 -10
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.image.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.js +0 -14
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js +0 -16
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.unknown.js +0 -10
- package/lib/commonjs/ui/OpenChannelMessage/Message.unknown.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.js +0 -14
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js +0 -17
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/MessageContainer.js +0 -21
- package/lib/commonjs/ui/OpenChannelMessage/MessageContainer.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/index.js +0 -9
- package/lib/commonjs/ui/OpenChannelMessage/index.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelPreview/index.js +0 -12
- package/lib/commonjs/ui/OpenChannelPreview/index.js.map +1 -1
- package/lib/commonjs/ui/OutlinedButton/index.js +0 -8
- package/lib/commonjs/ui/OutlinedButton/index.js.map +1 -1
- package/lib/commonjs/ui/Placeholder/index.js +2 -13
- package/lib/commonjs/ui/Placeholder/index.js.map +1 -1
- package/lib/commonjs/ui/ProfileCard/index.js +0 -10
- package/lib/commonjs/ui/ProfileCard/index.js.map +1 -1
- package/lib/commonjs/ui/Prompt/index.js +3 -20
- package/lib/commonjs/ui/Prompt/index.js.map +1 -1
- package/lib/commonjs/ui/Toast/index.js +2 -23
- package/lib/commonjs/ui/Toast/index.js.map +1 -1
- package/lib/module/assets/bundle-icons.js +0 -3
- package/lib/module/assets/bundle-icons.js.map +1 -1
- package/lib/module/assets/icon/index.js.map +1 -1
- package/lib/module/components/Box/index.js +0 -4
- package/lib/module/components/Box/index.js.map +1 -1
- package/lib/module/components/Divider/index.js +0 -2
- package/lib/module/components/Divider/index.js.map +1 -1
- package/lib/module/components/Icon/index.js +0 -2
- package/lib/module/components/Icon/index.js.map +1 -1
- package/lib/module/components/Image/Image.fastimage.js +8 -15
- package/lib/module/components/Image/Image.fastimage.js.map +1 -1
- package/lib/module/components/Image/Image.reactnative.js +0 -3
- package/lib/module/components/Image/Image.reactnative.js.map +1 -1
- package/lib/module/components/Image/index.js +0 -3
- package/lib/module/components/Image/index.js.map +1 -1
- package/lib/module/components/ImageWithPlaceholder/index.js +0 -4
- package/lib/module/components/ImageWithPlaceholder/index.js.map +1 -1
- package/lib/module/components/Modal/index.js +6 -16
- package/lib/module/components/Modal/index.js.map +1 -1
- package/lib/module/components/PressBox/index.js +0 -5
- package/lib/module/components/PressBox/index.js.map +1 -1
- package/lib/module/components/RegexText/index.js +2 -4
- package/lib/module/components/RegexText/index.js.map +1 -1
- package/lib/module/components/Switch/index.js +0 -6
- package/lib/module/components/Switch/index.js.map +1 -1
- package/lib/module/components/Text/index.js +0 -4
- package/lib/module/components/Text/index.js.map +1 -1
- package/lib/module/components/TextInput/index.js +0 -1
- package/lib/module/components/TextInput/index.js.map +1 -1
- package/lib/module/components/URLParsedText/index.js +0 -5
- package/lib/module/components/URLParsedText/index.js.map +1 -1
- package/lib/module/index.js +5 -4
- package/lib/module/index.js.map +1 -1
- package/lib/module/styles/HeaderStyleContext.js.map +1 -1
- package/lib/module/styles/createScaleFactor.js +0 -3
- package/lib/module/styles/createScaleFactor.js.map +1 -1
- package/lib/module/styles/createSelectByColorScheme.js +0 -1
- package/lib/module/styles/createSelectByColorScheme.js.map +1 -1
- package/lib/module/styles/createStyleSheet.js +1 -4
- package/lib/module/styles/createStyleSheet.js.map +1 -1
- package/lib/module/styles/createTypography.js +0 -2
- package/lib/module/styles/createTypography.js.map +1 -1
- package/lib/module/styles/getDefaultHeaderHeight.js +0 -2
- package/lib/module/styles/getDefaultHeaderHeight.js.map +1 -1
- package/lib/module/styles/useHeaderStyle.js +0 -2
- package/lib/module/styles/useHeaderStyle.js.map +1 -1
- package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/module/theme/LightUIKitTheme.js.map +1 -1
- package/lib/module/theme/Palette.js.map +1 -1
- package/lib/module/theme/UIKitThemeContext.js.map +1 -1
- package/lib/module/theme/UIKitThemeProvider.js +0 -2
- package/lib/module/theme/UIKitThemeProvider.js.map +1 -1
- package/lib/module/theme/createTheme.js +0 -9
- package/lib/module/theme/createTheme.js.map +1 -1
- package/lib/module/theme/useUIKitTheme.js +0 -2
- package/lib/module/theme/useUIKitTheme.js.map +1 -1
- package/lib/module/ui/ActionMenu/index.js +2 -7
- package/lib/module/ui/ActionMenu/index.js.map +1 -1
- package/lib/module/ui/Alert/index.js +0 -2
- package/lib/module/ui/Alert/index.js.map +1 -1
- package/lib/module/ui/Avatar/AvatarGroup.js +0 -12
- package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -1
- package/lib/module/ui/Avatar/AvatarIcon.js +0 -2
- package/lib/module/ui/Avatar/AvatarIcon.js.map +1 -1
- package/lib/module/ui/Avatar/index.js +0 -3
- package/lib/module/ui/Avatar/index.js.map +1 -1
- package/lib/module/ui/Badge/index.js +0 -2
- package/lib/module/ui/Badge/index.js.map +1 -1
- package/lib/module/ui/BottomSheet/index.js +0 -3
- package/lib/module/ui/BottomSheet/index.js.map +1 -1
- package/lib/module/ui/Button/index.js +0 -4
- package/lib/module/ui/Button/index.js.map +1 -1
- package/lib/module/ui/ChannelFrozenBanner/index.js +0 -2
- package/lib/module/ui/ChannelFrozenBanner/index.js.map +1 -1
- package/lib/module/ui/Dialog/DialogBox.js +0 -2
- package/lib/module/ui/Dialog/DialogBox.js.map +1 -1
- package/lib/module/ui/Dialog/DialogSheet.js +0 -3
- package/lib/module/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/module/ui/Dialog/index.js +0 -6
- package/lib/module/ui/Dialog/index.js.map +1 -1
- package/lib/module/ui/GroupChannelPreview/index.js +0 -3
- package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
- package/lib/module/ui/Header/index.js +0 -14
- package/lib/module/ui/Header/index.js.map +1 -1
- package/lib/module/ui/LoadingSpinner/index.js +0 -4
- package/lib/module/ui/LoadingSpinner/index.js.map +1 -1
- package/lib/module/ui/MenuBar/index.js +0 -2
- package/lib/module/ui/MenuBar/index.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.admin.js +0 -2
- package/lib/module/ui/OpenChannelMessage/Message.admin.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.image.js +0 -2
- package/lib/module/ui/OpenChannelMessage/Message.file.image.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.js +0 -3
- package/lib/module/ui/OpenChannelMessage/Message.file.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.video.js +0 -4
- package/lib/module/ui/OpenChannelMessage/Message.file.video.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.unknown.js +0 -4
- package/lib/module/ui/OpenChannelMessage/Message.unknown.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.user.js +0 -6
- package/lib/module/ui/OpenChannelMessage/Message.user.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.user.og.js +0 -6
- package/lib/module/ui/OpenChannelMessage/Message.user.og.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/MessageContainer.js +0 -9
- package/lib/module/ui/OpenChannelMessage/MessageContainer.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/index.js.map +1 -1
- package/lib/module/ui/OpenChannelPreview/index.js +0 -3
- package/lib/module/ui/OpenChannelPreview/index.js.map +1 -1
- package/lib/module/ui/OutlinedButton/index.js +0 -2
- package/lib/module/ui/OutlinedButton/index.js.map +1 -1
- package/lib/module/ui/Placeholder/index.js +2 -3
- package/lib/module/ui/Placeholder/index.js.map +1 -1
- package/lib/module/ui/ProfileCard/index.js +0 -2
- package/lib/module/ui/ProfileCard/index.js.map +1 -1
- package/lib/module/ui/Prompt/index.js +3 -6
- package/lib/module/ui/Prompt/index.js.map +1 -1
- package/lib/module/ui/Toast/index.js +2 -8
- package/lib/module/ui/Toast/index.js.map +1 -1
- package/package.json +15 -8
- package/src/components/Image/Image.fastimage.tsx +17 -1
|
@@ -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","HeaderComponent","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 HeaderComponent={workingDialogJob.current.props.HeaderComponent}\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","_ref","_workingDialogJob$cur","_workingDialogJob$cur2","_defaultLabels$alert","_workingDialogJob$cur3","_defaultLabels$prompt","_defaultLabels$prompt2","_defaultLabels$prompt3","_workingDialogJob$cur4","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","createElement","Provider","value","onHide","onDismiss","visible","title","menuItems","message","buttons","text","ok","onSubmit","defaultValue","submitLabel","prompt","cancelLabel","cancel","placeholder","sheetItems","HeaderComponent","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 HeaderComponent={workingDialogJob.current.props.HeaderComponent}\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":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,UAAU,EAAEC,MAAM,QAAQ,OAAO;AAE9D,SAASC,cAAc,QAAQ,uBAAuB;AAGtD,OAAOC,UAAU,MAAM,eAAe;AAEtC,OAAOC,KAAK,MAAM,UAAU;AAE5B,OAAOC,WAAW,MAAM,gBAAgB;AAExC,OAAOC,MAAM,MAAM,WAAW;AA+B9B,MAAMC,YAAY,gBAAGT,KAAK,CAACU,aAAa,CAA0C,IAAI,CAAC;AACvF,MAAMC,iBAAiB,gBAAGX,KAAK,CAACU,aAAa,CAA6C,IAAI,CAAC;AAC/F,MAAME,aAAa,gBAAGZ,KAAK,CAACU,aAAa,CAA+C,IAAI,CAAC;AAC7F,MAAMG,kBAAkB,gBAAGb,KAAK,CAACU,aAAa,CAA8C,IAAI,CAAC;AAQjG,MAAMI,eAAe,GAAG,IAAI;AAC5B,OAAO,MAAMC,cAAc,GAAGC,IAAA,IAAwC;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,oBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAAA,IAAvC;IAAEC,aAAa;IAAEC;EAAgB,CAAC,GAAAV,IAAA;EAC/D,MAAMW,kBAAkB,GAAGxB,MAAM,EAAkB;EACnD,MAAMyB,kBAAkB,GAAGzB,MAAM,EAAc;EAC/C,MAAM0B,WAAW,GAAG5B,WAAW,CAAE6B,QAAoB,IAAK;IACxDF,kBAAkB,CAACG,OAAO,GAAGD,QAAQ;IACrCH,kBAAkB,CAACI,OAAO,GAAGC,UAAU,CAACC,eAAe,EAAEnB,eAAe,CAAC;EAC3E,CAAC,EAAE,EAAE,CAAC;EACN,MAAMmB,eAAe,GAAGhC,WAAW,CAAC,MAAM;IACxC,IAAI0B,kBAAkB,CAACI,OAAO,EAAEG,YAAY,CAACP,kBAAkB,CAACI,OAAO,CAAC;IACxE,IAAIH,kBAAkB,CAACG,OAAO,EAAEH,kBAAkB,CAACG,OAAO,EAAE;IAC5DJ,kBAAkB,CAACI,OAAO,GAAGI,SAAS;IACtCP,kBAAkB,CAACG,OAAO,GAAGI,SAAS;EACxC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,MAAM,GAAGhC,cAAc,EAAE;EAC/B,MAAMiC,WAAW,GAAGlC,MAAM,CAAc,EAAE,CAAC;EAC3C,MAAMmC,gBAAgB,GAAGnC,MAAM,EAAa;EAC5C,MAAMoC,YAAY,GAAGpC,MAAM,CAAC,KAAK,CAAC;EAElC,MAAMqC,YAAY,GAAGA,CAAA,KAAMC,OAAO,CAACH,gBAAgB,CAACP,OAAO,CAAC;EAC5D,MAAMW,YAAY,GAAGzC,WAAW,CAAC,MAAM;IACrCsC,YAAY,CAACR,OAAO,GAAG,IAAI;IAC3BK,MAAM,EAAE;EACV,CAAC,EAAE,EAAE,CAAC;EACN,MAAMO,YAAY,GAAG1C,WAAW,CAAC,MAAqB;IACpD,OAAO,IAAI2C,OAAO,CAAEC,OAAO,IAAK;MAC9BN,YAAY,CAACR,OAAO,GAAG,KAAK;MAC5BK,MAAM,EAAE;MACRP,WAAW,CAACgB,OAAO,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EACN,MAAMC,YAAY,GAAG7C,WAAW,CAAC,MAAM;IACrCgC,eAAe,EAAE;IACjB,MAAMc,GAAG,GAAGV,WAAW,CAACN,OAAO,CAACiB,KAAK,EAAE;IACvC,IAAID,GAAG,EAAE;MACPT,gBAAgB,CAACP,OAAO,GAAGgB,GAAG;MAC9BL,YAAY,EAAE;IAChB,CAAC,MAAM;MACLJ,gBAAgB,CAACP,OAAO,GAAGI,SAAS;IACtC;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMc,SAAS,GACiBC,IAAO,IACpCC,KAAuB,IAAK;IAC3B,MAAMC,OAAO,GAAG;MAAEF,IAAI;MAAEC;IAAM,CAAc;IAC5C,IAAIX,YAAY,EAAE,EAAEH,WAAW,CAACN,OAAO,CAACsB,IAAI,CAACD,OAAO,CAAC,CAAC,KACjD;MACHd,gBAAgB,CAACP,OAAO,GAAGqB,OAAO;MAClCV,YAAY,EAAE;IAChB;EACF,CAAC;EAEH,MAAMY,KAAK,GAAGrD,WAAW,CAACgD,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;EACjD,MAAMM,QAAQ,GAAGtD,WAAW,CAACgD,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;EACzD,MAAMO,UAAU,GAAGvD,WAAW,CAACgD,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;EACvD,MAAMQ,SAAS,GAAGxD,WAAW,CAACgD,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;EAE3D,oBACEjD,KAAA,CAAA0D,aAAA,CAACjD,YAAY,CAACkD,QAAQ;IAACC,KAAK,EAAE;MAAEN;IAAM;EAAE,gBACtCtD,KAAA,CAAA0D,aAAA,CAAC/C,iBAAiB,CAACgD,QAAQ;IAACC,KAAK,EAAE;MAAEL;IAAS;EAAE,gBAC9CvD,KAAA,CAAA0D,aAAA,CAAC9C,aAAa,CAAC+C,QAAQ;IAACC,KAAK,EAAE;MAAEJ;IAAW;EAAE,gBAC5CxD,KAAA,CAAA0D,aAAA,CAAC7C,kBAAkB,CAAC8C,QAAQ;IAACC,KAAK,EAAE;MAAEH;IAAU;EAAE,GAC/C/B,QAAQ,EACR,EAAAT,qBAAA,GAAAqB,gBAAgB,CAACP,OAAO,cAAAd,qBAAA,uBAAxBA,qBAAA,CAA0BiC,IAAI,MAAK,YAAY,iBAC9ClD,KAAA,CAAA0D,aAAA,CAACrD,UAAU;IACTwD,MAAM,EAAElB,YAAa;IACrBmB,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAExB,YAAY,CAACR,OAAQ;IAC9BiC,KAAK,EAAE1B,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACa,KAAM;IAC5CC,SAAS,EAAE3B,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACc;EAAU,EAEvD,EACA,EAAA/C,sBAAA,GAAAoB,gBAAgB,CAACP,OAAO,cAAAb,sBAAA,uBAAxBA,sBAAA,CAA0BgC,IAAI,MAAK,OAAO,iBACzClD,KAAA,CAAA0D,aAAA,CAACpD,KAAK;IACJuD,MAAM,EAAElB,YAAa;IACrBmB,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAExB,YAAY,CAACR,OAAQ;IAC9BiC,KAAK,EAAE1B,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACa,KAAM;IAC5CE,OAAO,EAAE5B,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACe,OAAQ;IAChDC,OAAO,EAAE7B,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACgB,OAAO,IAAI,CAAC;MAAEC,IAAI,EAAE,CAAA3C,aAAa,aAAbA,aAAa,wBAAAN,oBAAA,GAAbM,aAAa,CAAE6B,KAAK,cAAAnC,oBAAA,uBAApBA,oBAAA,CAAsBkD,EAAE,KAAI;IAAK,CAAC;EAAE,EAEnG,EACA,EAAAjD,sBAAA,GAAAkB,gBAAgB,CAACP,OAAO,cAAAX,sBAAA,uBAAxBA,sBAAA,CAA0B8B,IAAI,MAAK,QAAQ,iBAC1ClD,KAAA,CAAA0D,aAAA,CAAClD,MAAM;IACLqD,MAAM,EAAElB,YAAa;IACrBmB,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAExB,YAAY,CAACR,OAAQ;IAC9BiC,KAAK,EAAE1B,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACa,KAAM;IAC5CM,QAAQ,EAAEhC,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACmB,QAAS;IAClDC,YAAY,EAAEjC,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACoB,YAAa;IAC1DC,WAAW,EAAElC,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACqB,WAAW,KAAI/C,aAAa,aAAbA,aAAa,wBAAAJ,qBAAA,GAAbI,aAAa,CAAEgD,MAAM,cAAApD,qBAAA,uBAArBA,qBAAA,CAAuBgD,EAAE,CAAC;IACrFK,WAAW,EAAEpC,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACuB,WAAW,KAAIjD,aAAa,aAAbA,aAAa,wBAAAH,sBAAA,GAAbG,aAAa,CAAEgD,MAAM,cAAAnD,sBAAA,uBAArBA,sBAAA,CAAuBqD,MAAM,CAAC;IACzFC,WAAW,EAAEtC,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAACyB,WAAW,KAAInD,aAAa,aAAbA,aAAa,wBAAAF,sBAAA,GAAbE,aAAa,CAAEgD,MAAM,cAAAlD,sBAAA,uBAArBA,sBAAA,CAAuBqD,WAAW;EAAC,EAEjG,EACA,EAAApD,sBAAA,GAAAc,gBAAgB,CAACP,OAAO,cAAAP,sBAAA,uBAAxBA,sBAAA,CAA0B0B,IAAI,MAAK,aAAa,iBAC/ClD,KAAA,CAAA0D,aAAA,CAACnD,WAAW;IACVsD,MAAM,EAAElB,YAAa;IACrBmB,SAAS,EAAEhB,YAAa;IACxBiB,OAAO,EAAExB,YAAY,CAACR,OAAQ;IAC9B8C,UAAU,EAAEvC,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAAC0B,UAAW;IACtDC,eAAe,EAAExC,gBAAgB,CAACP,OAAO,CAACoB,KAAK,CAAC2B;EAAgB,EAEnE,CAC2B,CACP,CACE,CACP;AAE5B,CAAC;AAED,OAAO,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACjC,MAAMC,OAAO,GAAG9E,UAAU,CAACS,iBAAiB,CAAC;EAC7C,IAAI,CAACqE,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,sEAAsE,CAAC;EACrG,OAAOD,OAAO;AAChB,CAAC;AACD,OAAO,MAAME,QAAQ,GAAGA,CAAA,KAAM;EAC5B,MAAMF,OAAO,GAAG9E,UAAU,CAACO,YAAY,CAAC;EACxC,IAAI,CAACuE,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,iEAAiE,CAAC;EAChG,OAAOD,OAAO;AAChB,CAAC;AACD,OAAO,MAAMG,SAAS,GAAGA,CAAA,KAAM;EAC7B,MAAMH,OAAO,GAAG9E,UAAU,CAACU,aAAa,CAAC;EACzC,IAAI,CAACoE,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,kEAAkE,CAAC;EACjG,OAAOD,OAAO;AAChB,CAAC;AACD,OAAO,MAAMI,cAAc,GAAGA,CAAA,KAAM;EAClC,MAAMJ,OAAO,GAAG9E,UAAU,CAACW,kBAAkB,CAAC;EAC9C,IAAI,CAACmE,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,uEAAuE,CAAC;EACtG,OAAOD,OAAO;AAChB,CAAC"}
|
|
@@ -7,7 +7,6 @@ import Text from '../../components/Text';
|
|
|
7
7
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
8
8
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
9
9
|
import Badge from '../Badge';
|
|
10
|
-
|
|
11
10
|
const GroupChannelPreview = _ref => {
|
|
12
11
|
let {
|
|
13
12
|
customCover,
|
|
@@ -110,7 +109,6 @@ const GroupChannelPreview = _ref => {
|
|
|
110
109
|
color: color.default.none.separator
|
|
111
110
|
})));
|
|
112
111
|
};
|
|
113
|
-
|
|
114
112
|
const Separator = _ref2 => {
|
|
115
113
|
let {
|
|
116
114
|
color
|
|
@@ -121,7 +119,6 @@ const Separator = _ref2 => {
|
|
|
121
119
|
}]
|
|
122
120
|
});
|
|
123
121
|
};
|
|
124
|
-
|
|
125
122
|
const styles = createStyleSheet({
|
|
126
123
|
container: {
|
|
127
124
|
height: 76,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","conditionChaining","Icon","Image","Text","createStyleSheet","useUIKitTheme","Badge","GroupChannelPreview","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","broadcast","mentioned","mentionTrigger","colors","color","ui","groupChannelPreview","styles","container","backgroundColor","default","none","background","coverContainer","Boolean","channelCover","coverBackground","uri","rightSection","rightTopSection","channelInfoContainer","secondary","channelInfoBroadcast","channelInfoTitle","textTitle","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","textTitleCaption","titleCaptionText","rightBottomSection","bodyWrapper","bodyIconBackground","bodyText","textBody","unreadContainer","badge","unreadMention","separator","Separator","height","width","flexDirection","alignItems","justifyContent","marginLeft","marginRight","borderRadius","flex","paddingTop","paddingRight","marginBottom","flexShrink","marginTop","position","left","right","bottom"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Icon from '../../components/Icon';\nimport Image from '../../components/Image';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Badge from '../Badge';\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 broadcast?: boolean;\n mentioned?: boolean;\n mentionTrigger?: string;\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 broadcast,\n mentioned,\n mentionTrigger = '@',\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 {broadcast && (\n <Icon\n size={16}\n icon={'broadcast'}\n color={colors.secondary}\n containerStyle={styles.channelInfoBroadcast}\n />\n )}\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}>\n <View style={styles.bodyWrapper}>\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>\n <View style={styles.unreadContainer}>\n {mentioned && (\n <Text h2 color={colors.ui.badge.default.none.background} style={styles.unreadMention}>\n {mentionTrigger}\n </Text>\n )}\n {badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}\n </View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\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 height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n coverContainer: {\n marginLeft: 16,\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n paddingTop: 10,\n paddingRight: 16,\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 channelInfoBroadcast: {\n marginRight: 4,\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 flexDirection: 'row',\n alignItems: 'flex-start',\n },\n bodyWrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n unreadMention: {\n marginRight: 4,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default GroupChannelPreview;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","View","conditionChaining","Icon","Image","Text","createStyleSheet","useUIKitTheme","Badge","GroupChannelPreview","_ref","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","broadcast","mentioned","mentionTrigger","colors","color","ui","groupChannelPreview","createElement","style","styles","container","backgroundColor","default","none","background","coverContainer","Boolean","resizeMode","channelCover","coverBackground","source","uri","rightSection","rightTopSection","channelInfoContainer","size","icon","secondary","containerStyle","channelInfoBroadcast","numberOfLines","subtitle1","channelInfoTitle","textTitle","caption1","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","caption2","textTitleCaption","titleCaptionText","rightBottomSection","bodyWrapper","bodyIconBackground","body3","bodyText","textBody","unreadContainer","h2","badge","unreadMention","count","maxCount","Separator","separator","_ref2","height","width","flexDirection","alignItems","justifyContent","marginLeft","marginRight","borderRadius","flex","paddingTop","paddingRight","marginBottom","flexShrink","marginTop","position","left","right","bottom"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Icon from '../../components/Icon';\nimport Image from '../../components/Image';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Badge from '../Badge';\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 broadcast?: boolean;\n mentioned?: boolean;\n mentionTrigger?: string;\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 broadcast,\n mentioned,\n mentionTrigger = '@',\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 {broadcast && (\n <Icon\n size={16}\n icon={'broadcast'}\n color={colors.secondary}\n containerStyle={styles.channelInfoBroadcast}\n />\n )}\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}>\n <View style={styles.bodyWrapper}>\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>\n <View style={styles.unreadContainer}>\n {mentioned && (\n <Text h2 color={colors.ui.badge.default.none.background} style={styles.unreadMention}>\n {mentionTrigger}\n </Text>\n )}\n {badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}\n </View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\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 height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n coverContainer: {\n marginLeft: 16,\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n paddingTop: 10,\n paddingRight: 16,\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 channelInfoBroadcast: {\n marginRight: 4,\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 flexDirection: 'row',\n alignItems: 'flex-start',\n },\n bodyWrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n unreadMention: {\n marginRight: 4,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default GroupChannelPreview;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,QAAQ,cAAc;AAEnC,SAASC,iBAAiB,QAAQ,uBAAuB;AAEzD,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,KAAK,MAAM,wBAAwB;AAC1C,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,gBAAgB,MAAM,+BAA+B;AAC5D,OAAOC,aAAa,MAAM,2BAA2B;AACrD,OAAOC,KAAK,MAAM,UAAU;AAyB5B,MAAMC,mBAAmB,GAAGC,IAAA,IAgBf;EAAA,IAhBgB;IAC3BC,WAAW;IACXC,QAAQ;IACRC,WAAW;IACXC,UAAU;IACVC,aAAa;IACbC,IAAI;IACJC,QAAQ;IACRC,KAAK;IACLC,YAAY;IACZC,gBAAgB;IAChBC,MAAM;IACNC,eAAe;IACfC,SAAS;IACTC,SAAS;IACTC,cAAc,GAAG;EACZ,CAAC,GAAAf,IAAA;EACN,MAAM;IAAEgB;EAAO,CAAC,GAAGnB,aAAa,EAAE;EAClC,MAAMoB,KAAK,GAAGD,MAAM,CAACE,EAAE,CAACC,mBAAmB;EAE3C,oBACE7B,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEP,KAAK,CAACQ,OAAO,CAACC,IAAI,CAACC;IAAW,CAAC;EAAE,gBAClFrC,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACM;EAAe,GAChCpC,iBAAiB,CAChB,CAACqC,OAAO,CAAC5B,WAAW,CAAC,CAAC,EACtB,CACEA,WAAW,eACXX,KAAA,CAAA8B,aAAA,CAAC1B,KAAK;IACJoC,UAAU,EAAE,OAAQ;IACpBT,KAAK,EAAE,CAACC,MAAM,CAACS,YAAY,EAAE;MAAEP,eAAe,EAAEP,KAAK,CAACQ,OAAO,CAACC,IAAI,CAACM;IAAgB,CAAC,CAAE;IACtFC,MAAM,EAAE;MAAEC,GAAG,EAAEhC;IAAS;EAAE,EAC1B,CACH,CACF,CACI,eACPZ,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACa;EAAa,gBAC/B7C,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACc;EAAgB,gBAClC9C,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACe;EAAqB,GACtCxB,SAAS,iBACRvB,KAAA,CAAA8B,aAAA,CAAC3B,IAAI;IACH6C,IAAI,EAAE,EAAG;IACTC,IAAI,EAAE,WAAY;IAClBtB,KAAK,EAAED,MAAM,CAACwB,SAAU;IACxBC,cAAc,EAAEnB,MAAM,CAACoB;EAAqB,EAE/C,eACDpD,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAACgD,aAAa,EAAE,CAAE;IAACC,SAAS;IAACvB,KAAK,EAAEC,MAAM,CAACuB,gBAAiB;IAAC5B,KAAK,EAAEA,KAAK,CAACQ,OAAO,CAACC,IAAI,CAACoB;EAAU,GACnGtC,KAAK,CACD,EACNqB,OAAO,CAAC1B,WAAW,CAAC,iBACnBb,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAACoD,QAAQ;IAAC1B,KAAK,EAAEC,MAAM,CAAC0B,sBAAuB;IAAC/B,KAAK,EAAEA,KAAK,CAACQ,OAAO,CAACC,IAAI,CAACvB;EAAY,GACxFA,WAAW,CAEf,EACAQ,MAAM,iBACLrB,KAAA,CAAA8B,aAAA,CAAC3B,IAAI;IAAC6C,IAAI,EAAE,EAAG;IAACC,IAAI,EAAE,QAAS;IAACtB,KAAK,EAAED,MAAM,CAACiC,OAAQ;IAACR,cAAc,EAAEnB,MAAM,CAAC4B;EAAkB,EACjG,EACAtC,eAAe,iBAAItB,KAAA,CAAA8B,aAAA,CAAC3B,IAAI;IAAC6C,IAAI,EAAE,EAAG;IAACC,IAAI,EAAE,0BAA2B;IAACtB,KAAK,EAAED,MAAM,CAACmC;EAAe,EAAG,CACjG,eACP7D,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAAC8B;EAAsB,GACvC1C,gBAAgB,eACjBpB,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAAC0D,QAAQ;IAACpC,KAAK,EAAEA,KAAK,CAACQ,OAAO,CAACC,IAAI,CAAC4B,gBAAiB;IAACjC,KAAK,EAAEC,MAAM,CAACiC;EAAiB,GACvF9C,YAAY,CACR,CACF,CACF,eAEPnB,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACkC;EAAmB,gBACrClE,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAAChB;EAAK,gBACvBhB,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACmC;EAAY,GAC7BlD,QAAQ,iBACPjB,KAAA,CAAA8B,aAAA,CAAC3B,IAAI;IACH6C,IAAI,EAAE,EAAG;IACTC,IAAI,EAAEhC,QAAS;IACfU,KAAK,EAAEA,KAAK,CAACQ,OAAO,CAACC,IAAI,CAACnB,QAAS;IACnCkC,cAAc,EAAE,CACdnB,MAAM,CAACf,QAAQ,EACf;MAAEiB,eAAe,EAAER,MAAM,CAACE,EAAE,CAACC,mBAAmB,CAACM,OAAO,CAACC,IAAI,CAACgC;IAAmB,CAAC;EAClF,EAEL,eACDpE,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAACgE,KAAK;IAAChB,aAAa,EAAE,CAAE;IAACtB,KAAK,EAAEC,MAAM,CAACsC,QAAS;IAAC3C,KAAK,EAAEA,KAAK,CAACQ,OAAO,CAACC,IAAI,CAACmC;EAAS,GACtFvD,IAAI,CACA,CACF,CACF,eACPhB,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAEC,MAAM,CAACwC;EAAgB,GACjChD,SAAS,iBACRxB,KAAA,CAAA8B,aAAA,CAACzB,IAAI;IAACoE,EAAE;IAAC9C,KAAK,EAAED,MAAM,CAACE,EAAE,CAAC8C,KAAK,CAACvC,OAAO,CAACC,IAAI,CAACC,UAAW;IAACN,KAAK,EAAEC,MAAM,CAAC2C;EAAc,GAClFlD,cAAc,CAElB,EACAX,UAAU,GAAG,CAAC,iBAAId,KAAA,CAAA8B,aAAA,CAACtB,KAAK;IAACoE,KAAK,EAAE9D,UAAW;IAAC+D,QAAQ,EAAE9D;EAAc,EAAG,CACnE,CACF,eACPf,KAAA,CAAA8B,aAAA,CAACgD,SAAS;IAACnD,KAAK,EAAEA,KAAK,CAACQ,OAAO,CAACC,IAAI,CAAC2C;EAAU,EAAG,CAC7C,CACF;AAEX,CAAC;AAGD,MAAMD,SAAS,GAAGE,KAAA;EAAA,IAAC;IAAErD;EAAsB,CAAC,GAAAqD,KAAA;EAAA,oBAAKhF,KAAA,CAAA8B,aAAA,CAAC7B,IAAI;IAAC8B,KAAK,EAAE,CAACC,MAAM,CAAC+C,SAAS,EAAE;MAAE7C,eAAe,EAAEP;IAAM,CAAC;EAAE,EAAG;AAAA;AAEhH,MAAMK,MAAM,GAAG1B,gBAAgB,CAAC;EAC9B2B,SAAS,EAAE;IACTgD,MAAM,EAAE,EAAE;IACVC,KAAK,EAAE,MAAM;IACbC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACD/C,cAAc,EAAE;IACdgD,UAAU,EAAE,EAAE;IACdC,WAAW,EAAE;EACf,CAAC;EACD9C,YAAY,EAAE;IACZyC,KAAK,EAAE,EAAE;IACTD,MAAM,EAAE,EAAE;IACVO,YAAY,EAAE;EAChB,CAAC;EACD3C,YAAY,EAAE;IACZ4C,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,EAAE;IACdC,YAAY,EAAE;EAChB,CAAC;EACD7C,eAAe,EAAE;IACfqC,aAAa,EAAE,KAAK;IACpBS,YAAY,EAAE;EAChB,CAAC;EACD7C,oBAAoB,EAAE;IACpB0C,IAAI,EAAE,CAAC;IACPF,WAAW,EAAE,CAAC;IACdH,UAAU,EAAE,QAAQ;IACpBD,aAAa,EAAE;EACjB,CAAC;EACD/B,oBAAoB,EAAE;IACpBmC,WAAW,EAAE;EACf,CAAC;EACDhC,gBAAgB,EAAE;IAChBsC,UAAU,EAAE,CAAC;IACbN,WAAW,EAAE;EACf,CAAC;EACD7B,sBAAsB,EAAE;IACtBgC,UAAU,EAAE,CAAC;IACbH,WAAW,EAAE;EACf,CAAC;EACD3B,iBAAiB,EAAE;IACjB2B,WAAW,EAAE;EACf,CAAC;EACDzB,qBAAqB,EAAE;IACrBsB,UAAU,EAAE,YAAY;IACxBD,aAAa,EAAE,KAAK;IACpBG,UAAU,EAAE;EACd,CAAC;EACDrB,gBAAgB,EAAE;IAChB6B,SAAS,EAAE;EACb,CAAC;EACD5B,kBAAkB,EAAE;IAClBuB,IAAI,EAAE,CAAC;IACPR,MAAM,EAAE,MAAM;IACdE,aAAa,EAAE;EACjB,CAAC;EACDnE,IAAI,EAAE;IACJuE,WAAW,EAAE,CAAC;IACdE,IAAI,EAAE,CAAC;IACPN,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDjB,WAAW,EAAE;IACXgB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDd,QAAQ,EAAE;IACRmB,IAAI,EAAE;EACR,CAAC;EACDxE,QAAQ,EAAE;IACRuE,YAAY,EAAE,CAAC;IACfN,KAAK,EAAE,EAAE;IACTD,MAAM,EAAE,EAAE;IACVM,WAAW,EAAE;EACf,CAAC;EACDf,eAAe,EAAE;IACfW,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACDT,aAAa,EAAE;IACbY,WAAW,EAAE;EACf,CAAC;EACDR,SAAS,EAAE;IACTgB,QAAQ,EAAE,UAAU;IACpBC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC,EAAE;IACVC,MAAM,EAAE,CAAC;IACTjB,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,eAAexE,mBAAmB"}
|
|
@@ -1,5 +1,4 @@
|
|
|
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
|
-
|
|
3
2
|
import React from 'react';
|
|
4
3
|
import { TouchableOpacity, View } from 'react-native';
|
|
5
4
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
@@ -13,7 +12,6 @@ const AlignMapper = {
|
|
|
13
12
|
center: 'center',
|
|
14
13
|
right: 'flex-end'
|
|
15
14
|
};
|
|
16
|
-
|
|
17
15
|
const Header = _ref => {
|
|
18
16
|
let {
|
|
19
17
|
children,
|
|
@@ -41,7 +39,6 @@ const Header = _ref => {
|
|
|
41
39
|
} = useSafeAreaInsets();
|
|
42
40
|
const actualTitleAlign = titleAlign ?? defaultTitleAlign;
|
|
43
41
|
const actualTopInset = clearStatusBarTopInset ? 0 : topInset;
|
|
44
|
-
|
|
45
42
|
if (!title && !left && !right) {
|
|
46
43
|
return /*#__PURE__*/React.createElement(View, {
|
|
47
44
|
style: {
|
|
@@ -50,7 +47,6 @@ const Header = _ref => {
|
|
|
50
47
|
}
|
|
51
48
|
}, children);
|
|
52
49
|
}
|
|
53
|
-
|
|
54
50
|
return /*#__PURE__*/React.createElement(View, {
|
|
55
51
|
style: [styles.container, {
|
|
56
52
|
[statusBarTopInsetAs === 'padding' ? 'paddingTop' : 'marginTop']: actualTopInset,
|
|
@@ -79,14 +75,12 @@ const Header = _ref => {
|
|
|
79
75
|
onPressRight: onPressRight
|
|
80
76
|
})), children);
|
|
81
77
|
};
|
|
82
|
-
|
|
83
78
|
const LeftSide = _ref2 => {
|
|
84
79
|
let {
|
|
85
80
|
titleAlign,
|
|
86
81
|
onPressLeft,
|
|
87
82
|
left
|
|
88
83
|
} = _ref2;
|
|
89
|
-
|
|
90
84
|
if (titleAlign === 'center') {
|
|
91
85
|
return /*#__PURE__*/React.createElement(View, {
|
|
92
86
|
style: styles.left
|
|
@@ -94,7 +88,6 @@ const LeftSide = _ref2 => {
|
|
|
94
88
|
onPress: onPressLeft
|
|
95
89
|
}, left));
|
|
96
90
|
}
|
|
97
|
-
|
|
98
91
|
if (!left) return null;
|
|
99
92
|
return /*#__PURE__*/React.createElement(View, {
|
|
100
93
|
style: styles.left
|
|
@@ -102,14 +95,12 @@ const LeftSide = _ref2 => {
|
|
|
102
95
|
onPress: onPressLeft
|
|
103
96
|
}, left));
|
|
104
97
|
};
|
|
105
|
-
|
|
106
98
|
const RightSide = _ref3 => {
|
|
107
99
|
let {
|
|
108
100
|
titleAlign,
|
|
109
101
|
onPressRight,
|
|
110
102
|
right
|
|
111
103
|
} = _ref3;
|
|
112
|
-
|
|
113
104
|
if (titleAlign === 'center') {
|
|
114
105
|
return /*#__PURE__*/React.createElement(View, {
|
|
115
106
|
style: styles.right
|
|
@@ -117,7 +108,6 @@ const RightSide = _ref3 => {
|
|
|
117
108
|
onPress: onPressRight
|
|
118
109
|
}, right));
|
|
119
110
|
}
|
|
120
|
-
|
|
121
111
|
if (!right) return null;
|
|
122
112
|
return /*#__PURE__*/React.createElement(View, {
|
|
123
113
|
style: styles.right
|
|
@@ -125,7 +115,6 @@ const RightSide = _ref3 => {
|
|
|
125
115
|
onPress: onPressRight
|
|
126
116
|
}, right));
|
|
127
117
|
};
|
|
128
|
-
|
|
129
118
|
const HeaderTitle = _ref4 => {
|
|
130
119
|
let {
|
|
131
120
|
children,
|
|
@@ -138,7 +127,6 @@ const HeaderTitle = _ref4 => {
|
|
|
138
127
|
style: style
|
|
139
128
|
}), children);
|
|
140
129
|
};
|
|
141
|
-
|
|
142
130
|
const HeaderSubtitle = _ref5 => {
|
|
143
131
|
let {
|
|
144
132
|
children,
|
|
@@ -156,7 +144,6 @@ const HeaderSubtitle = _ref5 => {
|
|
|
156
144
|
style: style
|
|
157
145
|
}), children);
|
|
158
146
|
};
|
|
159
|
-
|
|
160
147
|
const HeaderButton = _ref6 => {
|
|
161
148
|
let {
|
|
162
149
|
children,
|
|
@@ -177,7 +164,6 @@ const HeaderButton = _ref6 => {
|
|
|
177
164
|
color: color
|
|
178
165
|
}, children), children]));
|
|
179
166
|
};
|
|
180
|
-
|
|
181
167
|
const styles = createStyleSheet({
|
|
182
168
|
container: {
|
|
183
169
|
paddingHorizontal: 12,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","TouchableOpacity","View","useSafeAreaInsets","conditionChaining","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","AlignMapper","left","center","right","Header","children","titleAlign","title","onPressLeft","onPressRight","clearTitleMargin","clearStatusBarTopInset","statusBarTopInsetAs","topInset","defaultTitleAlign","defaultHeight","colors","paddingLeft","paddingRight","actualTitleAlign","actualTopInset","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 Text, { TextProps } from '../../components/Text';\nimport type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype HeaderElement = string | React.ReactElement | null;\nexport type HeaderProps = BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n {\n clearTitleMargin?: boolean;\n clearStatusBarTopInset?: boolean;\n statusBarTopInsetAs?: 'padding' | 'margin';\n }\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 clearStatusBarTopInset = false,\n statusBarTopInsetAs = 'padding',\n}) => {\n const { topInset, defaultTitleAlign, defaultHeight } = useHeaderStyle();\n\n const { colors } = useUIKitTheme();\n const { left: paddingLeft, right: paddingRight } = useSafeAreaInsets();\n\n const actualTitleAlign = titleAlign ?? defaultTitleAlign;\n const actualTopInset = clearStatusBarTopInset ? 0 : topInset;\n\n if (!title && !left && !right) {\n return (\n <View style={{ paddingTop: actualTopInset, backgroundColor: colors.ui.header.nav.none.background }}>\n {children}\n </View>\n );\n }\n\n return (\n <View\n style={[\n styles.container,\n {\n [statusBarTopInsetAs === 'padding' ? 'paddingTop' : 'marginTop']: actualTopInset,\n paddingLeft: paddingLeft + styles.container.paddingHorizontal,\n paddingRight: paddingRight + styles.container.paddingHorizontal,\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
|
+
{"version":3,"names":["React","TouchableOpacity","View","useSafeAreaInsets","conditionChaining","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","AlignMapper","left","center","right","Header","_ref","children","titleAlign","title","onPressLeft","onPressRight","clearTitleMargin","clearStatusBarTopInset","statusBarTopInsetAs","topInset","defaultTitleAlign","defaultHeight","colors","paddingLeft","paddingRight","actualTitleAlign","actualTopInset","createElement","style","paddingTop","backgroundColor","ui","header","nav","none","background","styles","container","paddingHorizontal","borderBottomColor","borderBottom","height","LeftSide","marginHorizontal","justifyContent","HeaderTitle","RightSide","_ref2","HeaderButton","onPress","_ref3","_ref4","props","_extends","h1","numberOfLines","HeaderSubtitle","_ref5","color","onBackground03","caption2","_ref6","disabled","button","e","activeOpacity","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 Text, { TextProps } from '../../components/Text';\nimport type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype HeaderElement = string | React.ReactElement | null;\nexport type HeaderProps = BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n {\n clearTitleMargin?: boolean;\n clearStatusBarTopInset?: boolean;\n statusBarTopInsetAs?: 'padding' | 'margin';\n }\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 clearStatusBarTopInset = false,\n statusBarTopInsetAs = 'padding',\n}) => {\n const { topInset, defaultTitleAlign, defaultHeight } = useHeaderStyle();\n\n const { colors } = useUIKitTheme();\n const { left: paddingLeft, right: paddingRight } = useSafeAreaInsets();\n\n const actualTitleAlign = titleAlign ?? defaultTitleAlign;\n const actualTopInset = clearStatusBarTopInset ? 0 : topInset;\n\n if (!title && !left && !right) {\n return (\n <View style={{ paddingTop: actualTopInset, backgroundColor: colors.ui.header.nav.none.background }}>\n {children}\n </View>\n );\n }\n\n return (\n <View\n style={[\n styles.container,\n {\n [statusBarTopInsetAs === 'padding' ? 'paddingTop' : 'marginTop']: actualTopInset,\n paddingLeft: paddingLeft + styles.container.paddingHorizontal,\n paddingRight: paddingRight + styles.container.paddingHorizontal,\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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"}
|
|
@@ -2,7 +2,6 @@ import React, { useEffect, useRef } from 'react';
|
|
|
2
2
|
import { Animated, Easing } from 'react-native';
|
|
3
3
|
import Icon from '../../components/Icon';
|
|
4
4
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
5
|
-
|
|
6
5
|
const LoadingSpinner = _ref => {
|
|
7
6
|
let {
|
|
8
7
|
size = 24,
|
|
@@ -20,7 +19,6 @@ const LoadingSpinner = _ref => {
|
|
|
20
19
|
color: color ?? colors.primary
|
|
21
20
|
}));
|
|
22
21
|
};
|
|
23
|
-
|
|
24
22
|
const useLoopAnimated = function (duration) {
|
|
25
23
|
let useNativeDriver = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
26
24
|
const animated = useRef(new Animated.Value(0)).current;
|
|
@@ -40,7 +38,6 @@ const useLoopAnimated = function (duration) {
|
|
|
40
38
|
}, []);
|
|
41
39
|
return animated;
|
|
42
40
|
};
|
|
43
|
-
|
|
44
41
|
const Rotate = _ref2 => {
|
|
45
42
|
let {
|
|
46
43
|
children,
|
|
@@ -59,6 +56,5 @@ const Rotate = _ref2 => {
|
|
|
59
56
|
}]
|
|
60
57
|
}, children);
|
|
61
58
|
};
|
|
62
|
-
|
|
63
59
|
export default LoadingSpinner;
|
|
64
60
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","Animated","Easing","Icon","useUIKitTheme","LoadingSpinner","size","color","style","colors","primary","useLoopAnimated","duration","useNativeDriver","animated","Value","current","loop","timing","toValue","easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","
|
|
1
|
+
{"version":3,"names":["React","useEffect","useRef","Animated","Easing","Icon","useUIKitTheme","LoadingSpinner","_ref","size","color","style","colors","createElement","Rotate","icon","primary","useLoopAnimated","duration","useNativeDriver","arguments","length","undefined","animated","Value","current","loop","timing","toValue","easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","_ref2","children","rotate","interpolate","inputRange","outputRange","View","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing, StyleProp, ViewStyle } from 'react-native';\n\nimport Icon from '../../components/Icon';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\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,KAAK,IAAIC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAChD,SAASC,QAAQ,EAAEC,MAAM,QAA8B,cAAc;AAErE,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,aAAa,MAAM,2BAA2B;AAQrD,MAAMC,cAAc,GAAGC,IAAA,IAAwC;EAAA,IAAvC;IAAEC,IAAI,GAAG,EAAE;IAAEC,KAAK;IAAEC;EAAa,CAAC,GAAAH,IAAA;EACxD,MAAM;IAAEI;EAAO,CAAC,GAAGN,aAAa,EAAE;EAClC,oBACEN,KAAA,CAAAa,aAAA,CAACC,MAAM;IAACH,KAAK,EAAEA;EAAM,gBACnBX,KAAA,CAAAa,aAAA,CAACR,IAAI;IAACU,IAAI,EAAE,SAAU;IAACN,IAAI,EAAEA,IAAK;IAACC,KAAK,EAAEA,KAAK,IAAIE,MAAM,CAACI;EAAQ,EAAG,CAC9D;AAEb,CAAC;AAED,MAAMC,eAAe,GAAG,SAAAA,CAACC,QAAgB,EAA6B;EAAA,IAA3BC,eAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;EAC/D,MAAMG,QAAQ,GAAGrB,MAAM,CAAC,IAAIC,QAAQ,CAACqB,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAEtDxB,SAAS,CAAC,MAAM;IACdE,QAAQ,CAACuB,IAAI,CACXvB,QAAQ,CAACwB,MAAM,CAACJ,QAAQ,EAAE;MAAEK,OAAO,EAAE,CAAC;MAAEV,QAAQ;MAAEC,eAAe;MAAEU,MAAM,EAAEzB,MAAM,CAAC0B,KAAK,CAAC1B,MAAM,CAAC2B,MAAM;IAAE,CAAC,CAAC,EACzG;MAAEC,oBAAoB,EAAE;IAAK,CAAC,CAC/B,CAACC,KAAK,EAAE;IAET,OAAO,MAAM;MACXV,QAAQ,CAACW,aAAa,EAAE;MACxBX,QAAQ,CAACY,QAAQ,CAAC,CAAC,CAAC;IACtB,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,OAAOZ,QAAQ;AACjB,CAAC;AAED,MAAMT,MAAM,GAAGsB,KAAA,IAAmF;EAAA,IAAlF;IAAEC,QAAQ;IAAE1B;EAAgE,CAAC,GAAAyB,KAAA;EAC3F,MAAMV,IAAI,GAAGT,eAAe,CAAC,IAAI,CAAC;EAClC,MAAMqB,MAAM,GAAGZ,IAAI,CAACa,WAAW,CAAC;IAAEC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAAEC,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ;EAAE,CAAC,CAAC;EACxF,oBAAOzC,KAAA,CAAAa,aAAA,CAACV,QAAQ,CAACuC,IAAI;IAAC/B,KAAK,EAAE,CAACA,KAAK,EAAE;MAAEgC,SAAS,EAAE,CAAC;QAAEL;MAAO,CAAC;IAAE,CAAC;EAAE,GAAED,QAAQ,CAAiB;AAC/F,CAAC;AAED,eAAe9B,cAAc"}
|
|
@@ -6,7 +6,6 @@ import Icon from '../../components/Icon';
|
|
|
6
6
|
import Text from '../../components/Text';
|
|
7
7
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
8
8
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
9
|
-
|
|
10
9
|
const MenuBar = _ref => {
|
|
11
10
|
let {
|
|
12
11
|
variant = 'default',
|
|
@@ -47,7 +46,6 @@ const MenuBar = _ref => {
|
|
|
47
46
|
style: styles.actionLabel
|
|
48
47
|
}, actionLabel), actionItem), /*#__PURE__*/React.createElement(Divider, null));
|
|
49
48
|
};
|
|
50
|
-
|
|
51
49
|
const styles = createStyleSheet({
|
|
52
50
|
container: {
|
|
53
51
|
paddingVertical: 16,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","View","conditionChaining","Divider","Icon","Text","createStyleSheet","useUIKitTheme","MenuBar","variant","disabled","visible","onPress","name","icon","iconColor","iconBackgroundColor","actionLabel","actionItem","palette","colors","styles","container","background50","primary","containedIcon","backgroundColor","background400","Boolean","onBackground02","paddingVertical","flexDirection","alignItems","flex","marginRight","borderRadius","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Divider from '../../components/Divider';\nimport Icon from '../../components/Icon';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\nexport type MenuBarProps = {\n variant?: 'default' | 'contained';\n\n onPress: () => void;\n disabled?: boolean;\n visible?: boolean;\n\n icon: keyof typeof Icon.Assets;\n iconColor?: string;\n iconBackgroundColor?: string;\n name: string;\n\n actionLabel?: string;\n actionItem?: React.ReactNode;\n};\nconst MenuBar = ({\n variant = 'default',\n disabled,\n visible = true,\n onPress,\n name,\n icon,\n iconColor,\n iconBackgroundColor,\n actionLabel,\n actionItem = null,\n}: MenuBarProps) => {\n const { palette, colors } = useUIKitTheme();\n\n if (!visible) return null;\n\n return (\n <View>\n <Pressable disabled={disabled} onPress={onPress} style={styles.container}>\n {icon && (\n <Icon\n icon={icon}\n size={variant === 'contained' ? 16 : 24}\n color={conditionChaining(\n [variant === 'contained', iconColor],\n [palette.background50, iconColor, colors.primary],\n )}\n containerStyle={[\n styles.icon,\n variant === 'contained' && styles.containedIcon,\n variant === 'contained' && { backgroundColor: iconBackgroundColor ?? palette.background400 },\n ]}\n />\n )}\n <Text subtitle2 numberOfLines={1} style={styles.name}>\n {name}\n </Text>\n {Boolean(actionLabel) && (\n <Text subtitle2 numberOfLines={1} color={colors.onBackground02} style={styles.actionLabel}>\n {actionLabel}\n </Text>\n )}\n {actionItem}\n </Pressable>\n <Divider />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingVertical: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n icon: {\n marginRight: 16,\n },\n containedIcon: {\n borderRadius: 24,\n padding: 4,\n },\n actionLabel: {\n marginRight: 4,\n },\n});\n\nexport default MenuBar;\n"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","Pressable","View","conditionChaining","Divider","Icon","Text","createStyleSheet","useUIKitTheme","MenuBar","_ref","variant","disabled","visible","onPress","name","icon","iconColor","iconBackgroundColor","actionLabel","actionItem","palette","colors","createElement","style","styles","container","size","color","background50","primary","containerStyle","containedIcon","backgroundColor","background400","subtitle2","numberOfLines","Boolean","onBackground02","paddingVertical","flexDirection","alignItems","flex","marginRight","borderRadius","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Divider from '../../components/Divider';\nimport Icon from '../../components/Icon';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\nexport type MenuBarProps = {\n variant?: 'default' | 'contained';\n\n onPress: () => void;\n disabled?: boolean;\n visible?: boolean;\n\n icon: keyof typeof Icon.Assets;\n iconColor?: string;\n iconBackgroundColor?: string;\n name: string;\n\n actionLabel?: string;\n actionItem?: React.ReactNode;\n};\nconst MenuBar = ({\n variant = 'default',\n disabled,\n visible = true,\n onPress,\n name,\n icon,\n iconColor,\n iconBackgroundColor,\n actionLabel,\n actionItem = null,\n}: MenuBarProps) => {\n const { palette, colors } = useUIKitTheme();\n\n if (!visible) return null;\n\n return (\n <View>\n <Pressable disabled={disabled} onPress={onPress} style={styles.container}>\n {icon && (\n <Icon\n icon={icon}\n size={variant === 'contained' ? 16 : 24}\n color={conditionChaining(\n [variant === 'contained', iconColor],\n [palette.background50, iconColor, colors.primary],\n )}\n containerStyle={[\n styles.icon,\n variant === 'contained' && styles.containedIcon,\n variant === 'contained' && { backgroundColor: iconBackgroundColor ?? palette.background400 },\n ]}\n />\n )}\n <Text subtitle2 numberOfLines={1} style={styles.name}>\n {name}\n </Text>\n {Boolean(actionLabel) && (\n <Text subtitle2 numberOfLines={1} color={colors.onBackground02} style={styles.actionLabel}>\n {actionLabel}\n </Text>\n )}\n {actionItem}\n </Pressable>\n <Divider />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingVertical: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n icon: {\n marginRight: 16,\n },\n containedIcon: {\n borderRadius: 24,\n padding: 4,\n },\n actionLabel: {\n marginRight: 4,\n },\n});\n\nexport default MenuBar;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,SAAS,EAAEC,IAAI,QAAQ,cAAc;AAE9C,SAASC,iBAAiB,QAAQ,uBAAuB;AAEzD,OAAOC,OAAO,MAAM,0BAA0B;AAC9C,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,gBAAgB,MAAM,+BAA+B;AAC5D,OAAOC,aAAa,MAAM,2BAA2B;AAiBrD,MAAMC,OAAO,GAAGC,IAAA,IAWI;EAAA,IAXH;IACfC,OAAO,GAAG,SAAS;IACnBC,QAAQ;IACRC,OAAO,GAAG,IAAI;IACdC,OAAO;IACPC,IAAI;IACJC,IAAI;IACJC,SAAS;IACTC,mBAAmB;IACnBC,WAAW;IACXC,UAAU,GAAG;EACD,CAAC,GAAAV,IAAA;EACb,MAAM;IAAEW,OAAO;IAAEC;EAAO,CAAC,GAAGd,aAAa,EAAE;EAE3C,IAAI,CAACK,OAAO,EAAE,OAAO,IAAI;EAEzB,oBACEb,KAAA,CAAAuB,aAAA,CAACrB,IAAI,qBACHF,KAAA,CAAAuB,aAAA,CAACtB,SAAS;IAACW,QAAQ,EAAEA,QAAS;IAACE,OAAO,EAAEA,OAAQ;IAACU,KAAK,EAAEC,MAAM,CAACC;EAAU,GACtEV,IAAI,iBACHhB,KAAA,CAAAuB,aAAA,CAAClB,IAAI;IACHW,IAAI,EAAEA,IAAK;IACXW,IAAI,EAAEhB,OAAO,KAAK,WAAW,GAAG,EAAE,GAAG,EAAG;IACxCiB,KAAK,EAAEzB,iBAAiB,CACtB,CAACQ,OAAO,KAAK,WAAW,EAAEM,SAAS,CAAC,EACpC,CAACI,OAAO,CAACQ,YAAY,EAAEZ,SAAS,EAAEK,MAAM,CAACQ,OAAO,CAAC,CACjD;IACFC,cAAc,EAAE,CACdN,MAAM,CAACT,IAAI,EACXL,OAAO,KAAK,WAAW,IAAIc,MAAM,CAACO,aAAa,EAC/CrB,OAAO,KAAK,WAAW,IAAI;MAAEsB,eAAe,EAAEf,mBAAmB,IAAIG,OAAO,CAACa;IAAc,CAAC;EAC5F,EAEL,eACDlC,KAAA,CAAAuB,aAAA,CAACjB,IAAI;IAAC6B,SAAS;IAACC,aAAa,EAAE,CAAE;IAACZ,KAAK,EAAEC,MAAM,CAACV;EAAK,GAClDA,IAAI,CACA,EACNsB,OAAO,CAAClB,WAAW,CAAC,iBACnBnB,KAAA,CAAAuB,aAAA,CAACjB,IAAI;IAAC6B,SAAS;IAACC,aAAa,EAAE,CAAE;IAACR,KAAK,EAAEN,MAAM,CAACgB,cAAe;IAACd,KAAK,EAAEC,MAAM,CAACN;EAAY,GACvFA,WAAW,CAEf,EACAC,UAAU,CACD,eACZpB,KAAA,CAAAuB,aAAA,CAACnB,OAAO,OAAG,CACN;AAEX,CAAC;AAED,MAAMqB,MAAM,GAAGlB,gBAAgB,CAAC;EAC9BmB,SAAS,EAAE;IACTa,eAAe,EAAE,EAAE;IACnBC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE;EACd,CAAC;EACD1B,IAAI,EAAE;IACJ2B,IAAI,EAAE,CAAC;IACPC,WAAW,EAAE;EACf,CAAC;EACD3B,IAAI,EAAE;IACJ2B,WAAW,EAAE;EACf,CAAC;EACDX,aAAa,EAAE;IACbY,YAAY,EAAE,EAAE;IAChBC,OAAO,EAAE;EACX,CAAC;EACD1B,WAAW,EAAE;IACXwB,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAEF,eAAelC,OAAO"}
|
|
@@ -2,7 +2,6 @@ import React from 'react';
|
|
|
2
2
|
import Box from '../../components/Box';
|
|
3
3
|
import Text from '../../components/Text';
|
|
4
4
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
5
|
-
|
|
6
5
|
const AdminMessage = props => {
|
|
7
6
|
const {
|
|
8
7
|
colors
|
|
@@ -22,6 +21,5 @@ const AdminMessage = props => {
|
|
|
22
21
|
color: colors.onBackground02
|
|
23
22
|
}, props.message.message)));
|
|
24
23
|
};
|
|
25
|
-
|
|
26
24
|
export default AdminMessage;
|
|
27
25
|
//# sourceMappingURL=Message.admin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Box","Text","useUIKitTheme","AdminMessage","props","colors","color","ui","openChannelMessage","default","background","enabled","adminBackground","onBackground02","message"],"sources":["Message.admin.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdAdminMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Text from '../../components/Text';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { OpenChannelMessageProps } from './index';\n\nconst AdminMessage = (props: OpenChannelMessageProps<SendbirdAdminMessage>) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.openChannelMessage.default;\n return (\n <Box marginVertical={8} paddingHorizontal={12} backgroundColor={colors.background}>\n <Box borderRadius={8} paddingHorizontal={16} paddingVertical={14} backgroundColor={color.enabled.adminBackground}>\n <Text caption2 color={colors.onBackground02}>\n {props.message.message}\n </Text>\n </Box>\n </Box>\n );\n};\n\nexport default AdminMessage;\n"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","Box","Text","useUIKitTheme","AdminMessage","props","colors","color","ui","openChannelMessage","default","createElement","marginVertical","paddingHorizontal","backgroundColor","background","borderRadius","paddingVertical","enabled","adminBackground","caption2","onBackground02","message"],"sources":["Message.admin.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdAdminMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Text from '../../components/Text';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { OpenChannelMessageProps } from './index';\n\nconst AdminMessage = (props: OpenChannelMessageProps<SendbirdAdminMessage>) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.openChannelMessage.default;\n return (\n <Box marginVertical={8} paddingHorizontal={12} backgroundColor={colors.background}>\n <Box borderRadius={8} paddingHorizontal={16} paddingVertical={14} backgroundColor={color.enabled.adminBackground}>\n <Text caption2 color={colors.onBackground02}>\n {props.message.message}\n </Text>\n </Box>\n </Box>\n );\n};\n\nexport default AdminMessage;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAIzB,OAAOC,GAAG,MAAM,sBAAsB;AACtC,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,aAAa,MAAM,2BAA2B;AAGrD,MAAMC,YAAY,GAAIC,KAAoD,IAAK;EAC7E,MAAM;IAAEC;EAAO,CAAC,GAAGH,aAAa,EAAE;EAClC,MAAMI,KAAK,GAAGD,MAAM,CAACE,EAAE,CAACC,kBAAkB,CAACC,OAAO;EAClD,oBACEV,KAAA,CAAAW,aAAA,CAACV,GAAG;IAACW,cAAc,EAAE,CAAE;IAACC,iBAAiB,EAAE,EAAG;IAACC,eAAe,EAAER,MAAM,CAACS;EAAW,gBAChFf,KAAA,CAAAW,aAAA,CAACV,GAAG;IAACe,YAAY,EAAE,CAAE;IAACH,iBAAiB,EAAE,EAAG;IAACI,eAAe,EAAE,EAAG;IAACH,eAAe,EAAEP,KAAK,CAACW,OAAO,CAACC;EAAgB,gBAC/GnB,KAAA,CAAAW,aAAA,CAACT,IAAI;IAACkB,QAAQ;IAACb,KAAK,EAAED,MAAM,CAACe;EAAe,GACzChB,KAAK,CAACiB,OAAO,CAACA,OAAO,CACjB,CACH,CACF;AAEV,CAAC;AAED,eAAelB,YAAY"}
|
|
@@ -5,7 +5,6 @@ import ImageWithPlaceholder from '../../components/ImageWithPlaceholder';
|
|
|
5
5
|
import PressBox from '../../components/PressBox';
|
|
6
6
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
7
7
|
import MessageContainer from './MessageContainer';
|
|
8
|
-
|
|
9
8
|
const ImageFileMessage = props => {
|
|
10
9
|
const {
|
|
11
10
|
onPress,
|
|
@@ -30,7 +29,6 @@ const ImageFileMessage = props => {
|
|
|
30
29
|
height: '100%'
|
|
31
30
|
}))));
|
|
32
31
|
};
|
|
33
|
-
|
|
34
32
|
const styles = createStyleSheet({
|
|
35
33
|
container: {
|
|
36
34
|
maxWidth: 296,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","getAvailableUriFromFileMessage","Box","ImageWithPlaceholder","PressBox","createStyleSheet","MessageContainer","ImageFileMessage","props","onPress","onLongPress","rest","uri","message","styles","container","
|
|
1
|
+
{"version":3,"names":["React","getAvailableUriFromFileMessage","Box","ImageWithPlaceholder","PressBox","createStyleSheet","MessageContainer","ImageFileMessage","props","onPress","onLongPress","rest","uri","message","createElement","borderRadius","overflow","style","styles","container","activeOpacity","source","width","height","maxWidth"],"sources":["Message.file.image.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdFileMessage } from '@sendbird/uikit-utils';\nimport { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport ImageWithPlaceholder from '../../components/ImageWithPlaceholder';\nimport PressBox from '../../components/PressBox';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\nconst ImageFileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage>) => {\n const { onPress, onLongPress, ...rest } = props;\n const uri = getAvailableUriFromFileMessage(props.message);\n return (\n <MessageContainer {...rest}>\n <Box borderRadius={8} overflow={'hidden'} style={styles.container}>\n <PressBox style={styles.container} activeOpacity={0.8} onPress={onPress} onLongPress={onLongPress}>\n <ImageWithPlaceholder source={{ uri }} width={'100%'} height={'100%'} />\n </PressBox>\n </Box>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n maxWidth: 296,\n height: 196,\n },\n});\n\nexport default ImageFileMessage;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,8BAA8B,QAAQ,uBAAuB;AAEtE,OAAOC,GAAG,MAAM,sBAAsB;AACtC,OAAOC,oBAAoB,MAAM,uCAAuC;AACxE,OAAOC,QAAQ,MAAM,2BAA2B;AAChD,OAAOC,gBAAgB,MAAM,+BAA+B;AAC5D,OAAOC,gBAAgB,MAAM,oBAAoB;AAGjD,MAAMC,gBAAgB,GAAIC,KAAmD,IAAK;EAChF,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAC/C,MAAMI,GAAG,GAAGX,8BAA8B,CAACO,KAAK,CAACK,OAAO,CAAC;EACzD,oBACEb,KAAA,CAAAc,aAAA,CAACR,gBAAgB,EAAKK,IAAI,eACxBX,KAAA,CAAAc,aAAA,CAACZ,GAAG;IAACa,YAAY,EAAE,CAAE;IAACC,QAAQ,EAAE,QAAS;IAACC,KAAK,EAAEC,MAAM,CAACC;EAAU,gBAChEnB,KAAA,CAAAc,aAAA,CAACV,QAAQ;IAACa,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACC,aAAa,EAAE,GAAI;IAACX,OAAO,EAAEA,OAAQ;IAACC,WAAW,EAAEA;EAAY,gBAChGV,KAAA,CAAAc,aAAA,CAACX,oBAAoB;IAACkB,MAAM,EAAE;MAAET;IAAI,CAAE;IAACU,KAAK,EAAE,MAAO;IAACC,MAAM,EAAE;EAAO,EAAG,CAC/D,CACP,CACW;AAEvB,CAAC;AAED,MAAML,MAAM,GAAGb,gBAAgB,CAAC;EAC9Bc,SAAS,EAAE;IACTK,QAAQ,EAAE,GAAG;IACbD,MAAM,EAAE;EACV;AACF,CAAC,CAAC;AAEF,eAAehB,gBAAgB"}
|
|
@@ -13,7 +13,6 @@ const iconMapper = {
|
|
|
13
13
|
video: 'play',
|
|
14
14
|
file: 'file-document'
|
|
15
15
|
};
|
|
16
|
-
|
|
17
16
|
const FileMessage = props => {
|
|
18
17
|
const {
|
|
19
18
|
colors
|
|
@@ -30,7 +29,6 @@ const FileMessage = props => {
|
|
|
30
29
|
onLongPress: onLongPress
|
|
31
30
|
}, _ref => {
|
|
32
31
|
var _props$strings;
|
|
33
|
-
|
|
34
32
|
let {
|
|
35
33
|
pressed
|
|
36
34
|
} = _ref;
|
|
@@ -61,7 +59,6 @@ const FileMessage = props => {
|
|
|
61
59
|
}, ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.fileName) || props.message.name));
|
|
62
60
|
}));
|
|
63
61
|
};
|
|
64
|
-
|
|
65
62
|
const styles = createStyleSheet({
|
|
66
63
|
fileName: {
|
|
67
64
|
flexShrink: 1
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","getFileTypeFromMessage","Box","Icon","PressBox","Text","createStyleSheet","useUIKitTheme","MessageContainer","iconMapper","audio","image","video","file","FileMessage","props","colors","onPress","onLongPress","rest","type","message","color","ui","openChannelMessage","default","pressed","backgroundColor","bubbleBackground","enabled","background","textMsg","styles","fileName","strings","name","flexShrink"],"sources":["Message.file.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SendbirdFileMessage, getFileTypeFromMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Icon from '../../components/Icon';\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {};\nconst FileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage, Props>) => {\n const { colors } = useUIKitTheme();\n const { onPress, onLongPress, ...rest } = props;\n const type = getFileTypeFromMessage(props.message);\n const color = colors.ui.openChannelMessage.default;\n\n return (\n <MessageContainer {...rest}>\n <PressBox onPress={onPress} onLongPress={onLongPress}>\n {({ pressed }) => {\n return (\n <Box\n padding={8}\n borderRadius={8}\n flexDirection={'row'}\n alignItems={'center'}\n justifyContent={'flex-start'}\n style={{ backgroundColor: pressed ? color.pressed.bubbleBackground : color.enabled.bubbleBackground }}\n >\n <Box\n padding={4}\n marginRight={8}\n borderRadius={8}\n alignItems={'flex-start'}\n backgroundColor={colors.background}\n >\n <Icon icon={iconMapper[type]} size={32} />\n </Box>\n <Text\n body3\n numberOfLines={1}\n ellipsizeMode={'middle'}\n color={color.enabled.textMsg}\n style={styles.fileName}\n >\n {props.strings?.fileName || props.message.name}\n </Text>\n </Box>\n );\n }}\n </PressBox>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n fileName: {\n flexShrink: 1,\n },\n});\nexport default FileMessage;\n"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"names":["React","getFileTypeFromMessage","Box","Icon","PressBox","Text","createStyleSheet","useUIKitTheme","MessageContainer","iconMapper","audio","image","video","file","FileMessage","props","colors","onPress","onLongPress","rest","type","message","color","ui","openChannelMessage","default","createElement","_ref","_props$strings","pressed","padding","borderRadius","flexDirection","alignItems","justifyContent","style","backgroundColor","bubbleBackground","enabled","marginRight","background","icon","size","body3","numberOfLines","ellipsizeMode","textMsg","styles","fileName","strings","name","flexShrink"],"sources":["Message.file.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SendbirdFileMessage, getFileTypeFromMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Icon from '../../components/Icon';\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\n\ntype Props = {};\nconst FileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage, Props>) => {\n const { colors } = useUIKitTheme();\n const { onPress, onLongPress, ...rest } = props;\n const type = getFileTypeFromMessage(props.message);\n const color = colors.ui.openChannelMessage.default;\n\n return (\n <MessageContainer {...rest}>\n <PressBox onPress={onPress} onLongPress={onLongPress}>\n {({ pressed }) => {\n return (\n <Box\n padding={8}\n borderRadius={8}\n flexDirection={'row'}\n alignItems={'center'}\n justifyContent={'flex-start'}\n style={{ backgroundColor: pressed ? color.pressed.bubbleBackground : color.enabled.bubbleBackground }}\n >\n <Box\n padding={4}\n marginRight={8}\n borderRadius={8}\n alignItems={'flex-start'}\n backgroundColor={colors.background}\n >\n <Icon icon={iconMapper[type]} size={32} />\n </Box>\n <Text\n body3\n numberOfLines={1}\n ellipsizeMode={'middle'}\n color={color.enabled.textMsg}\n style={styles.fileName}\n >\n {props.strings?.fileName || props.message.name}\n </Text>\n </Box>\n );\n }}\n </PressBox>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n fileName: {\n flexShrink: 1,\n },\n});\nexport default FileMessage;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAA8BC,sBAAsB,QAAQ,uBAAuB;AAEnF,OAAOC,GAAG,MAAM,sBAAsB;AACtC,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,QAAQ,MAAM,2BAA2B;AAChD,OAAOC,IAAI,MAAM,uBAAuB;AACxC,OAAOC,gBAAgB,MAAM,+BAA+B;AAC5D,OAAOC,aAAa,MAAM,2BAA2B;AACrD,OAAOC,gBAAgB,MAAM,oBAAoB;AAGjD,MAAMC,UAAU,GAAG;EAAEC,KAAK,EAAE,YAAY;EAAEC,KAAK,EAAE,OAAO;EAAEC,KAAK,EAAE,MAAM;EAAEC,IAAI,EAAE;AAAgB,CAAU;AAGzG,MAAMC,WAAW,GAAIC,KAA0D,IAAK;EAClF,MAAM;IAAEC;EAAO,CAAC,GAAGT,aAAa,EAAE;EAClC,MAAM;IAAEU,OAAO;IAAEC,WAAW;IAAE,GAAGC;EAAK,CAAC,GAAGJ,KAAK;EAC/C,MAAMK,IAAI,GAAGnB,sBAAsB,CAACc,KAAK,CAACM,OAAO,CAAC;EAClD,MAAMC,KAAK,GAAGN,MAAM,CAACO,EAAE,CAACC,kBAAkB,CAACC,OAAO;EAElD,oBACEzB,KAAA,CAAA0B,aAAA,CAAClB,gBAAgB,EAAKW,IAAI,eACxBnB,KAAA,CAAA0B,aAAA,CAACtB,QAAQ;IAACa,OAAO,EAAEA,OAAQ;IAACC,WAAW,EAAEA;EAAY,GAClDS,IAAA,IAAiB;IAAA,IAAAC,cAAA;IAAA,IAAhB;MAAEC;IAAQ,CAAC,GAAAF,IAAA;IACX,oBACE3B,KAAA,CAAA0B,aAAA,CAACxB,GAAG;MACF4B,OAAO,EAAE,CAAE;MACXC,YAAY,EAAE,CAAE;MAChBC,aAAa,EAAE,KAAM;MACrBC,UAAU,EAAE,QAAS;MACrBC,cAAc,EAAE,YAAa;MAC7BC,KAAK,EAAE;QAAEC,eAAe,EAAEP,OAAO,GAAGP,KAAK,CAACO,OAAO,CAACQ,gBAAgB,GAAGf,KAAK,CAACgB,OAAO,CAACD;MAAiB;IAAE,gBAEtGrC,KAAA,CAAA0B,aAAA,CAACxB,GAAG;MACF4B,OAAO,EAAE,CAAE;MACXS,WAAW,EAAE,CAAE;MACfR,YAAY,EAAE,CAAE;MAChBE,UAAU,EAAE,YAAa;MACzBG,eAAe,EAAEpB,MAAM,CAACwB;IAAW,gBAEnCxC,KAAA,CAAA0B,aAAA,CAACvB,IAAI;MAACsC,IAAI,EAAEhC,UAAU,CAACW,IAAI,CAAE;MAACsB,IAAI,EAAE;IAAG,EAAG,CACtC,eACN1C,KAAA,CAAA0B,aAAA,CAACrB,IAAI;MACHsC,KAAK;MACLC,aAAa,EAAE,CAAE;MACjBC,aAAa,EAAE,QAAS;MACxBvB,KAAK,EAAEA,KAAK,CAACgB,OAAO,CAACQ,OAAQ;MAC7BX,KAAK,EAAEY,MAAM,CAACC;IAAS,GAEtB,EAAApB,cAAA,GAAAb,KAAK,CAACkC,OAAO,cAAArB,cAAA,uBAAbA,cAAA,CAAeoB,QAAQ,KAAIjC,KAAK,CAACM,OAAO,CAAC6B,IAAI,CACzC,CACH;EAEV,CAAC,CACQ,CACM;AAEvB,CAAC;AAED,MAAMH,MAAM,GAAGzC,gBAAgB,CAAC;EAC9B0C,QAAQ,EAAE;IACRG,UAAU,EAAE;EACd;AACF,CAAC,CAAC;AACF,eAAerC,WAAW"}
|
|
@@ -7,7 +7,6 @@ import PressBox from '../../components/PressBox';
|
|
|
7
7
|
import createStyleSheet from '../../styles/createStyleSheet';
|
|
8
8
|
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
9
9
|
import MessageContainer from './MessageContainer';
|
|
10
|
-
|
|
11
10
|
const VideoFileMessage = props => {
|
|
12
11
|
const {
|
|
13
12
|
colors,
|
|
@@ -57,7 +56,6 @@ const VideoFileMessage = props => {
|
|
|
57
56
|
}]
|
|
58
57
|
})))));
|
|
59
58
|
};
|
|
60
|
-
|
|
61
59
|
const useRetry = function (fetch) {
|
|
62
60
|
let retryCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
|
|
63
61
|
const [state, setState] = useState({
|
|
@@ -84,7 +82,6 @@ const useRetry = function (fetch) {
|
|
|
84
82
|
}, retryCountRef.current * 5000);
|
|
85
83
|
}
|
|
86
84
|
};
|
|
87
|
-
|
|
88
85
|
return reloadReservation();
|
|
89
86
|
} else {
|
|
90
87
|
return clearTimeout(retryTimeoutRef.current);
|
|
@@ -92,7 +89,6 @@ const useRetry = function (fetch) {
|
|
|
92
89
|
}, [state.thumbnail]);
|
|
93
90
|
return state;
|
|
94
91
|
};
|
|
95
|
-
|
|
96
92
|
const styles = createStyleSheet({
|
|
97
93
|
container: {
|
|
98
94
|
maxWidth: 296,
|