@sendbird/uikit-react-native-foundation 1.0.0-rc.3 → 1.0.1
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/package.json +5 -5
- package/src/components/Image/index.ts +1 -3
- package/src/styles/HeaderStyleContext.tsx +2 -2
- package/src/theme/UIKitThemeProvider.tsx +4 -2
- package/src/ui/ActionMenu/index.tsx +1 -1
- package/src/ui/Alert/index.tsx +1 -8
- package/src/ui/Avatar/AvatarGroup.tsx +5 -2
- package/src/ui/Avatar/AvatarIcon.tsx +1 -1
- package/src/ui/Avatar/index.tsx +12 -3
- package/src/ui/Badge/index.tsx +1 -1
- package/src/ui/BottomSheet/index.tsx +1 -1
- package/src/ui/Button/index.tsx +4 -4
- package/src/ui/ChannelFrozenBanner/index.tsx +1 -1
- package/src/ui/Dialog/DialogBox.tsx +3 -3
- package/src/ui/Dialog/DialogSheet.tsx +4 -4
- package/src/ui/Dialog/index.tsx +3 -3
- package/src/ui/Divider/index.tsx +1 -1
- package/src/ui/GroupChannelPreview/index.tsx +2 -2
- package/src/ui/Header/index.tsx +6 -12
- package/src/ui/Icon/index.tsx +7 -2
- package/src/ui/LoadingSpinner/index.tsx +2 -2
- package/src/ui/MenuBar/index.tsx +2 -2
- package/src/ui/Modal/index.tsx +2 -2
- package/src/ui/Placeholder/index.tsx +1 -1
- package/src/ui/Prompt/index.tsx +2 -2
- package/src/ui/Switch/index.tsx +4 -4
- package/src/ui/Text/index.tsx +1 -1
- package/src/ui/Toast/index.tsx +8 -4
- package/src/ui/URLParsedText/index.tsx +1 -1
- package/lib/commonjs/assets/bundle-icons.js +0 -33
- package/lib/commonjs/assets/bundle-icons.js.map +0 -1
- package/lib/commonjs/assets/icon/ic-chat-hide.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-hide@2x.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-hide@3x.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-show.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-show@2x.png +0 -0
- package/lib/commonjs/assets/icon/ic-chat-show@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-add.png +0 -0
- package/lib/commonjs/assets/icon/icon-add@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-add@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-archive.png +0 -0
- package/lib/commonjs/assets/icon/icon-archive@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-archive@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-arrow-left.png +0 -0
- package/lib/commonjs/assets/icon/icon-arrow-left@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-arrow-left@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-ban.png +0 -0
- package/lib/commonjs/assets/icon/icon-ban@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-ban@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-broadcast.png +0 -0
- package/lib/commonjs/assets/icon/icon-broadcast@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-broadcast@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-camera.png +0 -0
- package/lib/commonjs/assets/icon/icon-camera@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-camera@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-channels.png +0 -0
- package/lib/commonjs/assets/icon/icon-channels@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-channels@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chat@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-off.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-off@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-off@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-on.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-on@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-checkbox-on@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-down.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-down@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-down@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-right.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-right@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-chevron-right@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-close.png +0 -0
- package/lib/commonjs/assets/icon/icon-close@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-close@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-copy.png +0 -0
- package/lib/commonjs/assets/icon/icon-copy@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-copy@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-create.png +0 -0
- package/lib/commonjs/assets/icon/icon-create@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-create@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-delete.png +0 -0
- package/lib/commonjs/assets/icon/icon-delete@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-delete@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-document.png +0 -0
- package/lib/commonjs/assets/icon/icon-document@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-document@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done-all.png +0 -0
- package/lib/commonjs/assets/icon/icon-done-all@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done-all@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done.png +0 -0
- package/lib/commonjs/assets/icon/icon-done@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-done@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-download.png +0 -0
- package/lib/commonjs/assets/icon/icon-download@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-download@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-edit.png +0 -0
- package/lib/commonjs/assets/icon/icon-edit@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-edit@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-emoji-more.png +0 -0
- package/lib/commonjs/assets/icon/icon-emoji-more@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-emoji-more@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-error.png +0 -0
- package/lib/commonjs/assets/icon/icon-error@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-error@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-audio.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-audio@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-audio@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-document.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-document@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-file-document@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-freeze.png +0 -0
- package/lib/commonjs/assets/icon/icon-freeze@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-freeze@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-gif.png +0 -0
- package/lib/commonjs/assets/icon/icon-gif@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-gif@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-info.png +0 -0
- package/lib/commonjs/assets/icon/icon-info@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-info@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-leave.png +0 -0
- package/lib/commonjs/assets/icon/icon-leave@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-leave@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-members.png +0 -0
- package/lib/commonjs/assets/icon/icon-members@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-members@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-message.png +0 -0
- package/lib/commonjs/assets/icon/icon-message@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-message@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-moderations.png +0 -0
- package/lib/commonjs/assets/icon/icon-moderations@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-moderations@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-more.png +0 -0
- package/lib/commonjs/assets/icon/icon-more@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-more@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-mute.png +0 -0
- package/lib/commonjs/assets/icon/icon-mute@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-mute@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-off-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-off-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications-off-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-notifications@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-operator.png +0 -0
- package/lib/commonjs/assets/icon/icon-operator@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-operator@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-photo.png +0 -0
- package/lib/commonjs/assets/icon/icon-photo@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-photo@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-play.png +0 -0
- package/lib/commonjs/assets/icon/icon-play@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-play@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-plus.png +0 -0
- package/lib/commonjs/assets/icon/icon-plus@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-plus@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-question.png +0 -0
- package/lib/commonjs/assets/icon/icon-question@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-question@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-refresh.png +0 -0
- package/lib/commonjs/assets/icon/icon-refresh@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-refresh@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-remove.png +0 -0
- package/lib/commonjs/assets/icon/icon-remove@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-remove@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-reply@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-search.png +0 -0
- package/lib/commonjs/assets/icon/icon-search@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-search@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-send.png +0 -0
- package/lib/commonjs/assets/icon/icon-send@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-send@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-settings-filled.png +0 -0
- package/lib/commonjs/assets/icon/icon-settings-filled@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-settings-filled@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-spinner.png +0 -0
- package/lib/commonjs/assets/icon/icon-spinner@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-spinner@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-streaming.png +0 -0
- package/lib/commonjs/assets/icon/icon-streaming@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-streaming@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-supergroup.png +0 -0
- package/lib/commonjs/assets/icon/icon-supergroup@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-supergroup@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-theme.png +0 -0
- package/lib/commonjs/assets/icon/icon-theme@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-theme@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-thumbnail-none.png +0 -0
- package/lib/commonjs/assets/icon/icon-thumbnail-none@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-thumbnail-none@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-unarchive.png +0 -0
- package/lib/commonjs/assets/icon/icon-unarchive@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-unarchive@3x.png +0 -0
- package/lib/commonjs/assets/icon/icon-user.png +0 -0
- package/lib/commonjs/assets/icon/icon-user@2x.png +0 -0
- package/lib/commonjs/assets/icon/icon-user@3x.png +0 -0
- package/lib/commonjs/assets/icon/index.js +0 -70
- package/lib/commonjs/assets/icon/index.js.map +0 -1
- package/lib/commonjs/components/Image/Image.fastimage.js +0 -85
- package/lib/commonjs/components/Image/Image.fastimage.js.map +0 -1
- package/lib/commonjs/components/Image/Image.reactnative.js +0 -35
- package/lib/commonjs/components/Image/Image.reactnative.js.map +0 -1
- package/lib/commonjs/components/Image/index.js +0 -27
- package/lib/commonjs/components/Image/index.js.map +0 -1
- package/lib/commonjs/index.js +0 -388
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/styles/HeaderStyleContext.js +0 -46
- package/lib/commonjs/styles/HeaderStyleContext.js.map +0 -1
- package/lib/commonjs/styles/createScaleFactor.js +0 -31
- package/lib/commonjs/styles/createScaleFactor.js.map +0 -1
- package/lib/commonjs/styles/createSelectByColorScheme.js +0 -24
- package/lib/commonjs/styles/createSelectByColorScheme.js.map +0 -1
- package/lib/commonjs/styles/createStyleSheet.js +0 -62
- package/lib/commonjs/styles/createStyleSheet.js.map +0 -1
- package/lib/commonjs/styles/createTypography.js +0 -106
- package/lib/commonjs/styles/createTypography.js.map +0 -1
- package/lib/commonjs/styles/getDefaultHeaderHeight.js +0 -17
- package/lib/commonjs/styles/getDefaultHeaderHeight.js.map +0 -1
- package/lib/commonjs/styles/useHeaderStyle.js +0 -18
- package/lib/commonjs/styles/useHeaderStyle.js.map +0 -1
- package/lib/commonjs/theme/DarkUIKitTheme.js +0 -186
- package/lib/commonjs/theme/DarkUIKitTheme.js.map +0 -1
- package/lib/commonjs/theme/LightUIKitTheme.js +0 -186
- package/lib/commonjs/theme/LightUIKitTheme.js.map +0 -1
- package/lib/commonjs/theme/Palette.js +0 -47
- package/lib/commonjs/theme/Palette.js.map +0 -1
- package/lib/commonjs/theme/UIKitThemeContext.js +0 -16
- package/lib/commonjs/theme/UIKitThemeContext.js.map +0 -1
- package/lib/commonjs/theme/UIKitThemeProvider.js +0 -28
- package/lib/commonjs/theme/UIKitThemeProvider.js.map +0 -1
- package/lib/commonjs/theme/createTheme.js +0 -58
- package/lib/commonjs/theme/createTheme.js.map +0 -1
- package/lib/commonjs/theme/useUIKitTheme.js +0 -22
- package/lib/commonjs/theme/useUIKitTheme.js.map +0 -1
- package/lib/commonjs/types.js +0 -6
- package/lib/commonjs/types.js.map +0 -1
- package/lib/commonjs/ui/ActionMenu/index.js +0 -131
- package/lib/commonjs/ui/ActionMenu/index.js.map +0 -1
- package/lib/commonjs/ui/Alert/index.js +0 -122
- package/lib/commonjs/ui/Alert/index.js.map +0 -1
- package/lib/commonjs/ui/Avatar/AvatarGroup.js +0 -119
- package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +0 -1
- package/lib/commonjs/ui/Avatar/AvatarIcon.js +0 -54
- package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +0 -1
- package/lib/commonjs/ui/Avatar/index.js +0 -100
- package/lib/commonjs/ui/Avatar/index.js.map +0 -1
- package/lib/commonjs/ui/Badge/index.js +0 -77
- package/lib/commonjs/ui/Badge/index.js.map +0 -1
- package/lib/commonjs/ui/BottomSheet/index.js +0 -80
- package/lib/commonjs/ui/BottomSheet/index.js.map +0 -1
- package/lib/commonjs/ui/Button/index.js +0 -90
- package/lib/commonjs/ui/Button/index.js.map +0 -1
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js +0 -51
- package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +0 -1
- package/lib/commonjs/ui/Dialog/DialogBox.js +0 -41
- package/lib/commonjs/ui/Dialog/DialogBox.js.map +0 -1
- package/lib/commonjs/ui/Dialog/DialogSheet.js +0 -86
- package/lib/commonjs/ui/Dialog/DialogSheet.js.map +0 -1
- package/lib/commonjs/ui/Dialog/index.js +0 -182
- package/lib/commonjs/ui/Dialog/index.js.map +0 -1
- package/lib/commonjs/ui/Divider/index.js +0 -49
- package/lib/commonjs/ui/Divider/index.js.map +0 -1
- package/lib/commonjs/ui/GroupChannelPreview/index.js +0 -210
- package/lib/commonjs/ui/GroupChannelPreview/index.js.map +0 -1
- package/lib/commonjs/ui/Header/index.js +0 -237
- package/lib/commonjs/ui/Header/index.js.map +0 -1
- package/lib/commonjs/ui/Icon/index.js +0 -78
- package/lib/commonjs/ui/Icon/index.js.map +0 -1
- package/lib/commonjs/ui/LoadingSpinner/index.js +0 -82
- package/lib/commonjs/ui/LoadingSpinner/index.js.map +0 -1
- package/lib/commonjs/ui/MenuBar/index.js +0 -88
- package/lib/commonjs/ui/MenuBar/index.js.map +0 -1
- package/lib/commonjs/ui/Modal/index.js +0 -214
- package/lib/commonjs/ui/Modal/index.js.map +0 -1
- package/lib/commonjs/ui/Placeholder/index.js +0 -82
- package/lib/commonjs/ui/Placeholder/index.js.map +0 -1
- package/lib/commonjs/ui/Prompt/index.js +0 -175
- package/lib/commonjs/ui/Prompt/index.js.map +0 -1
- package/lib/commonjs/ui/Switch/index.js +0 -125
- package/lib/commonjs/ui/Switch/index.js.map +0 -1
- package/lib/commonjs/ui/Text/index.js +0 -71
- package/lib/commonjs/ui/Text/index.js.map +0 -1
- package/lib/commonjs/ui/TextInput/index.js +0 -58
- package/lib/commonjs/ui/TextInput/index.js.map +0 -1
- package/lib/commonjs/ui/Toast/index.js +0 -183
- package/lib/commonjs/ui/Toast/index.js.map +0 -1
- package/lib/commonjs/ui/URLParsedText/index.js +0 -64
- package/lib/commonjs/ui/URLParsedText/index.js.map +0 -1
- package/lib/module/assets/bundle-icons.js +0 -31
- package/lib/module/assets/bundle-icons.js.map +0 -1
- package/lib/module/assets/icon/ic-chat-hide.png +0 -0
- package/lib/module/assets/icon/ic-chat-hide@2x.png +0 -0
- package/lib/module/assets/icon/ic-chat-hide@3x.png +0 -0
- package/lib/module/assets/icon/ic-chat-show.png +0 -0
- package/lib/module/assets/icon/ic-chat-show@2x.png +0 -0
- package/lib/module/assets/icon/ic-chat-show@3x.png +0 -0
- package/lib/module/assets/icon/icon-add.png +0 -0
- package/lib/module/assets/icon/icon-add@2x.png +0 -0
- package/lib/module/assets/icon/icon-add@3x.png +0 -0
- package/lib/module/assets/icon/icon-archive.png +0 -0
- package/lib/module/assets/icon/icon-archive@2x.png +0 -0
- package/lib/module/assets/icon/icon-archive@3x.png +0 -0
- package/lib/module/assets/icon/icon-arrow-left.png +0 -0
- package/lib/module/assets/icon/icon-arrow-left@2x.png +0 -0
- package/lib/module/assets/icon/icon-arrow-left@3x.png +0 -0
- package/lib/module/assets/icon/icon-ban.png +0 -0
- package/lib/module/assets/icon/icon-ban@2x.png +0 -0
- package/lib/module/assets/icon/icon-ban@3x.png +0 -0
- package/lib/module/assets/icon/icon-broadcast.png +0 -0
- package/lib/module/assets/icon/icon-broadcast@2x.png +0 -0
- package/lib/module/assets/icon/icon-broadcast@3x.png +0 -0
- package/lib/module/assets/icon/icon-camera.png +0 -0
- package/lib/module/assets/icon/icon-camera@2x.png +0 -0
- package/lib/module/assets/icon/icon-camera@3x.png +0 -0
- package/lib/module/assets/icon/icon-channels.png +0 -0
- package/lib/module/assets/icon/icon-channels@2x.png +0 -0
- package/lib/module/assets/icon/icon-channels@3x.png +0 -0
- package/lib/module/assets/icon/icon-chat-filled.png +0 -0
- package/lib/module/assets/icon/icon-chat-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-chat-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-chat.png +0 -0
- package/lib/module/assets/icon/icon-chat@2x.png +0 -0
- package/lib/module/assets/icon/icon-chat@3x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-off.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-off@2x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-off@3x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-on.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-on@2x.png +0 -0
- package/lib/module/assets/icon/icon-checkbox-on@3x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-down.png +0 -0
- package/lib/module/assets/icon/icon-chevron-down@2x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-down@3x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-right.png +0 -0
- package/lib/module/assets/icon/icon-chevron-right@2x.png +0 -0
- package/lib/module/assets/icon/icon-chevron-right@3x.png +0 -0
- package/lib/module/assets/icon/icon-close.png +0 -0
- package/lib/module/assets/icon/icon-close@2x.png +0 -0
- package/lib/module/assets/icon/icon-close@3x.png +0 -0
- package/lib/module/assets/icon/icon-copy.png +0 -0
- package/lib/module/assets/icon/icon-copy@2x.png +0 -0
- package/lib/module/assets/icon/icon-copy@3x.png +0 -0
- package/lib/module/assets/icon/icon-create.png +0 -0
- package/lib/module/assets/icon/icon-create@2x.png +0 -0
- package/lib/module/assets/icon/icon-create@3x.png +0 -0
- package/lib/module/assets/icon/icon-delete.png +0 -0
- package/lib/module/assets/icon/icon-delete@2x.png +0 -0
- package/lib/module/assets/icon/icon-delete@3x.png +0 -0
- package/lib/module/assets/icon/icon-document.png +0 -0
- package/lib/module/assets/icon/icon-document@2x.png +0 -0
- package/lib/module/assets/icon/icon-document@3x.png +0 -0
- package/lib/module/assets/icon/icon-done-all.png +0 -0
- package/lib/module/assets/icon/icon-done-all@2x.png +0 -0
- package/lib/module/assets/icon/icon-done-all@3x.png +0 -0
- package/lib/module/assets/icon/icon-done.png +0 -0
- package/lib/module/assets/icon/icon-done@2x.png +0 -0
- package/lib/module/assets/icon/icon-done@3x.png +0 -0
- package/lib/module/assets/icon/icon-download.png +0 -0
- package/lib/module/assets/icon/icon-download@2x.png +0 -0
- package/lib/module/assets/icon/icon-download@3x.png +0 -0
- package/lib/module/assets/icon/icon-edit.png +0 -0
- package/lib/module/assets/icon/icon-edit@2x.png +0 -0
- package/lib/module/assets/icon/icon-edit@3x.png +0 -0
- package/lib/module/assets/icon/icon-emoji-more.png +0 -0
- package/lib/module/assets/icon/icon-emoji-more@2x.png +0 -0
- package/lib/module/assets/icon/icon-emoji-more@3x.png +0 -0
- package/lib/module/assets/icon/icon-error.png +0 -0
- package/lib/module/assets/icon/icon-error@2x.png +0 -0
- package/lib/module/assets/icon/icon-error@3x.png +0 -0
- package/lib/module/assets/icon/icon-file-audio.png +0 -0
- package/lib/module/assets/icon/icon-file-audio@2x.png +0 -0
- package/lib/module/assets/icon/icon-file-audio@3x.png +0 -0
- package/lib/module/assets/icon/icon-file-document.png +0 -0
- package/lib/module/assets/icon/icon-file-document@2x.png +0 -0
- package/lib/module/assets/icon/icon-file-document@3x.png +0 -0
- package/lib/module/assets/icon/icon-freeze.png +0 -0
- package/lib/module/assets/icon/icon-freeze@2x.png +0 -0
- package/lib/module/assets/icon/icon-freeze@3x.png +0 -0
- package/lib/module/assets/icon/icon-gif.png +0 -0
- package/lib/module/assets/icon/icon-gif@2x.png +0 -0
- package/lib/module/assets/icon/icon-gif@3x.png +0 -0
- package/lib/module/assets/icon/icon-info.png +0 -0
- package/lib/module/assets/icon/icon-info@2x.png +0 -0
- package/lib/module/assets/icon/icon-info@3x.png +0 -0
- package/lib/module/assets/icon/icon-leave.png +0 -0
- package/lib/module/assets/icon/icon-leave@2x.png +0 -0
- package/lib/module/assets/icon/icon-leave@3x.png +0 -0
- package/lib/module/assets/icon/icon-members.png +0 -0
- package/lib/module/assets/icon/icon-members@2x.png +0 -0
- package/lib/module/assets/icon/icon-members@3x.png +0 -0
- package/lib/module/assets/icon/icon-message.png +0 -0
- package/lib/module/assets/icon/icon-message@2x.png +0 -0
- package/lib/module/assets/icon/icon-message@3x.png +0 -0
- package/lib/module/assets/icon/icon-moderations.png +0 -0
- package/lib/module/assets/icon/icon-moderations@2x.png +0 -0
- package/lib/module/assets/icon/icon-moderations@3x.png +0 -0
- package/lib/module/assets/icon/icon-more.png +0 -0
- package/lib/module/assets/icon/icon-more@2x.png +0 -0
- package/lib/module/assets/icon/icon-more@3x.png +0 -0
- package/lib/module/assets/icon/icon-mute.png +0 -0
- package/lib/module/assets/icon/icon-mute@2x.png +0 -0
- package/lib/module/assets/icon/icon-mute@3x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-filled.png +0 -0
- package/lib/module/assets/icon/icon-notifications-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-off-filled.png +0 -0
- package/lib/module/assets/icon/icon-notifications-off-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-notifications-off-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-notifications.png +0 -0
- package/lib/module/assets/icon/icon-notifications@2x.png +0 -0
- package/lib/module/assets/icon/icon-notifications@3x.png +0 -0
- package/lib/module/assets/icon/icon-operator.png +0 -0
- package/lib/module/assets/icon/icon-operator@2x.png +0 -0
- package/lib/module/assets/icon/icon-operator@3x.png +0 -0
- package/lib/module/assets/icon/icon-photo.png +0 -0
- package/lib/module/assets/icon/icon-photo@2x.png +0 -0
- package/lib/module/assets/icon/icon-photo@3x.png +0 -0
- package/lib/module/assets/icon/icon-play.png +0 -0
- package/lib/module/assets/icon/icon-play@2x.png +0 -0
- package/lib/module/assets/icon/icon-play@3x.png +0 -0
- package/lib/module/assets/icon/icon-plus.png +0 -0
- package/lib/module/assets/icon/icon-plus@2x.png +0 -0
- package/lib/module/assets/icon/icon-plus@3x.png +0 -0
- package/lib/module/assets/icon/icon-question.png +0 -0
- package/lib/module/assets/icon/icon-question@2x.png +0 -0
- package/lib/module/assets/icon/icon-question@3x.png +0 -0
- package/lib/module/assets/icon/icon-refresh.png +0 -0
- package/lib/module/assets/icon/icon-refresh@2x.png +0 -0
- package/lib/module/assets/icon/icon-refresh@3x.png +0 -0
- package/lib/module/assets/icon/icon-remove.png +0 -0
- package/lib/module/assets/icon/icon-remove@2x.png +0 -0
- package/lib/module/assets/icon/icon-remove@3x.png +0 -0
- package/lib/module/assets/icon/icon-reply-filled.png +0 -0
- package/lib/module/assets/icon/icon-reply-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-reply-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-reply.png +0 -0
- package/lib/module/assets/icon/icon-reply@2x.png +0 -0
- package/lib/module/assets/icon/icon-reply@3x.png +0 -0
- package/lib/module/assets/icon/icon-search.png +0 -0
- package/lib/module/assets/icon/icon-search@2x.png +0 -0
- package/lib/module/assets/icon/icon-search@3x.png +0 -0
- package/lib/module/assets/icon/icon-send.png +0 -0
- package/lib/module/assets/icon/icon-send@2x.png +0 -0
- package/lib/module/assets/icon/icon-send@3x.png +0 -0
- package/lib/module/assets/icon/icon-settings-filled.png +0 -0
- package/lib/module/assets/icon/icon-settings-filled@2x.png +0 -0
- package/lib/module/assets/icon/icon-settings-filled@3x.png +0 -0
- package/lib/module/assets/icon/icon-spinner.png +0 -0
- package/lib/module/assets/icon/icon-spinner@2x.png +0 -0
- package/lib/module/assets/icon/icon-spinner@3x.png +0 -0
- package/lib/module/assets/icon/icon-streaming.png +0 -0
- package/lib/module/assets/icon/icon-streaming@2x.png +0 -0
- package/lib/module/assets/icon/icon-streaming@3x.png +0 -0
- package/lib/module/assets/icon/icon-supergroup.png +0 -0
- package/lib/module/assets/icon/icon-supergroup@2x.png +0 -0
- package/lib/module/assets/icon/icon-supergroup@3x.png +0 -0
- package/lib/module/assets/icon/icon-theme.png +0 -0
- package/lib/module/assets/icon/icon-theme@2x.png +0 -0
- package/lib/module/assets/icon/icon-theme@3x.png +0 -0
- package/lib/module/assets/icon/icon-thumbnail-none.png +0 -0
- package/lib/module/assets/icon/icon-thumbnail-none@2x.png +0 -0
- package/lib/module/assets/icon/icon-thumbnail-none@3x.png +0 -0
- package/lib/module/assets/icon/icon-unarchive.png +0 -0
- package/lib/module/assets/icon/icon-unarchive@2x.png +0 -0
- package/lib/module/assets/icon/icon-unarchive@3x.png +0 -0
- package/lib/module/assets/icon/icon-user.png +0 -0
- package/lib/module/assets/icon/icon-user@2x.png +0 -0
- package/lib/module/assets/icon/icon-user@3x.png +0 -0
- package/lib/module/assets/icon/index.js +0 -63
- package/lib/module/assets/icon/index.js.map +0 -1
- package/lib/module/components/Image/Image.fastimage.js +0 -74
- package/lib/module/components/Image/Image.fastimage.js.map +0 -1
- package/lib/module/components/Image/Image.reactnative.js +0 -24
- package/lib/module/components/Image/Image.reactnative.js.map +0 -1
- package/lib/module/components/Image/index.js +0 -20
- package/lib/module/components/Image/index.js.map +0 -1
- package/lib/module/index.js +0 -49
- package/lib/module/index.js.map +0 -1
- package/lib/module/styles/HeaderStyleContext.js +0 -29
- package/lib/module/styles/HeaderStyleContext.js.map +0 -1
- package/lib/module/styles/createScaleFactor.js +0 -20
- package/lib/module/styles/createScaleFactor.js.map +0 -1
- package/lib/module/styles/createSelectByColorScheme.js +0 -16
- package/lib/module/styles/createSelectByColorScheme.js.map +0 -1
- package/lib/module/styles/createStyleSheet.js +0 -53
- package/lib/module/styles/createStyleSheet.js.map +0 -1
- package/lib/module/styles/createTypography.js +0 -98
- package/lib/module/styles/createTypography.js.map +0 -1
- package/lib/module/styles/getDefaultHeaderHeight.js +0 -10
- package/lib/module/styles/getDefaultHeaderHeight.js.map +0 -1
- package/lib/module/styles/useHeaderStyle.js +0 -9
- package/lib/module/styles/useHeaderStyle.js.map +0 -1
- package/lib/module/theme/DarkUIKitTheme.js +0 -175
- package/lib/module/theme/DarkUIKitTheme.js.map +0 -1
- package/lib/module/theme/LightUIKitTheme.js +0 -175
- package/lib/module/theme/LightUIKitTheme.js.map +0 -1
- package/lib/module/theme/Palette.js +0 -40
- package/lib/module/theme/Palette.js.map +0 -1
- package/lib/module/theme/UIKitThemeContext.js +0 -4
- package/lib/module/theme/UIKitThemeContext.js.map +0 -1
- package/lib/module/theme/UIKitThemeProvider.js +0 -16
- package/lib/module/theme/UIKitThemeProvider.js.map +0 -1
- package/lib/module/theme/createTheme.js +0 -46
- package/lib/module/theme/createTheme.js.map +0 -1
- package/lib/module/theme/useUIKitTheme.js +0 -11
- package/lib/module/theme/useUIKitTheme.js.map +0 -1
- package/lib/module/types.js +0 -2
- package/lib/module/types.js.map +0 -1
- package/lib/module/ui/ActionMenu/index.js +0 -108
- package/lib/module/ui/ActionMenu/index.js.map +0 -1
- package/lib/module/ui/Alert/index.js +0 -104
- package/lib/module/ui/Alert/index.js.map +0 -1
- package/lib/module/ui/Avatar/AvatarGroup.js +0 -104
- package/lib/module/ui/Avatar/AvatarGroup.js.map +0 -1
- package/lib/module/ui/Avatar/AvatarIcon.js +0 -40
- package/lib/module/ui/Avatar/AvatarIcon.js.map +0 -1
- package/lib/module/ui/Avatar/index.js +0 -78
- package/lib/module/ui/Avatar/index.js.map +0 -1
- package/lib/module/ui/Badge/index.js +0 -62
- package/lib/module/ui/Badge/index.js.map +0 -1
- package/lib/module/ui/BottomSheet/index.js +0 -65
- package/lib/module/ui/BottomSheet/index.js.map +0 -1
- package/lib/module/ui/Button/index.js +0 -75
- package/lib/module/ui/Button/index.js.map +0 -1
- package/lib/module/ui/ChannelFrozenBanner/index.js +0 -37
- package/lib/module/ui/ChannelFrozenBanner/index.js.map +0 -1
- package/lib/module/ui/Dialog/DialogBox.js +0 -28
- package/lib/module/ui/Dialog/DialogBox.js.map +0 -1
- package/lib/module/ui/Dialog/DialogSheet.js +0 -71
- package/lib/module/ui/Dialog/DialogSheet.js.map +0 -1
- package/lib/module/ui/Dialog/index.js +0 -144
- package/lib/module/ui/Dialog/index.js.map +0 -1
- package/lib/module/ui/Divider/index.js +0 -36
- package/lib/module/ui/Divider/index.js.map +0 -1
- package/lib/module/ui/GroupChannelPreview/index.js +0 -190
- package/lib/module/ui/GroupChannelPreview/index.js.map +0 -1
- package/lib/module/ui/Header/index.js +0 -218
- package/lib/module/ui/Header/index.js.map +0 -1
- package/lib/module/ui/Icon/index.js +0 -63
- package/lib/module/ui/Icon/index.js.map +0 -1
- package/lib/module/ui/LoadingSpinner/index.js +0 -64
- package/lib/module/ui/LoadingSpinner/index.js.map +0 -1
- package/lib/module/ui/MenuBar/index.js +0 -71
- package/lib/module/ui/MenuBar/index.js.map +0 -1
- package/lib/module/ui/Modal/index.js +0 -196
- package/lib/module/ui/Modal/index.js.map +0 -1
- package/lib/module/ui/Placeholder/index.js +0 -64
- package/lib/module/ui/Placeholder/index.js.map +0 -1
- package/lib/module/ui/Prompt/index.js +0 -151
- package/lib/module/ui/Prompt/index.js.map +0 -1
- package/lib/module/ui/Switch/index.js +0 -107
- package/lib/module/ui/Switch/index.js.map +0 -1
- package/lib/module/ui/Text/index.js +0 -59
- package/lib/module/ui/Text/index.js.map +0 -1
- package/lib/module/ui/TextInput/index.js +0 -43
- package/lib/module/ui/TextInput/index.js.map +0 -1
- package/lib/module/ui/Toast/index.js +0 -156
- package/lib/module/ui/Toast/index.js.map +0 -1
- package/lib/module/ui/URLParsedText/index.js +0 -45
- package/lib/module/ui/URLParsedText/index.js.map +0 -1
- package/lib/typescript/src/assets/icon/index.d.ts +0 -62
- package/lib/typescript/src/components/Image/Image.fastimage.d.ts +0 -3
- package/lib/typescript/src/components/Image/Image.reactnative.d.ts +0 -3
- package/lib/typescript/src/components/Image/index.d.ts +0 -15
- package/lib/typescript/src/index.d.ts +0 -45
- package/lib/typescript/src/styles/HeaderStyleContext.d.ts +0 -20
- package/lib/typescript/src/styles/createScaleFactor.d.ts +0 -6
- package/lib/typescript/src/styles/createSelectByColorScheme.d.ts +0 -9
- package/lib/typescript/src/styles/createStyleSheet.d.ts +0 -9
- package/lib/typescript/src/styles/createTypography.d.ts +0 -6
- package/lib/typescript/src/styles/getDefaultHeaderHeight.d.ts +0 -2
- package/lib/typescript/src/styles/useHeaderStyle.d.ts +0 -2
- package/lib/typescript/src/theme/DarkUIKitTheme.d.ts +0 -2
- package/lib/typescript/src/theme/LightUIKitTheme.d.ts +0 -2
- package/lib/typescript/src/theme/Palette.d.ts +0 -3
- package/lib/typescript/src/theme/UIKitThemeContext.d.ts +0 -4
- package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +0 -7
- package/lib/typescript/src/theme/createTheme.d.ts +0 -10
- package/lib/typescript/src/theme/useUIKitTheme.d.ts +0 -3
- package/lib/typescript/src/types.d.ts +0 -167
- package/lib/typescript/src/ui/ActionMenu/index.d.ts +0 -17
- package/lib/typescript/src/ui/Alert/index.d.ts +0 -14
- package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +0 -8
- package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +0 -11
- package/lib/typescript/src/ui/Avatar/index.d.ts +0 -17
- package/lib/typescript/src/ui/Badge/index.d.ts +0 -12
- package/lib/typescript/src/ui/BottomSheet/index.d.ts +0 -19
- package/lib/typescript/src/ui/Button/index.d.ts +0 -14
- package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +0 -10
- package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +0 -7
- package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +0 -17
- package/lib/typescript/src/ui/Dialog/index.d.ts +0 -46
- package/lib/typescript/src/ui/Divider/index.d.ts +0 -8
- package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +0 -17
- package/lib/typescript/src/ui/Header/index.d.ts +0 -29
- package/lib/typescript/src/ui/Icon/index.d.ts +0 -15
- package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +0 -9
- package/lib/typescript/src/ui/MenuBar/index.d.ts +0 -15
- package/lib/typescript/src/ui/Modal/index.d.ts +0 -18
- package/lib/typescript/src/ui/Placeholder/index.d.ts +0 -11
- package/lib/typescript/src/ui/Prompt/index.d.ts +0 -18
- package/lib/typescript/src/ui/Switch/index.d.ts +0 -11
- package/lib/typescript/src/ui/Text/index.d.ts +0 -9
- package/lib/typescript/src/ui/TextInput/index.d.ts +0 -6
- package/lib/typescript/src/ui/Toast/index.d.ts +0 -18
- package/lib/typescript/src/ui/URLParsedText/index.d.ts +0 -9
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","Animated","Easing","useUIKitTheme","Icon","LoadingSpinner","size","color","style","colors","primary","useLoopAnimated","duration","useNativeDriver","animated","Value","current","loop","timing","toValue","easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","Rotate","children","rotate","interpolate","inputRange","outputRange","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing, StyleProp, ViewStyle } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\n\ntype Props = {\n size?: number;\n color?: string;\n style?: StyleProp<ViewStyle>;\n};\n\nconst LoadingSpinner: React.FC<Props> = ({ size = 24, color, style }) => {\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: React.FC<{ style: StyleProp<ViewStyle> }> = ({ children, style }) => {\n const loop = useLoopAnimated(1000);\n const rotate = loop.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });\n return <Animated.View style={[style, { transform: [{ rotate }] }]}>{children}</Animated.View>;\n};\n\nexport default LoadingSpinner;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,MAA3B,QAAyC,OAAzC;AACA,SAASC,QAAT,EAAmBC,MAAnB,QAAuD,cAAvD;AAEA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAQA,MAAMC,cAA+B,GAAG,QAAiC;EAAA,IAAhC;IAAEC,IAAI,GAAG,EAAT;IAAaC,KAAb;IAAoBC;EAApB,CAAgC;EACvE,MAAM;IAAEC;EAAF,IAAaN,aAAa,EAAhC;EACA,oBACE,oBAAC,MAAD;IAAQ,KAAK,EAAEK;EAAf,gBACE,oBAAC,IAAD;IAAM,IAAI,EAAE,SAAZ;IAAuB,IAAI,EAAEF,IAA7B;IAAmC,KAAK,EAAEC,KAAK,IAAIE,MAAM,CAACC;EAA1D,EADF,CADF;AAKD,CAPD;;AASA,MAAMC,eAAe,GAAG,UAACC,QAAD,EAA8C;EAAA,IAA3BC,eAA2B,uEAAT,IAAS;EACpE,MAAMC,QAAQ,GAAGd,MAAM,CAAC,IAAIC,QAAQ,CAACc,KAAb,CAAmB,CAAnB,CAAD,CAAN,CAA8BC,OAA/C;EAEAjB,SAAS,CAAC,MAAM;IACdE,QAAQ,CAACgB,IAAT,CACEhB,QAAQ,CAACiB,MAAT,CAAgBJ,QAAhB,EAA0B;MAAEK,OAAO,EAAE,CAAX;MAAcP,QAAd;MAAwBC,eAAxB;MAAyCO,MAAM,EAAElB,MAAM,CAACmB,KAAP,CAAanB,MAAM,CAACoB,MAApB;IAAjD,CAA1B,CADF,EAEE;MAAEC,oBAAoB,EAAE;IAAxB,CAFF,EAGEC,KAHF;IAKA,OAAO,MAAM;MACXV,QAAQ,CAACW,aAAT;MACAX,QAAQ,CAACY,QAAT,CAAkB,CAAlB;IACD,CAHD;EAID,CAVQ,EAUN,EAVM,CAAT;EAYA,OAAOZ,QAAP;AACD,CAhBD;;AAkBA,MAAMa,MAAiD,GAAG,SAAyB;EAAA,IAAxB;IAAEC,QAAF;IAAYpB;EAAZ,CAAwB;EACjF,MAAMS,IAAI,GAAGN,eAAe,CAAC,IAAD,CAA5B;EACA,MAAMkB,MAAM,GAAGZ,IAAI,CAACa,WAAL,CAAiB;IAAEC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAd;IAAsBC,WAAW,EAAE,CAAC,MAAD,EAAS,QAAT;EAAnC,CAAjB,CAAf;EACA,oBAAO,oBAAC,QAAD,CAAU,IAAV;IAAe,KAAK,EAAE,CAACxB,KAAD,EAAQ;MAAEyB,SAAS,EAAE,CAAC;QAAEJ;MAAF,CAAD;IAAb,CAAR;EAAtB,GAA6DD,QAA7D,CAAP;AACD,CAJD;;AAMA,eAAevB,cAAf"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { Pressable, View } from 'react-native';
|
|
3
|
-
import { conditionChaining } from '@sendbird/uikit-utils';
|
|
4
|
-
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
-
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
6
|
-
import Divider from '../Divider';
|
|
7
|
-
import Icon from '../Icon';
|
|
8
|
-
import Text from '../Text';
|
|
9
|
-
|
|
10
|
-
const MenuBar = _ref => {
|
|
11
|
-
let {
|
|
12
|
-
variant = 'default',
|
|
13
|
-
disabled,
|
|
14
|
-
onPress,
|
|
15
|
-
name,
|
|
16
|
-
icon,
|
|
17
|
-
iconColor,
|
|
18
|
-
iconBackgroundColor,
|
|
19
|
-
actionLabel,
|
|
20
|
-
actionItem = null
|
|
21
|
-
} = _ref;
|
|
22
|
-
const {
|
|
23
|
-
palette,
|
|
24
|
-
colors
|
|
25
|
-
} = useUIKitTheme();
|
|
26
|
-
return /*#__PURE__*/React.createElement(View, null, /*#__PURE__*/React.createElement(Pressable, {
|
|
27
|
-
disabled: disabled,
|
|
28
|
-
onPress: onPress,
|
|
29
|
-
style: styles.container
|
|
30
|
-
}, icon && /*#__PURE__*/React.createElement(Icon, {
|
|
31
|
-
icon: icon,
|
|
32
|
-
size: variant === 'contained' ? 16 : 24,
|
|
33
|
-
color: conditionChaining([variant === 'contained', iconColor], [palette.background50, iconColor, colors.primary]),
|
|
34
|
-
containerStyle: [styles.icon, variant === 'contained' && styles.containedIcon, variant === 'contained' && {
|
|
35
|
-
backgroundColor: iconBackgroundColor ?? palette.background400
|
|
36
|
-
}]
|
|
37
|
-
}), /*#__PURE__*/React.createElement(Text, {
|
|
38
|
-
subtitle2: true,
|
|
39
|
-
numberOfLines: 1,
|
|
40
|
-
style: styles.name
|
|
41
|
-
}, name), Boolean(actionLabel) && /*#__PURE__*/React.createElement(Text, {
|
|
42
|
-
subtitle2: true,
|
|
43
|
-
numberOfLines: 1,
|
|
44
|
-
color: colors.onBackground02,
|
|
45
|
-
style: styles.actionLabel
|
|
46
|
-
}, actionLabel), actionItem), /*#__PURE__*/React.createElement(Divider, null));
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
const styles = createStyleSheet({
|
|
50
|
-
container: {
|
|
51
|
-
paddingVertical: 16,
|
|
52
|
-
flexDirection: 'row',
|
|
53
|
-
alignItems: 'center'
|
|
54
|
-
},
|
|
55
|
-
name: {
|
|
56
|
-
flex: 1,
|
|
57
|
-
marginRight: 8
|
|
58
|
-
},
|
|
59
|
-
icon: {
|
|
60
|
-
marginRight: 16
|
|
61
|
-
},
|
|
62
|
-
containedIcon: {
|
|
63
|
-
borderRadius: 24,
|
|
64
|
-
padding: 4
|
|
65
|
-
},
|
|
66
|
-
actionLabel: {
|
|
67
|
-
marginRight: 4
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
export default MenuBar;
|
|
71
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","View","conditionChaining","createStyleSheet","useUIKitTheme","Divider","Icon","Text","MenuBar","variant","disabled","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 createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Divider from '../Divider';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\nexport type MenuBarProps = {\n variant?: 'default' | 'contained';\n\n onPress: () => void;\n disabled?: 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: React.FC<MenuBarProps> = ({\n variant = 'default',\n disabled,\n onPress,\n name,\n icon,\n iconColor,\n iconBackgroundColor,\n actionLabel,\n actionItem = null,\n}) => {\n const { palette, colors } = useUIKitTheme();\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,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,EAAoBC,IAApB,QAAgC,cAAhC;AAEA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAgBA,MAAMC,OAA+B,GAAG,QAUlC;EAAA,IAVmC;IACvCC,OAAO,GAAG,SAD6B;IAEvCC,QAFuC;IAGvCC,OAHuC;IAIvCC,IAJuC;IAKvCC,IALuC;IAMvCC,SANuC;IAOvCC,mBAPuC;IAQvCC,WARuC;IASvCC,UAAU,GAAG;EAT0B,CAUnC;EACJ,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAsBf,aAAa,EAAzC;EAEA,oBACE,oBAAC,IAAD,qBACE,oBAAC,SAAD;IAAW,QAAQ,EAAEM,QAArB;IAA+B,OAAO,EAAEC,OAAxC;IAAiD,KAAK,EAAES,MAAM,CAACC;EAA/D,GACGR,IAAI,iBACH,oBAAC,IAAD;IACE,IAAI,EAAEA,IADR;IAEE,IAAI,EAAEJ,OAAO,KAAK,WAAZ,GAA0B,EAA1B,GAA+B,EAFvC;IAGE,KAAK,EAAEP,iBAAiB,CACtB,CAACO,OAAO,KAAK,WAAb,EAA0BK,SAA1B,CADsB,EAEtB,CAACI,OAAO,CAACI,YAAT,EAAuBR,SAAvB,EAAkCK,MAAM,CAACI,OAAzC,CAFsB,CAH1B;IAOE,cAAc,EAAE,CACdH,MAAM,CAACP,IADO,EAEdJ,OAAO,KAAK,WAAZ,IAA2BW,MAAM,CAACI,aAFpB,EAGdf,OAAO,KAAK,WAAZ,IAA2B;MAAEgB,eAAe,EAAEV,mBAAmB,IAAIG,OAAO,CAACQ;IAAlD,CAHb;EAPlB,EAFJ,eAgBE,oBAAC,IAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEN,MAAM,CAACR;EAAhD,GACGA,IADH,CAhBF,EAmBGe,OAAO,CAACX,WAAD,CAAP,iBACC,oBAAC,IAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEG,MAAM,CAACS,cAAhD;IAAgE,KAAK,EAAER,MAAM,CAACJ;EAA9E,GACGA,WADH,CApBJ,EAwBGC,UAxBH,CADF,eA2BE,oBAAC,OAAD,OA3BF,CADF;AA+BD,CA5CD;;AA8CA,MAAMG,MAAM,GAAGjB,gBAAgB,CAAC;EAC9BkB,SAAS,EAAE;IACTQ,eAAe,EAAE,EADR;IAETC,aAAa,EAAE,KAFN;IAGTC,UAAU,EAAE;EAHH,CADmB;EAM9BnB,IAAI,EAAE;IACJoB,IAAI,EAAE,CADF;IAEJC,WAAW,EAAE;EAFT,CANwB;EAU9BpB,IAAI,EAAE;IACJoB,WAAW,EAAE;EADT,CAVwB;EAa9BT,aAAa,EAAE;IACbU,YAAY,EAAE,EADD;IAEbC,OAAO,EAAE;EAFI,CAbe;EAiB9BnB,WAAW,EAAE;IACXiB,WAAW,EAAE;EADF;AAjBiB,CAAD,CAA/B;AAsBA,eAAezB,OAAf"}
|
|
@@ -1,196 +0,0 @@
|
|
|
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
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
4
|
-
import { Animated, Dimensions, KeyboardAvoidingView, PanResponder, Platform, Pressable, Modal as RNModal, StyleSheet, TouchableWithoutFeedback, useWindowDimensions } from 'react-native';
|
|
5
|
-
import createStyleSheet from '../../styles/createStyleSheet';
|
|
6
|
-
import useHeaderStyle from '../../styles/useHeaderStyle';
|
|
7
|
-
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Modal Open: Triggered by Modal.props.visible state changed to true
|
|
11
|
-
* - visible true -> modalVisible true -> animation start
|
|
12
|
-
*
|
|
13
|
-
* Modal Close: Triggered by Modal.props.onClose() call
|
|
14
|
-
* - Modal.props.onClose() -> visible false -> animation start -> modalVisible false
|
|
15
|
-
* */
|
|
16
|
-
const Modal = _ref => {
|
|
17
|
-
let {
|
|
18
|
-
children,
|
|
19
|
-
onClose,
|
|
20
|
-
backgroundStyle,
|
|
21
|
-
onDismiss,
|
|
22
|
-
type = 'fade',
|
|
23
|
-
visible = false,
|
|
24
|
-
disableBackgroundClose = false,
|
|
25
|
-
enableKeyboardAvoid = false,
|
|
26
|
-
statusBarTranslucent,
|
|
27
|
-
...props
|
|
28
|
-
} = _ref;
|
|
29
|
-
const {
|
|
30
|
-
palette
|
|
31
|
-
} = useUIKitTheme();
|
|
32
|
-
const {
|
|
33
|
-
content,
|
|
34
|
-
backdrop,
|
|
35
|
-
showTransition,
|
|
36
|
-
hideTransition
|
|
37
|
-
} = useModalAnimation(type);
|
|
38
|
-
const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);
|
|
39
|
-
const {
|
|
40
|
-
topInset
|
|
41
|
-
} = useHeaderStyle();
|
|
42
|
-
const [modalVisible, setModalVisible] = useState(false);
|
|
43
|
-
|
|
44
|
-
const showAction = () => setModalVisible(true);
|
|
45
|
-
|
|
46
|
-
const hideAction = () => hideTransition(() => setModalVisible(false));
|
|
47
|
-
|
|
48
|
-
const {
|
|
49
|
-
width,
|
|
50
|
-
height
|
|
51
|
-
} = useWindowDimensions();
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (visible) showAction();else hideAction();
|
|
54
|
-
}, [visible]);
|
|
55
|
-
useOnDismiss(modalVisible, onDismiss);
|
|
56
|
-
return /*#__PURE__*/React.createElement(RNModal, _extends({
|
|
57
|
-
transparent: true,
|
|
58
|
-
hardwareAccelerated: true,
|
|
59
|
-
visible: modalVisible,
|
|
60
|
-
onRequestClose: onClose,
|
|
61
|
-
onShow: () => showTransition(),
|
|
62
|
-
onDismiss: onDismiss,
|
|
63
|
-
supportedOrientations: ['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right'],
|
|
64
|
-
animationType: 'none'
|
|
65
|
-
}, props), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
|
|
66
|
-
onPress: disableBackgroundClose ? undefined : onClose
|
|
67
|
-
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
68
|
-
style: [StyleSheet.absoluteFill, {
|
|
69
|
-
opacity: backdrop.opacity,
|
|
70
|
-
backgroundColor: palette.onBackgroundLight03
|
|
71
|
-
}]
|
|
72
|
-
})), /*#__PURE__*/React.createElement(KeyboardAvoidingView // NOTE: This is trick for Android.
|
|
73
|
-
// When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.
|
|
74
|
-
, {
|
|
75
|
-
key: `${width}-${height}`,
|
|
76
|
-
enabled: enableKeyboardAvoid,
|
|
77
|
-
style: styles.background,
|
|
78
|
-
behavior: Platform.select({
|
|
79
|
-
ios: 'padding',
|
|
80
|
-
default: 'height'
|
|
81
|
-
}),
|
|
82
|
-
pointerEvents: 'box-none',
|
|
83
|
-
keyboardVerticalOffset: enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0
|
|
84
|
-
}, /*#__PURE__*/React.createElement(Animated.View, _extends({
|
|
85
|
-
style: [styles.background, backgroundStyle, {
|
|
86
|
-
opacity: content.opacity,
|
|
87
|
-
transform: [{
|
|
88
|
-
translateY: content.translateY
|
|
89
|
-
}]
|
|
90
|
-
}],
|
|
91
|
-
pointerEvents: 'box-none'
|
|
92
|
-
}, panResponder.panHandlers), /*#__PURE__*/React.createElement(Pressable // NOTE: https://github.com/facebook/react-native/issues/14295
|
|
93
|
-
// Due to 'Pressable', the width of the children must be explicitly specified as a number.
|
|
94
|
-
, null, children))));
|
|
95
|
-
};
|
|
96
|
-
|
|
97
|
-
const isHideGesture = (distanceY, velocityY) => {
|
|
98
|
-
return distanceY > 125 || distanceY > 0 && velocityY > 0.1;
|
|
99
|
-
};
|
|
100
|
-
|
|
101
|
-
const useModalPanResponder = (type, translateY, show, hide) => {
|
|
102
|
-
if (type === 'fade') return {
|
|
103
|
-
panHandlers: {}
|
|
104
|
-
};
|
|
105
|
-
return React.useRef(PanResponder.create({
|
|
106
|
-
onMoveShouldSetPanResponderCapture: (_, _ref2) => {
|
|
107
|
-
let {
|
|
108
|
-
dy
|
|
109
|
-
} = _ref2;
|
|
110
|
-
return dy > 8;
|
|
111
|
-
},
|
|
112
|
-
// @ts-ignore
|
|
113
|
-
onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),
|
|
114
|
-
onPanResponderMove: (_, _ref3) => {
|
|
115
|
-
let {
|
|
116
|
-
dy
|
|
117
|
-
} = _ref3;
|
|
118
|
-
return dy >= 0 && translateY.setValue(dy);
|
|
119
|
-
},
|
|
120
|
-
// Animated.event([null, { dy: translateY }], { useNativeDriver: false }),
|
|
121
|
-
onPanResponderRelease: (_, _ref4) => {
|
|
122
|
-
let {
|
|
123
|
-
dy,
|
|
124
|
-
vy
|
|
125
|
-
} = _ref4;
|
|
126
|
-
if (isHideGesture(dy, vy)) hide();else show();
|
|
127
|
-
}
|
|
128
|
-
})).current;
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
const useModalAnimation = type => {
|
|
132
|
-
const initialY = type === 'slide' ? Dimensions.get('window').height : 0;
|
|
133
|
-
const baseAnimBackground = useRef(new Animated.Value(0)).current;
|
|
134
|
-
const baseAnimContent = useRef(new Animated.Value(initialY)).current;
|
|
135
|
-
const content = {
|
|
136
|
-
opacity: baseAnimBackground.interpolate({
|
|
137
|
-
inputRange: [0, 1],
|
|
138
|
-
outputRange: [type === 'slide' ? 1 : 0, 1]
|
|
139
|
-
}),
|
|
140
|
-
translateY: baseAnimContent
|
|
141
|
-
};
|
|
142
|
-
const backdrop = {
|
|
143
|
-
opacity: baseAnimBackground.interpolate({
|
|
144
|
-
inputRange: [0, 1],
|
|
145
|
-
outputRange: [0, 1]
|
|
146
|
-
})
|
|
147
|
-
};
|
|
148
|
-
|
|
149
|
-
const createTransition = toValue => {
|
|
150
|
-
const config = {
|
|
151
|
-
duration: 250,
|
|
152
|
-
useNativeDriver: false
|
|
153
|
-
};
|
|
154
|
-
return Animated.parallel([Animated.timing(baseAnimBackground, {
|
|
155
|
-
toValue,
|
|
156
|
-
...config
|
|
157
|
-
}), Animated.timing(baseAnimContent, {
|
|
158
|
-
toValue: toValue === 0 ? initialY : 0,
|
|
159
|
-
...config
|
|
160
|
-
})]).start;
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
return {
|
|
164
|
-
content,
|
|
165
|
-
backdrop,
|
|
166
|
-
showTransition: createTransition(1),
|
|
167
|
-
hideTransition: createTransition(0)
|
|
168
|
-
};
|
|
169
|
-
}; // NOTE: onDismiss is supports iOS only
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
const useOnDismiss = (visible, onDismiss) => {
|
|
173
|
-
const prevVisible = usePrevProp(visible);
|
|
174
|
-
useEffect(() => {
|
|
175
|
-
if (Platform.OS === 'ios') return;
|
|
176
|
-
if (prevVisible && !visible) onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
|
177
|
-
}, [prevVisible, visible]);
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
const usePrevProp = prop => {
|
|
181
|
-
const prev = useRef(prop);
|
|
182
|
-
const curr = useRef(prop);
|
|
183
|
-
useEffect(() => {
|
|
184
|
-
prev.current = curr.current;
|
|
185
|
-
curr.current = prop;
|
|
186
|
-
});
|
|
187
|
-
return prev.current;
|
|
188
|
-
};
|
|
189
|
-
|
|
190
|
-
const styles = createStyleSheet({
|
|
191
|
-
background: {
|
|
192
|
-
flex: 1
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
export default Modal;
|
|
196
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","Animated","Dimensions","KeyboardAvoidingView","PanResponder","Platform","Pressable","Modal","RNModal","StyleSheet","TouchableWithoutFeedback","useWindowDimensions","createStyleSheet","useHeaderStyle","useUIKitTheme","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","modalVisible","setModalVisible","showAction","hideAction","width","height","useOnDismiss","undefined","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","get","baseAnimBackground","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n type?: 'slide' | 'fade';\n onClose: () => void;\n backgroundStyle?: StyleProp<ViewStyle>;\n disableBackgroundClose?: boolean;\n enableKeyboardAvoid?: boolean;\n} & Omit<ModalProps, 'animationType' | 'onRequestClose'>;\n\n/**\n * Modal Open: Triggered by Modal.props.visible state changed to true\n * - visible true -> modalVisible true -> animation start\n *\n * Modal Close: Triggered by Modal.props.onClose() call\n * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false\n * */\nconst Modal: React.FC<Props> = ({\n children,\n onClose,\n backgroundStyle,\n onDismiss,\n type = 'fade',\n visible = false,\n disableBackgroundClose = false,\n enableKeyboardAvoid = false,\n statusBarTranslucent,\n ...props\n}) => {\n const { palette } = useUIKitTheme();\n const { content, backdrop, showTransition, hideTransition } = useModalAnimation(type);\n const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);\n const { topInset } = useHeaderStyle();\n\n const [modalVisible, setModalVisible] = useState(false);\n const showAction = () => setModalVisible(true);\n const hideAction = () => hideTransition(() => setModalVisible(false));\n\n const { width, height } = useWindowDimensions();\n\n useEffect(() => {\n if (visible) showAction();\n else hideAction();\n }, [visible]);\n\n useOnDismiss(modalVisible, onDismiss);\n\n return (\n <RNModal\n transparent\n hardwareAccelerated\n visible={modalVisible}\n onRequestClose={onClose}\n onShow={() => showTransition()}\n onDismiss={onDismiss}\n supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}\n animationType={'none'}\n {...props}\n >\n <TouchableWithoutFeedback onPress={disableBackgroundClose ? undefined : onClose}>\n <Animated.View\n style={[StyleSheet.absoluteFill, { opacity: backdrop.opacity, backgroundColor: palette.onBackgroundLight03 }]}\n />\n </TouchableWithoutFeedback>\n <KeyboardAvoidingView\n // NOTE: This is trick for Android.\n // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.\n key={`${width}-${height}`}\n enabled={enableKeyboardAvoid}\n style={styles.background}\n behavior={Platform.select({ ios: 'padding', default: 'height' })}\n pointerEvents={'box-none'}\n keyboardVerticalOffset={enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0}\n >\n <Animated.View\n style={[\n styles.background,\n backgroundStyle,\n { opacity: content.opacity, transform: [{ translateY: content.translateY }] },\n ]}\n pointerEvents={'box-none'}\n {...panResponder.panHandlers}\n >\n <Pressable\n // NOTE: https://github.com/facebook/react-native/issues/14295\n // Due to 'Pressable', the width of the children must be explicitly specified as a number.\n >\n {children}\n </Pressable>\n </Animated.View>\n </KeyboardAvoidingView>\n </RNModal>\n );\n};\n\nconst isHideGesture = (distanceY: number, velocityY: number) => {\n return distanceY > 125 || (distanceY > 0 && velocityY > 0.1);\n};\nconst useModalPanResponder = (\n type: 'slide' | 'fade',\n translateY: Animated.Value,\n show: () => void,\n hide: () => void,\n) => {\n if (type === 'fade') return { panHandlers: {} };\n return React.useRef(\n PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, { dy }) => dy > 8,\n // @ts-ignore\n onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),\n onPanResponderMove: (_, { dy }) => dy >= 0 && translateY.setValue(dy), // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),\n onPanResponderRelease: (_, { dy, vy }) => {\n if (isHideGesture(dy, vy)) hide();\n else show();\n },\n }),\n ).current;\n};\n\nconst useModalAnimation = (type: 'slide' | 'fade') => {\n const initialY = type === 'slide' ? Dimensions.get('window').height : 0;\n const baseAnimBackground = useRef(new Animated.Value(0)).current;\n const baseAnimContent = useRef(new Animated.Value(initialY)).current;\n\n const content = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [type === 'slide' ? 1 : 0, 1],\n }),\n translateY: baseAnimContent,\n };\n const backdrop = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n }),\n };\n const createTransition = (toValue: 0 | 1) => {\n const config = { duration: 250, useNativeDriver: false };\n return Animated.parallel([\n Animated.timing(baseAnimBackground, { toValue, ...config }),\n Animated.timing(baseAnimContent, { toValue: toValue === 0 ? initialY : 0, ...config }),\n ]).start;\n };\n return {\n content,\n backdrop,\n showTransition: createTransition(1),\n hideTransition: createTransition(0),\n };\n};\n\n// NOTE: onDismiss is supports iOS only\nconst useOnDismiss = (visible: boolean, onDismiss?: () => void) => {\n const prevVisible = usePrevProp(visible);\n useEffect(() => {\n if (Platform.OS === 'ios') return;\n if (prevVisible && !visible) onDismiss?.();\n }, [prevVisible, visible]);\n};\n\nconst usePrevProp = <T,>(prop: T) => {\n const prev = useRef(prop);\n const curr = useRef(prop);\n useEffect(() => {\n prev.current = curr.current;\n curr.current = prop;\n });\n return prev.current;\n};\n\nconst styles = createStyleSheet({\n background: { flex: 1 },\n});\n\nexport default Modal;\n"],"mappings":"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"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { View } from 'react-native';
|
|
3
|
-
import { conditionChaining } from '@sendbird/uikit-utils';
|
|
4
|
-
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
-
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
6
|
-
import Button from '../Button';
|
|
7
|
-
import Icon from '../Icon';
|
|
8
|
-
import LoadingSpinner from '../LoadingSpinner';
|
|
9
|
-
import Text from '../Text';
|
|
10
|
-
|
|
11
|
-
const Placeholder = _ref => {
|
|
12
|
-
let {
|
|
13
|
-
icon,
|
|
14
|
-
loading = false,
|
|
15
|
-
message = '',
|
|
16
|
-
errorRetryLabel,
|
|
17
|
-
onPressRetry
|
|
18
|
-
} = _ref;
|
|
19
|
-
const {
|
|
20
|
-
colors
|
|
21
|
-
} = useUIKitTheme(); // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container
|
|
22
|
-
|
|
23
|
-
return /*#__PURE__*/React.createElement(View, {
|
|
24
|
-
style: conditionChaining([loading, errorRetryLabel], [styles.containerLoading, styles.containerError, styles.container])
|
|
25
|
-
}, conditionChaining([loading], [/*#__PURE__*/React.createElement(LoadingSpinner, {
|
|
26
|
-
size: 64,
|
|
27
|
-
color: colors.ui.placeholder.default.none.highlight
|
|
28
|
-
}), /*#__PURE__*/React.createElement(Icon, {
|
|
29
|
-
icon: icon,
|
|
30
|
-
size: 64,
|
|
31
|
-
color: colors.ui.placeholder.default.none.content
|
|
32
|
-
})]), Boolean(message) && !loading && /*#__PURE__*/React.createElement(Text, {
|
|
33
|
-
body3: true,
|
|
34
|
-
color: colors.ui.placeholder.default.none.content
|
|
35
|
-
}, message), Boolean(errorRetryLabel) && !loading && /*#__PURE__*/React.createElement(Button, {
|
|
36
|
-
variant: 'text',
|
|
37
|
-
onPress: onPressRetry,
|
|
38
|
-
contentColor: colors.ui.placeholder.default.none.highlight,
|
|
39
|
-
icon: 'refresh'
|
|
40
|
-
}, errorRetryLabel));
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const styles = createStyleSheet({
|
|
44
|
-
container: {
|
|
45
|
-
width: 200,
|
|
46
|
-
height: 100,
|
|
47
|
-
alignItems: 'center',
|
|
48
|
-
justifyContent: 'space-between'
|
|
49
|
-
},
|
|
50
|
-
containerError: {
|
|
51
|
-
width: 200,
|
|
52
|
-
height: 148,
|
|
53
|
-
alignItems: 'center',
|
|
54
|
-
justifyContent: 'space-between'
|
|
55
|
-
},
|
|
56
|
-
containerLoading: {
|
|
57
|
-
width: 200,
|
|
58
|
-
height: 100,
|
|
59
|
-
alignItems: 'center',
|
|
60
|
-
justifyContent: 'center'
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
export default Placeholder;
|
|
64
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","conditionChaining","createStyleSheet","useUIKitTheme","Button","Icon","LoadingSpinner","Text","Placeholder","icon","loading","message","errorRetryLabel","onPressRetry","colors","styles","containerLoading","containerError","container","ui","placeholder","default","none","highlight","content","Boolean","width","height","alignItems","justifyContent"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Text from '../Text';\n\ntype Props = {\n loading?: boolean;\n\n icon: keyof typeof Icon.Assets;\n message?: string;\n errorRetryLabel?: string;\n onPressRetry?: () => void;\n};\n\nconst Placeholder: React.FC<Props> = ({ icon, loading = false, message = '', errorRetryLabel, onPressRetry }) => {\n const { colors } = useUIKitTheme();\n\n // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container\n return (\n <View\n style={conditionChaining(\n [loading, errorRetryLabel],\n [styles.containerLoading, styles.containerError, styles.container],\n )}\n >\n {conditionChaining(\n [loading],\n [\n <LoadingSpinner size={64} color={colors.ui.placeholder.default.none.highlight} />,\n <Icon icon={icon} size={64} color={colors.ui.placeholder.default.none.content} />,\n ],\n )}\n {Boolean(message) && !loading && (\n <Text body3 color={colors.ui.placeholder.default.none.content}>\n {message}\n </Text>\n )}\n {Boolean(errorRetryLabel) && !loading && (\n <Button\n variant={'text'}\n onPress={onPressRetry}\n contentColor={colors.ui.placeholder.default.none.highlight}\n icon={'refresh'}\n >\n {errorRetryLabel}\n </Button>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerError: {\n width: 200,\n height: 148,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerLoading: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default Placeholder;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,IAAT,QAAqB,cAArB;AAEA,SAASC,iBAAT,QAAkC,uBAAlC;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,cAAP,MAA2B,mBAA3B;AACA,OAAOC,IAAP,MAAiB,SAAjB;;AAWA,MAAMC,WAA4B,GAAG,QAA4E;EAAA,IAA3E;IAAEC,IAAF;IAAQC,OAAO,GAAG,KAAlB;IAAyBC,OAAO,GAAG,EAAnC;IAAuCC,eAAvC;IAAwDC;EAAxD,CAA2E;EAC/G,MAAM;IAAEC;EAAF,IAAaX,aAAa,EAAhC,CAD+G,CAG/G;;EACA,oBACE,oBAAC,IAAD;IACE,KAAK,EAAEF,iBAAiB,CACtB,CAACS,OAAD,EAAUE,eAAV,CADsB,EAEtB,CAACG,MAAM,CAACC,gBAAR,EAA0BD,MAAM,CAACE,cAAjC,EAAiDF,MAAM,CAACG,SAAxD,CAFsB;EAD1B,GAMGjB,iBAAiB,CAChB,CAACS,OAAD,CADgB,EAEhB,cACE,oBAAC,cAAD;IAAgB,IAAI,EAAE,EAAtB;IAA0B,KAAK,EAAEI,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC;EAApE,EADF,eAEE,oBAAC,IAAD;IAAM,IAAI,EAAEd,IAAZ;IAAkB,IAAI,EAAE,EAAxB;IAA4B,KAAK,EAAEK,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtE,EAFF,CAFgB,CANpB,EAaGC,OAAO,CAACd,OAAD,CAAP,IAAoB,CAACD,OAArB,iBACC,oBAAC,IAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEI,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtD,GACGb,OADH,CAdJ,EAkBGc,OAAO,CAACb,eAAD,CAAP,IAA4B,CAACF,OAA7B,iBACC,oBAAC,MAAD;IACE,OAAO,EAAE,MADX;IAEE,OAAO,EAAEG,YAFX;IAGE,YAAY,EAAEC,MAAM,CAACK,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC,SAHnD;IAIE,IAAI,EAAE;EAJR,GAMGX,eANH,CAnBJ,CADF;AA+BD,CAnCD;;AAqCA,MAAMG,MAAM,GAAGb,gBAAgB,CAAC;EAC9BgB,SAAS,EAAE;IACTQ,KAAK,EAAE,GADE;IAETC,MAAM,EAAE,GAFC;IAGTC,UAAU,EAAE,QAHH;IAITC,cAAc,EAAE;EAJP,CADmB;EAO9BZ,cAAc,EAAE;IACdS,KAAK,EAAE,GADO;IAEdC,MAAM,EAAE,GAFM;IAGdC,UAAU,EAAE,QAHE;IAIdC,cAAc,EAAE;EAJF,CAPc;EAa9Bb,gBAAgB,EAAE;IAChBU,KAAK,EAAE,GADS;IAEhBC,MAAM,EAAE,GAFQ;IAGhBC,UAAU,EAAE,QAHI;IAIhBC,cAAc,EAAE;EAJA;AAbY,CAAD,CAA/B;AAqBA,eAAerB,WAAf"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
-
import { Keyboard, Platform, View, useWindowDimensions } from 'react-native';
|
|
3
|
-
import { NOOP } from '@sendbird/uikit-utils';
|
|
4
|
-
import createStyleSheet from '../../styles/createStyleSheet';
|
|
5
|
-
import useHeaderStyle from '../../styles/useHeaderStyle';
|
|
6
|
-
import useUIKitTheme from '../../theme/useUIKitTheme';
|
|
7
|
-
import Button from '../Button';
|
|
8
|
-
import DialogBox from '../Dialog/DialogBox';
|
|
9
|
-
import Modal from '../Modal';
|
|
10
|
-
import Text from '../Text';
|
|
11
|
-
import TextInput from '../TextInput';
|
|
12
|
-
|
|
13
|
-
const Prompt = _ref => {
|
|
14
|
-
let {
|
|
15
|
-
onDismiss,
|
|
16
|
-
visible,
|
|
17
|
-
onHide,
|
|
18
|
-
autoFocus = true,
|
|
19
|
-
title,
|
|
20
|
-
defaultValue = '',
|
|
21
|
-
placeholder = 'Enter',
|
|
22
|
-
onSubmit = NOOP,
|
|
23
|
-
onCancel = NOOP,
|
|
24
|
-
submitLabel = 'Submit',
|
|
25
|
-
cancelLabel = 'Cancel'
|
|
26
|
-
} = _ref;
|
|
27
|
-
const {
|
|
28
|
-
statusBarTranslucent
|
|
29
|
-
} = useHeaderStyle();
|
|
30
|
-
const {
|
|
31
|
-
colors
|
|
32
|
-
} = useUIKitTheme();
|
|
33
|
-
const inputRef = useRef(null);
|
|
34
|
-
const {
|
|
35
|
-
width,
|
|
36
|
-
height
|
|
37
|
-
} = useWindowDimensions();
|
|
38
|
-
const buttons = [{
|
|
39
|
-
text: cancelLabel,
|
|
40
|
-
onPress: onCancel
|
|
41
|
-
}, {
|
|
42
|
-
text: submitLabel,
|
|
43
|
-
onPress: () => onSubmit(text)
|
|
44
|
-
}];
|
|
45
|
-
const [text, setText] = useState(defaultValue); // FIXME: autoFocus trick with modal
|
|
46
|
-
// Android
|
|
47
|
-
// - InputProps.autoFocus is not trigger keyboard appearing.
|
|
48
|
-
// - InputRef.focus() is trigger keyboard appearing, but position of keyboard selection is always the start of text.
|
|
49
|
-
// iOS
|
|
50
|
-
// - InputProps.autoFocus is trigger weird UI behavior on landscape mode.
|
|
51
|
-
|
|
52
|
-
useEffect(() => {
|
|
53
|
-
if (autoFocus && visible) {
|
|
54
|
-
setTimeout(() => {
|
|
55
|
-
var _inputRef$current, _inputRef$current2;
|
|
56
|
-
|
|
57
|
-
if (Platform.OS === 'android') (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.blur();
|
|
58
|
-
(_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
|
|
59
|
-
}, 250);
|
|
60
|
-
}
|
|
61
|
-
}, [autoFocus, visible, `${width}-${height}`]);
|
|
62
|
-
return /*#__PURE__*/React.createElement(Modal, {
|
|
63
|
-
enableKeyboardAvoid: true,
|
|
64
|
-
disableBackgroundClose: true,
|
|
65
|
-
onClose: onHide,
|
|
66
|
-
onDismiss: () => {
|
|
67
|
-
setText('');
|
|
68
|
-
onDismiss === null || onDismiss === void 0 ? void 0 : onDismiss();
|
|
69
|
-
},
|
|
70
|
-
statusBarTranslucent: statusBarTranslucent,
|
|
71
|
-
visible: visible,
|
|
72
|
-
backgroundStyle: {
|
|
73
|
-
alignItems: 'center',
|
|
74
|
-
justifyContent: 'center'
|
|
75
|
-
}
|
|
76
|
-
}, /*#__PURE__*/React.createElement(DialogBox, {
|
|
77
|
-
style: styles.container
|
|
78
|
-
}, Boolean(title) && /*#__PURE__*/React.createElement(View, {
|
|
79
|
-
style: styles.titleContainer
|
|
80
|
-
}, /*#__PURE__*/React.createElement(Text, {
|
|
81
|
-
h1: true,
|
|
82
|
-
color: colors.ui.dialog.default.none.text,
|
|
83
|
-
numberOfLines: 1,
|
|
84
|
-
style: {
|
|
85
|
-
flex: 1
|
|
86
|
-
}
|
|
87
|
-
}, title)), /*#__PURE__*/React.createElement(View, {
|
|
88
|
-
style: styles.inputContainer
|
|
89
|
-
}, /*#__PURE__*/React.createElement(TextInput, {
|
|
90
|
-
autoFocus: autoFocus && Platform.OS === 'android',
|
|
91
|
-
ref: inputRef,
|
|
92
|
-
placeholder: placeholder,
|
|
93
|
-
variant: 'underline',
|
|
94
|
-
value: text,
|
|
95
|
-
onChangeText: setText,
|
|
96
|
-
style: {
|
|
97
|
-
paddingHorizontal: 0,
|
|
98
|
-
paddingVertical: 10
|
|
99
|
-
}
|
|
100
|
-
})), /*#__PURE__*/React.createElement(View, {
|
|
101
|
-
style: styles.buttonContainer
|
|
102
|
-
}, buttons.map((_ref2, index) => {
|
|
103
|
-
let {
|
|
104
|
-
text,
|
|
105
|
-
onPress
|
|
106
|
-
} = _ref2;
|
|
107
|
-
return /*#__PURE__*/React.createElement(Button, {
|
|
108
|
-
key: text + index,
|
|
109
|
-
variant: 'text',
|
|
110
|
-
style: styles.button,
|
|
111
|
-
contentColor: colors.ui.dialog.default.none.highlight,
|
|
112
|
-
onPress: () => {
|
|
113
|
-
Keyboard.dismiss();
|
|
114
|
-
|
|
115
|
-
try {
|
|
116
|
-
onPress === null || onPress === void 0 ? void 0 : onPress();
|
|
117
|
-
} finally {
|
|
118
|
-
onHide();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}, text);
|
|
122
|
-
}))));
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
const styles = createStyleSheet({
|
|
126
|
-
container: {
|
|
127
|
-
paddingTop: 8
|
|
128
|
-
},
|
|
129
|
-
titleContainer: {
|
|
130
|
-
marginBottom: 12,
|
|
131
|
-
paddingVertical: 12,
|
|
132
|
-
paddingHorizontal: 24,
|
|
133
|
-
flexDirection: 'row',
|
|
134
|
-
alignItems: 'center'
|
|
135
|
-
},
|
|
136
|
-
inputContainer: {
|
|
137
|
-
paddingHorizontal: 24,
|
|
138
|
-
marginBottom: 12
|
|
139
|
-
},
|
|
140
|
-
buttonContainer: {
|
|
141
|
-
flexDirection: 'row',
|
|
142
|
-
alignItems: 'center',
|
|
143
|
-
justifyContent: 'flex-end',
|
|
144
|
-
padding: 12
|
|
145
|
-
},
|
|
146
|
-
button: {
|
|
147
|
-
marginLeft: 8
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
export default Prompt;
|
|
151
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","useRef","useState","Keyboard","Platform","View","useWindowDimensions","NOOP","createStyleSheet","useHeaderStyle","useUIKitTheme","Button","DialogBox","Modal","Text","TextInput","Prompt","onDismiss","visible","onHide","autoFocus","title","defaultValue","placeholder","onSubmit","onCancel","submitLabel","cancelLabel","statusBarTranslucent","colors","inputRef","width","height","buttons","text","onPress","setText","setTimeout","OS","current","blur","focus","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","inputContainer","paddingHorizontal","paddingVertical","buttonContainer","map","index","button","highlight","dismiss","paddingTop","marginBottom","flexDirection","padding","marginLeft"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Keyboard, Platform, TextInput as RNTextInput, View, useWindowDimensions } from 'react-native';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\nimport TextInput from '../TextInput';\n\nexport type PromptItem = {\n title: string;\n placeholder?: string;\n defaultValue?: string;\n onSubmit?: (text: string) => void;\n submitLabel?: string;\n onCancel?: () => void;\n cancelLabel?: string;\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n autoFocus?: boolean;\n} & PromptItem;\nconst Prompt: React.FC<Props> = ({\n onDismiss,\n visible,\n onHide,\n autoFocus = true,\n title,\n defaultValue = '',\n placeholder = 'Enter',\n onSubmit = NOOP,\n onCancel = NOOP,\n submitLabel = 'Submit',\n cancelLabel = 'Cancel',\n}) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const inputRef = useRef<RNTextInput>(null);\n const { width, height } = useWindowDimensions();\n\n const buttons = [\n { text: cancelLabel, onPress: onCancel },\n { text: submitLabel, onPress: () => onSubmit(text) },\n ];\n\n const [text, setText] = useState(defaultValue);\n\n // FIXME: autoFocus trick with modal\n // Android\n // - InputProps.autoFocus is not trigger keyboard appearing.\n // - InputRef.focus() is trigger keyboard appearing, but position of keyboard selection is always the start of text.\n // iOS\n // - InputProps.autoFocus is trigger weird UI behavior on landscape mode.\n useEffect(() => {\n if (autoFocus && visible) {\n setTimeout(() => {\n if (Platform.OS === 'android') inputRef.current?.blur();\n inputRef.current?.focus();\n }, 250);\n }\n }, [autoFocus, visible, `${width}-${height}`]);\n\n return (\n <Modal\n enableKeyboardAvoid\n disableBackgroundClose\n onClose={onHide}\n onDismiss={() => {\n setText('');\n onDismiss?.();\n }}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.inputContainer}>\n <TextInput\n autoFocus={autoFocus && Platform.OS === 'android'}\n ref={inputRef}\n placeholder={placeholder}\n variant={'underline'}\n value={text}\n onChangeText={setText}\n style={{ paddingHorizontal: 0, paddingVertical: 10 }}\n />\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text, onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n contentColor={colors.ui.dialog.default.none.highlight}\n onPress={() => {\n Keyboard.dismiss();\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 8,\n },\n titleContainer: {\n marginBottom: 12,\n paddingVertical: 12,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n inputContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n button: {\n marginLeft: 8,\n },\n});\n\nexport default Prompt;\n"],"mappings":"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"}
|