@sendbird/uikit-react-native 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/InternalErrorBoundary.js +84 -0
- package/lib/commonjs/InternalErrorBoundary.js.map +1 -0
- package/lib/commonjs/InternalLocalCacheStorage.js +59 -0
- package/lib/commonjs/InternalLocalCacheStorage.js.map +1 -0
- package/lib/commonjs/SendbirdUIKitContainer.js +166 -0
- package/lib/commonjs/SendbirdUIKitContainer.js.map +1 -0
- package/lib/commonjs/components/ChannelCover.js +59 -0
- package/lib/commonjs/components/ChannelCover.js.map +1 -0
- package/lib/commonjs/components/ChatFlatList.js +118 -0
- package/lib/commonjs/components/ChatFlatList.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js +52 -0
- package/lib/commonjs/components/MessageRenderer/AdminMessage/index.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js +76 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js +61 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js +31 -0
- package/lib/commonjs/components/MessageRenderer/FileMessage/index.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/MessageContainer.js +33 -0
- package/lib/commonjs/components/MessageRenderer/MessageContainer.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js +58 -0
- package/lib/commonjs/components/MessageRenderer/MessageDateSeparator.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js +42 -0
- package/lib/commonjs/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js +48 -0
- package/lib/commonjs/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js +134 -0
- package/lib/commonjs/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/MessageTime.js +41 -0
- package/lib/commonjs/components/MessageRenderer/MessageTime.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js +53 -0
- package/lib/commonjs/components/MessageRenderer/UnknownMessage/index.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js +54 -0
- package/lib/commonjs/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +131 -0
- package/lib/commonjs/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/UserMessage/index.js +31 -0
- package/lib/commonjs/components/MessageRenderer/UserMessage/index.js.map +1 -0
- package/lib/commonjs/components/MessageRenderer/index.js +189 -0
- package/lib/commonjs/components/MessageRenderer/index.js.map +1 -0
- package/lib/commonjs/components/NewMessagesButton.js +73 -0
- package/lib/commonjs/components/NewMessagesButton.js.map +1 -0
- package/lib/commonjs/components/ProviderLayout.js +37 -0
- package/lib/commonjs/components/ProviderLayout.js.map +1 -0
- package/lib/commonjs/components/ScrollToBottomButton.js +66 -0
- package/lib/commonjs/components/ScrollToBottomButton.js.map +1 -0
- package/lib/commonjs/components/StatusComposition.js +27 -0
- package/lib/commonjs/components/StatusComposition.js.map +1 -0
- package/lib/commonjs/components/TypedPlaceholder.js +80 -0
- package/lib/commonjs/components/TypedPlaceholder.js.map +1 -0
- package/lib/commonjs/components/UserActionBar.js +96 -0
- package/lib/commonjs/components/UserActionBar.js.map +1 -0
- package/lib/commonjs/components/UserSelectableBar.js +78 -0
- package/lib/commonjs/components/UserSelectableBar.js.map +1 -0
- package/lib/commonjs/constants.js +9 -0
- package/lib/commonjs/constants.js.map +1 -0
- package/lib/commonjs/contexts/Localization.js +29 -0
- package/lib/commonjs/contexts/Localization.js.map +1 -0
- package/lib/commonjs/contexts/PlatformService.js +33 -0
- package/lib/commonjs/contexts/PlatformService.js.map +1 -0
- package/lib/commonjs/contexts/SendbirdChat.js +87 -0
- package/lib/commonjs/contexts/SendbirdChat.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js +88 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js +118 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js +148 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js +115 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js +343 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js +34 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js +34 -0
- package/lib/commonjs/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/index.js +70 -0
- package/lib/commonjs/domain/groupChannel/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js +45 -0
- package/lib/commonjs/domain/groupChannel/module/createGroupChannelModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js +79 -0
- package/lib/commonjs/domain/groupChannel/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannel/types.js +6 -0
- package/lib/commonjs/domain/groupChannel/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js +35 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js +96 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListList.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +34 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js +34 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js +141 -0
- package/lib/commonjs/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/index.js +70 -0
- package/lib/commonjs/domain/groupChannelList/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js +45 -0
- package/lib/commonjs/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/module/moduleContext.js +61 -0
- package/lib/commonjs/domain/groupChannelList/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelList/types.js +6 -0
- package/lib/commonjs/domain/groupChannelList/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +49 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +77 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +94 -0
- package/lib/commonjs/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/index.js +54 -0
- package/lib/commonjs/domain/groupChannelSettings/index.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +37 -0
- package/lib/commonjs/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js +150 -0
- package/lib/commonjs/domain/groupChannelSettings/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/groupChannelSettings/types.js +6 -0
- package/lib/commonjs/domain/groupChannelSettings/types.js.map +1 -0
- package/lib/commonjs/domain/groupChannelUserList/types.js +6 -0
- package/lib/commonjs/domain/groupChannelUserList/types.js.map +1 -0
- package/lib/commonjs/domain/userList/component/UserListHeader.js +56 -0
- package/lib/commonjs/domain/userList/component/UserListHeader.js.map +1 -0
- package/lib/commonjs/domain/userList/component/UserListList.js +57 -0
- package/lib/commonjs/domain/userList/component/UserListList.js.map +1 -0
- package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js +34 -0
- package/lib/commonjs/domain/userList/component/UserListStatusEmpty.js.map +1 -0
- package/lib/commonjs/domain/userList/component/UserListStatusError.js +38 -0
- package/lib/commonjs/domain/userList/component/UserListStatusError.js.map +1 -0
- package/lib/commonjs/domain/userList/component/UserListStatusLoading.js +34 -0
- package/lib/commonjs/domain/userList/component/UserListStatusLoading.js.map +1 -0
- package/lib/commonjs/domain/userList/index.js +70 -0
- package/lib/commonjs/domain/userList/index.js.map +1 -0
- package/lib/commonjs/domain/userList/module/createUserListModule.js +45 -0
- package/lib/commonjs/domain/userList/module/createUserListModule.js.map +1 -0
- package/lib/commonjs/domain/userList/module/moduleContext.js +54 -0
- package/lib/commonjs/domain/userList/module/moduleContext.js.map +1 -0
- package/lib/commonjs/domain/userList/types.js +6 -0
- package/lib/commonjs/domain/userList/types.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js +145 -0
- package/lib/commonjs/fragments/createGroupChannelCreateFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelFragment.js +154 -0
- package/lib/commonjs/fragments/createGroupChannelFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js +139 -0
- package/lib/commonjs/fragments/createGroupChannelInviteFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelListFragment.js +141 -0
- package/lib/commonjs/fragments/createGroupChannelListFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js +134 -0
- package/lib/commonjs/fragments/createGroupChannelMembersFragment.js.map +1 -0
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js +66 -0
- package/lib/commonjs/fragments/createGroupChannelSettingsFragment.js.map +1 -0
- package/lib/commonjs/hooks/useConnection.js +102 -0
- package/lib/commonjs/hooks/useConnection.js.map +1 -0
- package/lib/commonjs/hooks/useContext.js +39 -0
- package/lib/commonjs/hooks/useContext.js.map +1 -0
- package/lib/commonjs/hooks/usePushTokenRegistration.js +83 -0
- package/lib/commonjs/hooks/usePushTokenRegistration.js.map +1 -0
- package/lib/commonjs/index.js +449 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/localization/StringSet.en.js +19 -0
- package/lib/commonjs/localization/StringSet.en.js.map +1 -0
- package/lib/commonjs/localization/StringSet.type.js +178 -0
- package/lib/commonjs/localization/StringSet.type.js.map +1 -0
- package/lib/commonjs/platform/createClipboardService.expo.js +23 -0
- package/lib/commonjs/platform/createClipboardService.expo.js.map +1 -0
- package/lib/commonjs/platform/createClipboardService.native.js +23 -0
- package/lib/commonjs/platform/createClipboardService.native.js.map +1 -0
- package/lib/commonjs/platform/createFileService.expo.js +175 -0
- package/lib/commonjs/platform/createFileService.expo.js.map +1 -0
- package/lib/commonjs/platform/createFileService.native.js +253 -0
- package/lib/commonjs/platform/createFileService.native.js.map +1 -0
- package/lib/commonjs/platform/createNotificationService.expo.js +50 -0
- package/lib/commonjs/platform/createNotificationService.expo.js.map +1 -0
- package/lib/commonjs/platform/createNotificationService.native.js +65 -0
- package/lib/commonjs/platform/createNotificationService.native.js.map +1 -0
- package/lib/commonjs/platform/dynamicModule.js +114 -0
- package/lib/commonjs/platform/dynamicModule.js.map +1 -0
- package/lib/commonjs/platform/types.js +2 -0
- package/lib/commonjs/platform/types.js.map +1 -0
- package/lib/commonjs/types.js +6 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/commonjs/utils/expoPermissionGranted.js +32 -0
- package/lib/commonjs/utils/expoPermissionGranted.js.map +1 -0
- package/lib/commonjs/utils/fileTypeGuard.js +26 -0
- package/lib/commonjs/utils/fileTypeGuard.js.map +1 -0
- package/lib/commonjs/utils/nativePermissionGranted.js +23 -0
- package/lib/commonjs/utils/nativePermissionGranted.js.map +1 -0
- package/lib/commonjs/version.js +10 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/InternalErrorBoundary.js +72 -0
- package/lib/module/InternalErrorBoundary.js.map +1 -0
- package/lib/module/InternalLocalCacheStorage.js +50 -0
- package/lib/module/InternalLocalCacheStorage.js.map +1 -0
- package/lib/module/SendbirdUIKitContainer.js +136 -0
- package/lib/module/SendbirdUIKitContainer.js.map +1 -0
- package/lib/module/components/ChannelCover.js +46 -0
- package/lib/module/components/ChannelCover.js.map +1 -0
- package/lib/module/components/ChatFlatList.js +102 -0
- package/lib/module/components/ChatFlatList.js.map +1 -0
- package/lib/module/components/MessageRenderer/AdminMessage/index.js +40 -0
- package/lib/module/components/MessageRenderer/AdminMessage/index.js.map +1 -0
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js +62 -0
- package/lib/module/components/MessageRenderer/FileMessage/BaseFileMessage.js.map +1 -0
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js +47 -0
- package/lib/module/components/MessageRenderer/FileMessage/ImageFileMessage.js.map +1 -0
- package/lib/module/components/MessageRenderer/FileMessage/index.js +17 -0
- package/lib/module/components/MessageRenderer/FileMessage/index.js.map +1 -0
- package/lib/module/components/MessageRenderer/MessageContainer.js +21 -0
- package/lib/module/components/MessageRenderer/MessageContainer.js.map +1 -0
- package/lib/module/components/MessageRenderer/MessageDateSeparator.js +44 -0
- package/lib/module/components/MessageRenderer/MessageDateSeparator.js.map +1 -0
- package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js +30 -0
- package/lib/module/components/MessageRenderer/MessageIncomingAvatar.js.map +1 -0
- package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js +35 -0
- package/lib/module/components/MessageRenderer/MessageIncomingSenderName.js.map +1 -0
- package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js +116 -0
- package/lib/module/components/MessageRenderer/MessageOutgoingStatus.js.map +1 -0
- package/lib/module/components/MessageRenderer/MessageTime.js +28 -0
- package/lib/module/components/MessageRenderer/MessageTime.js.map +1 -0
- package/lib/module/components/MessageRenderer/UnknownMessage/index.js +40 -0
- package/lib/module/components/MessageRenderer/UnknownMessage/index.js.map +1 -0
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js +41 -0
- package/lib/module/components/MessageRenderer/UserMessage/BaseUserMessage.js.map +1 -0
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js +115 -0
- package/lib/module/components/MessageRenderer/UserMessage/OpenGraphUserMessage.js.map +1 -0
- package/lib/module/components/MessageRenderer/UserMessage/index.js +18 -0
- package/lib/module/components/MessageRenderer/UserMessage/index.js.map +1 -0
- package/lib/module/components/MessageRenderer/index.js +163 -0
- package/lib/module/components/MessageRenderer/index.js.map +1 -0
- package/lib/module/components/NewMessagesButton.js +58 -0
- package/lib/module/components/NewMessagesButton.js.map +1 -0
- package/lib/module/components/ProviderLayout.js +25 -0
- package/lib/module/components/ProviderLayout.js.map +1 -0
- package/lib/module/components/ScrollToBottomButton.js +52 -0
- package/lib/module/components/ScrollToBottomButton.js.map +1 -0
- package/lib/module/components/StatusComposition.js +17 -0
- package/lib/module/components/StatusComposition.js.map +1 -0
- package/lib/module/components/TypedPlaceholder.js +68 -0
- package/lib/module/components/TypedPlaceholder.js.map +1 -0
- package/lib/module/components/UserActionBar.js +81 -0
- package/lib/module/components/UserActionBar.js.map +1 -0
- package/lib/module/components/UserSelectableBar.js +63 -0
- package/lib/module/components/UserSelectableBar.js.map +1 -0
- package/lib/module/constants.js +2 -0
- package/lib/module/constants.js.map +1 -0
- package/lib/module/contexts/Localization.js +14 -0
- package/lib/module/contexts/Localization.js.map +1 -0
- package/lib/module/contexts/PlatformService.js +18 -0
- package/lib/module/contexts/PlatformService.js.map +1 -0
- package/lib/module/contexts/SendbirdChat.js +66 -0
- package/lib/module/contexts/SendbirdChat.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js +69 -0
- package/lib/module/domain/groupChannel/component/GroupChannelHeader.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js +102 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/EditInput.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js +134 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/SendInput.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js +92 -0
- package/lib/module/domain/groupChannel/component/GroupChannelInput/index.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js +317 -0
- package/lib/module/domain/groupChannel/component/GroupChannelMessageList.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js +21 -0
- package/lib/module/domain/groupChannel/component/GroupChannelStatusEmpty.js.map +1 -0
- package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js +21 -0
- package/lib/module/domain/groupChannel/component/GroupChannelStatusLoading.js.map +1 -0
- package/lib/module/domain/groupChannel/index.js +8 -0
- package/lib/module/domain/groupChannel/index.js.map +1 -0
- package/lib/module/domain/groupChannel/module/createGroupChannelModule.js +30 -0
- package/lib/module/domain/groupChannel/module/createGroupChannelModule.js.map +1 -0
- package/lib/module/domain/groupChannel/module/moduleContext.js +57 -0
- package/lib/module/domain/groupChannel/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannel/types.js +2 -0
- package/lib/module/domain/groupChannel/types.js.map +1 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js +21 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListHeader.js.map +1 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js +79 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListList.js.map +1 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js +21 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListStatusEmpty.js.map +1 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js +21 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListStatusLoading.js.map +1 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js +124 -0
- package/lib/module/domain/groupChannelList/component/GroupChannelListTypeSelector.js.map +1 -0
- package/lib/module/domain/groupChannelList/index.js +8 -0
- package/lib/module/domain/groupChannelList/index.js.map +1 -0
- package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js +30 -0
- package/lib/module/domain/groupChannelList/module/createGroupChannelListModule.js.map +1 -0
- package/lib/module/domain/groupChannelList/module/moduleContext.js +40 -0
- package/lib/module/domain/groupChannelList/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelList/types.js +2 -0
- package/lib/module/domain/groupChannelList/types.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js +35 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsHeader.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js +56 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsInfo.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js +78 -0
- package/lib/module/domain/groupChannelSettings/component/GroupChannelSettingsMenu.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/index.js +6 -0
- package/lib/module/domain/groupChannelSettings/index.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js +24 -0
- package/lib/module/domain/groupChannelSettings/module/createGroupChannelSettingsModule.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js +127 -0
- package/lib/module/domain/groupChannelSettings/module/moduleContext.js.map +1 -0
- package/lib/module/domain/groupChannelSettings/types.js +2 -0
- package/lib/module/domain/groupChannelSettings/types.js.map +1 -0
- package/lib/module/domain/groupChannelUserList/types.js +2 -0
- package/lib/module/domain/groupChannelUserList/types.js.map +1 -0
- package/lib/module/domain/userList/component/UserListHeader.js +42 -0
- package/lib/module/domain/userList/component/UserListHeader.js.map +1 -0
- package/lib/module/domain/userList/component/UserListList.js +42 -0
- package/lib/module/domain/userList/component/UserListList.js.map +1 -0
- package/lib/module/domain/userList/component/UserListStatusEmpty.js +21 -0
- package/lib/module/domain/userList/component/UserListStatusEmpty.js.map +1 -0
- package/lib/module/domain/userList/component/UserListStatusError.js +25 -0
- package/lib/module/domain/userList/component/UserListStatusError.js.map +1 -0
- package/lib/module/domain/userList/component/UserListStatusLoading.js +21 -0
- package/lib/module/domain/userList/component/UserListStatusLoading.js.map +1 -0
- package/lib/module/domain/userList/index.js +8 -0
- package/lib/module/domain/userList/index.js.map +1 -0
- package/lib/module/domain/userList/module/createUserListModule.js +30 -0
- package/lib/module/domain/userList/module/createUserListModule.js.map +1 -0
- package/lib/module/domain/userList/module/moduleContext.js +34 -0
- package/lib/module/domain/userList/module/moduleContext.js.map +1 -0
- package/lib/module/domain/userList/types.js +2 -0
- package/lib/module/domain/userList/types.js.map +1 -0
- package/lib/module/fragments/createGroupChannelCreateFragment.js +124 -0
- package/lib/module/fragments/createGroupChannelCreateFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelFragment.js +132 -0
- package/lib/module/fragments/createGroupChannelFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelInviteFragment.js +118 -0
- package/lib/module/fragments/createGroupChannelInviteFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelListFragment.js +115 -0
- package/lib/module/fragments/createGroupChannelListFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelMembersFragment.js +114 -0
- package/lib/module/fragments/createGroupChannelMembersFragment.js.map +1 -0
- package/lib/module/fragments/createGroupChannelSettingsFragment.js +51 -0
- package/lib/module/fragments/createGroupChannelSettingsFragment.js.map +1 -0
- package/lib/module/hooks/useConnection.js +79 -0
- package/lib/module/hooks/useConnection.js.map +1 -0
- package/lib/module/hooks/useContext.js +20 -0
- package/lib/module/hooks/useContext.js.map +1 -0
- package/lib/module/hooks/usePushTokenRegistration.js +69 -0
- package/lib/module/hooks/usePushTokenRegistration.js.map +1 -0
- package/lib/module/index.js +57 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/localization/StringSet.en.js +7 -0
- package/lib/module/localization/StringSet.en.js.map +1 -0
- package/lib/module/localization/StringSet.type.js +173 -0
- package/lib/module/localization/StringSet.type.js.map +1 -0
- package/lib/module/platform/createClipboardService.expo.js +15 -0
- package/lib/module/platform/createClipboardService.expo.js.map +1 -0
- package/lib/module/platform/createClipboardService.native.js +15 -0
- package/lib/module/platform/createClipboardService.native.js.map +1 -0
- package/lib/module/platform/createFileService.expo.js +163 -0
- package/lib/module/platform/createFileService.expo.js.map +1 -0
- package/lib/module/platform/createFileService.native.js +237 -0
- package/lib/module/platform/createFileService.native.js.map +1 -0
- package/lib/module/platform/createNotificationService.expo.js +42 -0
- package/lib/module/platform/createNotificationService.expo.js.map +1 -0
- package/lib/module/platform/createNotificationService.native.js +57 -0
- package/lib/module/platform/createNotificationService.native.js.map +1 -0
- package/lib/module/platform/dynamicModule.js +103 -0
- package/lib/module/platform/dynamicModule.js.map +1 -0
- package/lib/module/platform/types.js +2 -0
- package/lib/module/platform/types.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/expoPermissionGranted.js +24 -0
- package/lib/module/utils/expoPermissionGranted.js.map +1 -0
- package/lib/module/utils/fileTypeGuard.js +18 -0
- package/lib/module/utils/fileTypeGuard.js.map +1 -0
- package/lib/module/utils/nativePermissionGranted.js +15 -0
- package/lib/module/utils/nativePermissionGranted.js.map +1 -0
- package/lib/module/version.js +3 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/__template__/component/__domain__Header.d.ts +3 -0
- package/lib/typescript/__template__/component/__domain__StatusEmpty.d.ts +2 -0
- package/lib/typescript/__template__/component/__domain__StatusLoading.d.ts +2 -0
- package/lib/typescript/__template__/component/__domain__View.d.ts +3 -0
- package/lib/typescript/__template__/create__domain__Fragment.d.ts +2 -0
- package/lib/typescript/__template__/index.d.ts +6 -0
- package/lib/typescript/__template__/module/create__domain__Module.d.ts +3 -0
- package/lib/typescript/__template__/module/moduleContext.d.ts +3 -0
- package/lib/typescript/__template__/types.d.ts +31 -0
- package/lib/typescript/src/InternalErrorBoundary.d.ts +19 -0
- package/lib/typescript/src/InternalLocalCacheStorage.d.ts +12 -0
- package/lib/typescript/src/SendbirdUIKitContainer.d.ts +41 -0
- package/lib/typescript/src/components/ChannelCover.d.ts +9 -0
- package/lib/typescript/src/components/ChatFlatList.d.ts +14 -0
- package/lib/typescript/src/components/MessageRenderer/AdminMessage/index.d.ts +5 -0
- package/lib/typescript/src/components/MessageRenderer/FileMessage/BaseFileMessage.d.ts +6 -0
- package/lib/typescript/src/components/MessageRenderer/FileMessage/ImageFileMessage.d.ts +3 -0
- package/lib/typescript/src/components/MessageRenderer/FileMessage/index.d.ts +6 -0
- package/lib/typescript/src/components/MessageRenderer/MessageContainer.d.ts +3 -0
- package/lib/typescript/src/components/MessageRenderer/MessageDateSeparator.d.ts +7 -0
- package/lib/typescript/src/components/MessageRenderer/MessageIncomingAvatar.d.ts +7 -0
- package/lib/typescript/src/components/MessageRenderer/MessageIncomingSenderName.d.ts +7 -0
- package/lib/typescript/src/components/MessageRenderer/MessageOutgoingStatus.d.ts +8 -0
- package/lib/typescript/src/components/MessageRenderer/MessageTime.d.ts +9 -0
- package/lib/typescript/src/components/MessageRenderer/UnknownMessage/index.d.ts +4 -0
- package/lib/typescript/src/components/MessageRenderer/UserMessage/BaseUserMessage.d.ts +3 -0
- package/lib/typescript/src/components/MessageRenderer/UserMessage/OpenGraphUserMessage.d.ts +7 -0
- package/lib/typescript/src/components/MessageRenderer/UserMessage/index.d.ts +6 -0
- package/lib/typescript/src/components/MessageRenderer/index.d.ts +23 -0
- package/lib/typescript/src/components/NewMessagesButton.d.ts +9 -0
- package/lib/typescript/src/components/ProviderLayout.d.ts +3 -0
- package/lib/typescript/src/components/ScrollToBottomButton.d.ts +7 -0
- package/lib/typescript/src/components/StatusComposition.d.ts +10 -0
- package/lib/typescript/src/components/TypedPlaceholder.d.ts +6 -0
- package/lib/typescript/src/components/UserActionBar.d.ts +11 -0
- package/lib/typescript/src/components/UserSelectableBar.d.ts +9 -0
- package/lib/typescript/src/constants.d.ts +1 -0
- package/lib/typescript/src/contexts/Localization.d.ts +11 -0
- package/lib/typescript/src/contexts/PlatformService.d.ts +10 -0
- package/lib/typescript/src/contexts/SendbirdChat.d.ts +24 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/EditInput.d.ts +10 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/SendInput.d.ts +8 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelInput/index.d.ts +9 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelMessageList.d.ts +36 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannel/component/GroupChannelStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannel/index.d.ts +7 -0
- package/lib/typescript/src/domain/groupChannel/module/createGroupChannelModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannel/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannel/types.d.ts +102 -0
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListList.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/groupChannelList/component/GroupChannelListTypeSelector.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelList/index.d.ts +7 -0
- package/lib/typescript/src/domain/groupChannelList/module/createGroupChannelListModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelList/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelList/types.d.ts +81 -0
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsHeader.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsInfo.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelSettings/component/GroupChannelSettingsMenu.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelSettings/index.d.ts +5 -0
- package/lib/typescript/src/domain/groupChannelSettings/module/createGroupChannelSettingsModule.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelSettings/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/groupChannelSettings/types.d.ts +45 -0
- package/lib/typescript/src/domain/groupChannelUserList/types.d.ts +42 -0
- package/lib/typescript/src/domain/userList/component/UserListHeader.d.ts +10 -0
- package/lib/typescript/src/domain/userList/component/UserListList.d.ts +11 -0
- package/lib/typescript/src/domain/userList/component/UserListStatusEmpty.d.ts +2 -0
- package/lib/typescript/src/domain/userList/component/UserListStatusError.d.ts +3 -0
- package/lib/typescript/src/domain/userList/component/UserListStatusLoading.d.ts +2 -0
- package/lib/typescript/src/domain/userList/index.d.ts +7 -0
- package/lib/typescript/src/domain/userList/module/createUserListModule.d.ts +3 -0
- package/lib/typescript/src/domain/userList/module/moduleContext.d.ts +3 -0
- package/lib/typescript/src/domain/userList/types.d.ts +58 -0
- package/lib/typescript/src/fragments/createGroupChannelCreateFragment.d.ts +4 -0
- package/lib/typescript/src/fragments/createGroupChannelFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createGroupChannelInviteFragment.d.ts +4 -0
- package/lib/typescript/src/fragments/createGroupChannelListFragment.d.ts +3 -0
- package/lib/typescript/src/fragments/createGroupChannelMembersFragment.d.ts +5 -0
- package/lib/typescript/src/fragments/createGroupChannelSettingsFragment.d.ts +3 -0
- package/lib/typescript/src/hooks/useConnection.d.ts +11 -0
- package/lib/typescript/src/hooks/useContext.d.ts +24 -0
- package/lib/typescript/src/hooks/usePushTokenRegistration.d.ts +5 -0
- package/lib/typescript/src/index.d.ts +50 -0
- package/lib/typescript/src/localization/StringSet.en.d.ts +2 -0
- package/lib/typescript/src/localization/StringSet.type.d.ts +157 -0
- package/lib/typescript/src/platform/createClipboardService.expo.d.ts +4 -0
- package/lib/typescript/src/platform/createClipboardService.native.d.ts +4 -0
- package/lib/typescript/src/platform/createFileService.expo.d.ts +12 -0
- package/lib/typescript/src/platform/createFileService.native.d.ts +14 -0
- package/lib/typescript/src/platform/createNotificationService.expo.d.ts +4 -0
- package/lib/typescript/src/platform/createNotificationService.native.d.ts +8 -0
- package/lib/typescript/src/platform/dynamicModule.d.ts +23 -0
- package/lib/typescript/src/platform/types.d.ts +47 -0
- package/lib/typescript/src/types.d.ts +20 -0
- package/lib/typescript/src/utils/expoPermissionGranted.d.ts +13 -0
- package/lib/typescript/src/utils/fileTypeGuard.d.ts +4 -0
- package/lib/typescript/src/utils/nativePermissionGranted.d.ts +3 -0
- package/lib/typescript/src/version.d.ts +2 -0
- package/package.json +5 -5
- package/src/version.ts +1 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import GroupChannelSettingsHeader from '../component/GroupChannelSettingsHeader';
|
|
2
|
+
import GroupChannelSettingsInfo from '../component/GroupChannelSettingsInfo';
|
|
3
|
+
import GroupChannelSettingsMenu from '../component/GroupChannelSettingsMenu';
|
|
4
|
+
import { GroupChannelSettingsContextsProvider } from './moduleContext';
|
|
5
|
+
|
|
6
|
+
const createGroupChannelSettingsModule = function () {
|
|
7
|
+
let {
|
|
8
|
+
Header = GroupChannelSettingsHeader,
|
|
9
|
+
Info = GroupChannelSettingsInfo,
|
|
10
|
+
Menu = GroupChannelSettingsMenu,
|
|
11
|
+
Provider = GroupChannelSettingsContextsProvider,
|
|
12
|
+
...module
|
|
13
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
14
|
+
return {
|
|
15
|
+
Header,
|
|
16
|
+
Info,
|
|
17
|
+
Menu,
|
|
18
|
+
Provider,
|
|
19
|
+
...module
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export default createGroupChannelSettingsModule;
|
|
24
|
+
//# sourceMappingURL=createGroupChannelSettingsModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["GroupChannelSettingsHeader","GroupChannelSettingsInfo","GroupChannelSettingsMenu","GroupChannelSettingsContextsProvider","createGroupChannelSettingsModule","Header","Info","Menu","Provider","module"],"sources":["createGroupChannelSettingsModule.tsx"],"sourcesContent":["import GroupChannelSettingsHeader from '../component/GroupChannelSettingsHeader';\nimport GroupChannelSettingsInfo from '../component/GroupChannelSettingsInfo';\nimport GroupChannelSettingsMenu from '../component/GroupChannelSettingsMenu';\nimport type { GroupChannelSettingsModule } from '../types';\nimport { GroupChannelSettingsContextsProvider } from './moduleContext';\n\nconst createGroupChannelSettingsModule = ({\n Header = GroupChannelSettingsHeader,\n Info = GroupChannelSettingsInfo,\n Menu = GroupChannelSettingsMenu,\n Provider = GroupChannelSettingsContextsProvider,\n ...module\n}: Partial<GroupChannelSettingsModule> = {}): GroupChannelSettingsModule => {\n return { Header, Info, Menu, Provider, ...module };\n};\n\nexport default createGroupChannelSettingsModule;\n"],"mappings":"AAAA,OAAOA,0BAAP,MAAuC,yCAAvC;AACA,OAAOC,wBAAP,MAAqC,uCAArC;AACA,OAAOC,wBAAP,MAAqC,uCAArC;AAEA,SAASC,oCAAT,QAAqD,iBAArD;;AAEA,MAAMC,gCAAgC,GAAG,YAMmC;EAAA,IANlC;IACxCC,MAAM,GAAGL,0BAD+B;IAExCM,IAAI,GAAGL,wBAFiC;IAGxCM,IAAI,GAAGL,wBAHiC;IAIxCM,QAAQ,GAAGL,oCAJ6B;IAKxC,GAAGM;EALqC,CAMkC,uEAAnC,EAAmC;EAC1E,OAAO;IAAEJ,MAAF;IAAUC,IAAV;IAAgBC,IAAhB;IAAsBC,QAAtB;IAAgC,GAAGC;EAAnC,CAAP;AACD,CARD;;AAUA,eAAeL,gCAAf"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import React, { createContext, useCallback } from 'react';
|
|
2
|
+
import { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';
|
|
3
|
+
import { useActionMenu, useBottomSheet, usePrompt, useToast } from '@sendbird/uikit-react-native-foundation';
|
|
4
|
+
import { NOOP, isDifferentChannel, useForceUpdate, useUniqId } from '@sendbird/uikit-utils';
|
|
5
|
+
import ProviderLayout from '../../../components/ProviderLayout';
|
|
6
|
+
import { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';
|
|
7
|
+
export const GroupChannelSettingsContexts = {
|
|
8
|
+
Fragment: /*#__PURE__*/createContext({
|
|
9
|
+
channel: {},
|
|
10
|
+
headerTitle: '',
|
|
11
|
+
headerRight: '',
|
|
12
|
+
onPressHeaderRight: NOOP
|
|
13
|
+
})
|
|
14
|
+
};
|
|
15
|
+
const HOOK_NAME = 'GroupChannelSettingsContextsProvider';
|
|
16
|
+
export const GroupChannelSettingsContextsProvider = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
children,
|
|
19
|
+
channel
|
|
20
|
+
} = _ref;
|
|
21
|
+
const uniqId = useUniqId(HOOK_NAME);
|
|
22
|
+
const forceUpdate = useForceUpdate();
|
|
23
|
+
const {
|
|
24
|
+
STRINGS
|
|
25
|
+
} = useLocalization();
|
|
26
|
+
const {
|
|
27
|
+
sdk
|
|
28
|
+
} = useSendbirdChat();
|
|
29
|
+
const {
|
|
30
|
+
fileService
|
|
31
|
+
} = usePlatformService();
|
|
32
|
+
const {
|
|
33
|
+
activeChannel,
|
|
34
|
+
setActiveChannel
|
|
35
|
+
} = useActiveGroupChannel(sdk, channel);
|
|
36
|
+
|
|
37
|
+
const onChannelChanged = channel => {
|
|
38
|
+
if (isDifferentChannel(channel, activeChannel) || !channel.isGroupChannel()) return;
|
|
39
|
+
setActiveChannel(channel);
|
|
40
|
+
forceUpdate();
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
useChannelHandler(sdk, `${HOOK_NAME}_${uniqId}`, {
|
|
44
|
+
onChannelChanged: onChannelChanged,
|
|
45
|
+
onChannelFrozen: onChannelChanged,
|
|
46
|
+
onChannelUnfrozen: onChannelChanged
|
|
47
|
+
}, [activeChannel]);
|
|
48
|
+
const toast = useToast();
|
|
49
|
+
const {
|
|
50
|
+
openSheet
|
|
51
|
+
} = useBottomSheet();
|
|
52
|
+
const {
|
|
53
|
+
openPrompt
|
|
54
|
+
} = usePrompt();
|
|
55
|
+
const {
|
|
56
|
+
openMenu
|
|
57
|
+
} = useActionMenu();
|
|
58
|
+
const updateChannel = useCallback(async params => {
|
|
59
|
+
const updatedChannel = await activeChannel.updateChannel(params);
|
|
60
|
+
setActiveChannel(updatedChannel);
|
|
61
|
+
forceUpdate();
|
|
62
|
+
}, [activeChannel]);
|
|
63
|
+
const changeChannelName = useCallback(() => {
|
|
64
|
+
openPrompt({
|
|
65
|
+
title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_TITLE,
|
|
66
|
+
submitLabel: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_OK,
|
|
67
|
+
placeholder: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER,
|
|
68
|
+
defaultValue: activeChannel.name,
|
|
69
|
+
onSubmit: async channelName => {
|
|
70
|
+
const params = new sdk.GroupChannelParams();
|
|
71
|
+
params.name = channelName;
|
|
72
|
+
await updateChannel(params);
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
}, [STRINGS, updateChannel, activeChannel.name]);
|
|
76
|
+
const changeChannelImage = useCallback(() => {
|
|
77
|
+
openMenu({
|
|
78
|
+
title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_TITLE,
|
|
79
|
+
menuItems: [{
|
|
80
|
+
title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_CAMERA,
|
|
81
|
+
onPress: async () => {
|
|
82
|
+
const file = await fileService.openCamera({
|
|
83
|
+
mediaType: 'photo',
|
|
84
|
+
onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error')
|
|
85
|
+
});
|
|
86
|
+
if (!file) return;
|
|
87
|
+
const params = new sdk.GroupChannelParams();
|
|
88
|
+
params.coverImage = file;
|
|
89
|
+
await updateChannel(params);
|
|
90
|
+
}
|
|
91
|
+
}, {
|
|
92
|
+
title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY,
|
|
93
|
+
onPress: async () => {
|
|
94
|
+
const files = await fileService.openMediaLibrary({
|
|
95
|
+
selectionLimit: 1,
|
|
96
|
+
mediaType: 'photo',
|
|
97
|
+
onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error')
|
|
98
|
+
});
|
|
99
|
+
if (!files || !files[0]) return;
|
|
100
|
+
const params = new sdk.GroupChannelParams();
|
|
101
|
+
params.coverImage = files[0];
|
|
102
|
+
await updateChannel(params);
|
|
103
|
+
}
|
|
104
|
+
}]
|
|
105
|
+
});
|
|
106
|
+
}, [STRINGS, updateChannel]);
|
|
107
|
+
const onPressHeaderRight = useCallback(() => {
|
|
108
|
+
openSheet({
|
|
109
|
+
sheetItems: [{
|
|
110
|
+
title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME,
|
|
111
|
+
onPress: changeChannelName
|
|
112
|
+
}, {
|
|
113
|
+
title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE,
|
|
114
|
+
onPress: changeChannelImage
|
|
115
|
+
}]
|
|
116
|
+
});
|
|
117
|
+
}, [STRINGS, changeChannelImage, changeChannelName]);
|
|
118
|
+
return /*#__PURE__*/React.createElement(ProviderLayout, null, /*#__PURE__*/React.createElement(GroupChannelSettingsContexts.Fragment.Provider, {
|
|
119
|
+
value: {
|
|
120
|
+
channel: activeChannel,
|
|
121
|
+
headerTitle: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_TITLE,
|
|
122
|
+
headerRight: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_RIGHT,
|
|
123
|
+
onPressHeaderRight
|
|
124
|
+
}
|
|
125
|
+
}, children));
|
|
126
|
+
};
|
|
127
|
+
//# sourceMappingURL=moduleContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createContext","useCallback","useActiveGroupChannel","useChannelHandler","useActionMenu","useBottomSheet","usePrompt","useToast","NOOP","isDifferentChannel","useForceUpdate","useUniqId","ProviderLayout","useLocalization","usePlatformService","useSendbirdChat","GroupChannelSettingsContexts","Fragment","channel","headerTitle","headerRight","onPressHeaderRight","HOOK_NAME","GroupChannelSettingsContextsProvider","children","uniqId","forceUpdate","STRINGS","sdk","fileService","activeChannel","setActiveChannel","onChannelChanged","isGroupChannel","onChannelFrozen","onChannelUnfrozen","toast","openSheet","openPrompt","openMenu","updateChannel","params","updatedChannel","changeChannelName","title","GROUP_CHANNEL_SETTINGS","DIALOG_CHANGE_NAME_PROMPT_TITLE","submitLabel","DIALOG_CHANGE_NAME_PROMPT_OK","placeholder","DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER","defaultValue","name","onSubmit","channelName","GroupChannelParams","changeChannelImage","DIALOG_CHANGE_IMAGE_MENU_TITLE","menuItems","DIALOG_CHANGE_IMAGE_MENU_CAMERA","onPress","file","openCamera","mediaType","onOpenFailureWithToastMessage","show","TOAST","OPEN_CAMERA_ERROR","coverImage","DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY","files","openMediaLibrary","selectionLimit","OPEN_PHOTO_LIBRARY_ERROR","sheetItems","DIALOG_CHANGE_NAME","DIALOG_CHANGE_IMAGE","HEADER_TITLE","HEADER_RIGHT"],"sources":["moduleContext.tsx"],"sourcesContent":["import React, { createContext, useCallback } from 'react';\n\nimport { useActiveGroupChannel, useChannelHandler } from '@sendbird/uikit-chat-hooks';\nimport { useActionMenu, useBottomSheet, usePrompt, useToast } from '@sendbird/uikit-react-native-foundation';\nimport {\n NOOP,\n SendbirdGroupChannel,\n SendbirdGroupChannelParams,\n SendbirdOpenChannel,\n isDifferentChannel,\n useForceUpdate,\n useUniqId,\n} from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport { useLocalization, usePlatformService, useSendbirdChat } from '../../../hooks/useContext';\nimport type { GroupChannelSettingsContextsType, GroupChannelSettingsModule } from '../types';\n\nexport const GroupChannelSettingsContexts: GroupChannelSettingsContextsType = {\n Fragment: createContext({\n channel: {} as SendbirdGroupChannel,\n headerTitle: '',\n headerRight: '',\n onPressHeaderRight: NOOP,\n }),\n};\n\nconst HOOK_NAME = 'GroupChannelSettingsContextsProvider';\nexport const GroupChannelSettingsContextsProvider: GroupChannelSettingsModule['Provider'] = ({ children, channel }) => {\n const uniqId = useUniqId(HOOK_NAME);\n const forceUpdate = useForceUpdate();\n const { STRINGS } = useLocalization();\n const { sdk } = useSendbirdChat();\n const { fileService } = usePlatformService();\n\n const { activeChannel, setActiveChannel } = useActiveGroupChannel(sdk, channel);\n\n const onChannelChanged = (channel: SendbirdGroupChannel | SendbirdOpenChannel) => {\n if (isDifferentChannel(channel, activeChannel) || !channel.isGroupChannel()) return;\n setActiveChannel(channel);\n forceUpdate();\n };\n\n useChannelHandler(\n sdk,\n `${HOOK_NAME}_${uniqId}`,\n {\n onChannelChanged: onChannelChanged,\n onChannelFrozen: onChannelChanged,\n onChannelUnfrozen: onChannelChanged,\n },\n [activeChannel],\n );\n\n const toast = useToast();\n const { openSheet } = useBottomSheet();\n const { openPrompt } = usePrompt();\n const { openMenu } = useActionMenu();\n\n const updateChannel = useCallback(\n async (params: SendbirdGroupChannelParams) => {\n const updatedChannel = await activeChannel.updateChannel(params);\n setActiveChannel(updatedChannel);\n forceUpdate();\n },\n [activeChannel],\n );\n\n const changeChannelName = useCallback(() => {\n openPrompt({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_TITLE,\n submitLabel: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_OK,\n placeholder: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME_PROMPT_PLACEHOLDER,\n defaultValue: activeChannel.name,\n onSubmit: async (channelName) => {\n const params = new sdk.GroupChannelParams();\n params.name = channelName;\n await updateChannel(params);\n },\n });\n }, [STRINGS, updateChannel, activeChannel.name]);\n\n const changeChannelImage = useCallback(() => {\n openMenu({\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_TITLE,\n menuItems: [\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_CAMERA,\n onPress: async () => {\n const file = await fileService.openCamera({\n mediaType: 'photo',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_CAMERA_ERROR, 'error'),\n });\n if (!file) return;\n\n const params = new sdk.GroupChannelParams();\n params.coverImage = file;\n await updateChannel(params);\n },\n },\n {\n title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE_MENU_PHOTO_LIBRARY,\n onPress: async () => {\n const files = await fileService.openMediaLibrary({\n selectionLimit: 1,\n mediaType: 'photo',\n onOpenFailureWithToastMessage: () => toast.show(STRINGS.TOAST.OPEN_PHOTO_LIBRARY_ERROR, 'error'),\n });\n if (!files || !files[0]) return;\n\n const params = new sdk.GroupChannelParams();\n params.coverImage = files[0];\n await updateChannel(params);\n },\n },\n ],\n });\n }, [STRINGS, updateChannel]);\n\n const onPressHeaderRight = useCallback(() => {\n openSheet({\n sheetItems: [\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_NAME, onPress: changeChannelName },\n { title: STRINGS.GROUP_CHANNEL_SETTINGS.DIALOG_CHANGE_IMAGE, onPress: changeChannelImage },\n ],\n });\n }, [STRINGS, changeChannelImage, changeChannelName]);\n\n return (\n <ProviderLayout>\n <GroupChannelSettingsContexts.Fragment.Provider\n value={{\n channel: activeChannel,\n headerTitle: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_TITLE,\n headerRight: STRINGS.GROUP_CHANNEL_SETTINGS.HEADER_RIGHT,\n onPressHeaderRight,\n }}\n >\n {children}\n </GroupChannelSettingsContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { MenuBarProps } from '@sendbird/uikit-react-native-foundation';\nimport type { SendbirdGroupChannel } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface GroupChannelSettingsProps {\n Fragment: {\n channel: GroupChannelSettingsProps['Provider']['channel'];\n onPressHeaderLeft: GroupChannelSettingsProps['Header']['onPressHeaderLeft'];\n onPressMenuMembers: GroupChannelSettingsProps['Menu']['onPressMenuMembers'];\n onPressMenuLeaveChannel: GroupChannelSettingsProps['Menu']['onPressMenuLeaveChannel'];\n menuItemsCreator?: GroupChannelSettingsProps['Menu']['menuItemsCreator'];\n };\n Header: {\n onPressHeaderLeft: () => void;\n };\n Info: {};\n Menu: {\n onPressMenuMembers: () => void;\n onPressMenuLeaveChannel: () => void;\n menuItemsCreator?: (defaultMenuItems: MenuBarProps[]) => MenuBarProps[];\n };\n Provider: {\n channel: SendbirdGroupChannel;\n };\n}\n\n/**\n * Internal context for GroupChannelSettings\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface GroupChannelSettingsContextsType {\n Fragment: React.Context<{\n channel: SendbirdGroupChannel;\n headerTitle: string;\n headerRight: string;\n onPressHeaderRight: () => void;\n }>;\n}\nexport interface GroupChannelSettingsModule {\n Provider: CommonComponent<GroupChannelSettingsProps['Provider']>;\n Header: CommonComponent<GroupChannelSettingsProps['Header']>;\n Info: CommonComponent<GroupChannelSettingsProps['Info']>;\n Menu: CommonComponent<GroupChannelSettingsProps['Menu']>;\n}\n\nexport type GroupChannelSettingsFragment = CommonComponent<GroupChannelSettingsProps['Fragment']>;\n"],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { UseUserListOptions } from '@sendbird/uikit-chat-hooks';\nimport type { SendbirdGroupChannel, SendbirdGroupChannelParams } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\nimport type { GroupChannelType } from '../groupChannelList/types';\nimport type { UserListProps } from '../userList/types';\n\ntype UserIds = string[];\n\nexport interface GroupChannelCreateProps<User> {\n Fragment: {\n onPressHeaderLeft: () => void;\n onCreateChannel: (channel: SendbirdGroupChannel) => void;\n channelType?: GroupChannelType;\n userIdsGenerator?: (users: User[]) => UserIds;\n onBeforeCreateChannel?: (\n params: SendbirdGroupChannelParams,\n users: User[],\n ) => SendbirdGroupChannelParams | Promise<SendbirdGroupChannelParams>;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelCreateFragment<User> = CommonComponent<GroupChannelCreateProps<User>['Fragment']>;\n\nexport interface GroupChannelInviteProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onInviteMembers: (channel: SendbirdGroupChannel) => void;\n userIdsGenerator?: (users: User[]) => UserIds;\n queryCreator?: UseUserListOptions<User>['queryCreator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n };\n}\nexport type GroupChannelInviteFragment<User> = CommonComponent<GroupChannelInviteProps<User>['Fragment']>;\n\nexport interface GroupChannelMembersProps<User> {\n Fragment: {\n channel: SendbirdGroupChannel;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: () => void;\n sortComparator?: UseUserListOptions<User>['sortComparator'];\n renderUser?: UserListProps<User>['List']['renderUser'];\n };\n}\nexport type GroupChannelMembersFragment<User> = CommonComponent<GroupChannelMembersProps<User>['Fragment']>;\n"],"mappings":""}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { useContext } from 'react';
|
|
2
|
+
import { Icon, Text, useHeaderStyle, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';
|
|
3
|
+
import { UserListContexts } from '../module/moduleContext';
|
|
4
|
+
|
|
5
|
+
const UserListHeader = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
onPressHeaderLeft,
|
|
8
|
+
onPressHeaderRight,
|
|
9
|
+
right,
|
|
10
|
+
left,
|
|
11
|
+
shouldActivateHeaderRight = selectedUsers => selectedUsers.length > 0
|
|
12
|
+
} = _ref;
|
|
13
|
+
const {
|
|
14
|
+
headerTitle,
|
|
15
|
+
headerRight
|
|
16
|
+
} = useContext(UserListContexts.Fragment);
|
|
17
|
+
const {
|
|
18
|
+
selectedUsers
|
|
19
|
+
} = useContext(UserListContexts.List);
|
|
20
|
+
const {
|
|
21
|
+
HeaderComponent
|
|
22
|
+
} = useHeaderStyle();
|
|
23
|
+
const {
|
|
24
|
+
colors
|
|
25
|
+
} = useUIKitTheme();
|
|
26
|
+
const isActive = shouldActivateHeaderRight(selectedUsers);
|
|
27
|
+
return /*#__PURE__*/React.createElement(HeaderComponent, {
|
|
28
|
+
title: headerTitle,
|
|
29
|
+
right: right ?? /*#__PURE__*/React.createElement(Text, {
|
|
30
|
+
button: true,
|
|
31
|
+
color: isActive ? colors.primary : colors.onBackground04
|
|
32
|
+
}, headerRight),
|
|
33
|
+
onPressRight: isActive ? () => onPressHeaderRight(selectedUsers) : undefined,
|
|
34
|
+
left: left ?? /*#__PURE__*/React.createElement(Icon, {
|
|
35
|
+
icon: 'arrow-left'
|
|
36
|
+
}),
|
|
37
|
+
onPressLeft: onPressHeaderLeft
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default UserListHeader;
|
|
42
|
+
//# sourceMappingURL=UserListHeader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useContext","Icon","Text","useHeaderStyle","useUIKitTheme","UserListContexts","UserListHeader","onPressHeaderLeft","onPressHeaderRight","right","left","shouldActivateHeaderRight","selectedUsers","length","headerTitle","headerRight","Fragment","List","HeaderComponent","colors","isActive","primary","onBackground04","undefined"],"sources":["UserListHeader.tsx"],"sourcesContent":["import React, { useContext } from 'react';\n\nimport { Icon, Text, useHeaderStyle, useUIKitTheme } from '@sendbird/uikit-react-native-foundation';\n\nimport { UserListContexts } from '../module/moduleContext';\nimport type { UserListContextsType, UserListProps } from '../types';\n\nconst UserListHeader = <T,>({\n onPressHeaderLeft,\n onPressHeaderRight,\n right,\n left,\n shouldActivateHeaderRight = (selectedUsers) => selectedUsers.length > 0,\n}: UserListProps<T>['Header']) => {\n const { headerTitle, headerRight } = useContext(UserListContexts.Fragment);\n const { selectedUsers } = useContext(UserListContexts.List as UserListContextsType<T>['List']);\n const { HeaderComponent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n\n const isActive = shouldActivateHeaderRight(selectedUsers);\n\n return (\n <HeaderComponent\n title={headerTitle}\n right={\n right ?? (\n <Text button color={isActive ? colors.primary : colors.onBackground04}>\n {headerRight}\n </Text>\n )\n }\n onPressRight={isActive ? () => onPressHeaderRight(selectedUsers) : undefined}\n left={left ?? <Icon icon={'arrow-left'} />}\n onPressLeft={onPressHeaderLeft}\n />\n );\n};\n\nexport default UserListHeader;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AAEA,SAASC,IAAT,EAAeC,IAAf,EAAqBC,cAArB,EAAqCC,aAArC,QAA0D,yCAA1D;AAEA,SAASC,gBAAT,QAAiC,yBAAjC;;AAGA,MAAMC,cAAc,GAAG,QAMW;EAAA,IANN;IAC1BC,iBAD0B;IAE1BC,kBAF0B;IAG1BC,KAH0B;IAI1BC,IAJ0B;IAK1BC,yBAAyB,GAAIC,aAAD,IAAmBA,aAAa,CAACC,MAAd,GAAuB;EAL5C,CAMM;EAChC,MAAM;IAAEC,WAAF;IAAeC;EAAf,IAA+Bf,UAAU,CAACK,gBAAgB,CAACW,QAAlB,CAA/C;EACA,MAAM;IAAEJ;EAAF,IAAoBZ,UAAU,CAACK,gBAAgB,CAACY,IAAlB,CAApC;EACA,MAAM;IAAEC;EAAF,IAAsBf,cAAc,EAA1C;EACA,MAAM;IAAEgB;EAAF,IAAaf,aAAa,EAAhC;EAEA,MAAMgB,QAAQ,GAAGT,yBAAyB,CAACC,aAAD,CAA1C;EAEA,oBACE,oBAAC,eAAD;IACE,KAAK,EAAEE,WADT;IAEE,KAAK,EACHL,KAAK,iBACH,oBAAC,IAAD;MAAM,MAAM,MAAZ;MAAa,KAAK,EAAEW,QAAQ,GAAGD,MAAM,CAACE,OAAV,GAAoBF,MAAM,CAACG;IAAvD,GACGP,WADH,CAJN;IASE,YAAY,EAAEK,QAAQ,GAAG,MAAMZ,kBAAkB,CAACI,aAAD,CAA3B,GAA6CW,SATrE;IAUE,IAAI,EAAEb,IAAI,iBAAI,oBAAC,IAAD;MAAM,IAAI,EAAE;IAAZ,EAVhB;IAWE,WAAW,EAAEH;EAXf,EADF;AAeD,CA7BD;;AA+BA,eAAeD,cAAf"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { useCallback, useContext } from 'react';
|
|
2
|
+
import { FlatList } from 'react-native';
|
|
3
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
4
|
+
import { UserListContexts } from '../module/moduleContext';
|
|
5
|
+
|
|
6
|
+
const UserListList = _ref => {
|
|
7
|
+
let {
|
|
8
|
+
users,
|
|
9
|
+
onRefresh,
|
|
10
|
+
refreshing,
|
|
11
|
+
renderUser,
|
|
12
|
+
onLoadNext,
|
|
13
|
+
ListEmptyComponent
|
|
14
|
+
} = _ref;
|
|
15
|
+
const context = useContext(UserListContexts.List);
|
|
16
|
+
const renderItem = useCallback(_ref2 => {
|
|
17
|
+
let {
|
|
18
|
+
item
|
|
19
|
+
} = _ref2;
|
|
20
|
+
return renderUser === null || renderUser === void 0 ? void 0 : renderUser(item, context.selectedUsers, context.setSelectedUsers);
|
|
21
|
+
}, [renderUser, context.selectedUsers, context.setSelectedUsers]);
|
|
22
|
+
const {
|
|
23
|
+
left,
|
|
24
|
+
right
|
|
25
|
+
} = useSafeAreaInsets();
|
|
26
|
+
return /*#__PURE__*/React.createElement(FlatList, {
|
|
27
|
+
data: users,
|
|
28
|
+
refreshing: refreshing,
|
|
29
|
+
onRefresh: onRefresh,
|
|
30
|
+
renderItem: renderItem,
|
|
31
|
+
onEndReached: onLoadNext,
|
|
32
|
+
contentContainerStyle: {
|
|
33
|
+
paddingLeft: left,
|
|
34
|
+
paddingRight: right,
|
|
35
|
+
flexGrow: 1
|
|
36
|
+
},
|
|
37
|
+
ListEmptyComponent: ListEmptyComponent
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export default UserListList;
|
|
42
|
+
//# sourceMappingURL=UserListList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useContext","FlatList","useSafeAreaInsets","UserListContexts","UserListList","users","onRefresh","refreshing","renderUser","onLoadNext","ListEmptyComponent","context","List","renderItem","item","selectedUsers","setSelectedUsers","left","right","paddingLeft","paddingRight","flexGrow"],"sources":["UserListList.tsx"],"sourcesContent":["import React, { useCallback, useContext } from 'react';\nimport { FlatList, ListRenderItem } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { UserListContexts } from '../module/moduleContext';\nimport type { UserListContextsType, UserListProps } from '../types';\n\nconst UserListList = <T,>({\n users,\n onRefresh,\n refreshing,\n renderUser,\n onLoadNext,\n ListEmptyComponent,\n}: UserListProps<T>['List']) => {\n const context = useContext(UserListContexts.List as UserListContextsType<T>['List']);\n const renderItem: ListRenderItem<T> = useCallback(\n ({ item }) => renderUser?.(item, context.selectedUsers, context.setSelectedUsers),\n [renderUser, context.selectedUsers, context.setSelectedUsers],\n );\n const { left, right } = useSafeAreaInsets();\n\n return (\n <FlatList\n data={users}\n refreshing={refreshing}\n onRefresh={onRefresh}\n renderItem={renderItem}\n onEndReached={onLoadNext}\n contentContainerStyle={{ paddingLeft: left, paddingRight: right, flexGrow: 1 }}\n ListEmptyComponent={ListEmptyComponent}\n />\n );\n};\n\nexport default UserListList;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,UAA7B,QAA+C,OAA/C;AACA,SAASC,QAAT,QAAyC,cAAzC;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAEA,SAASC,gBAAT,QAAiC,yBAAjC;;AAGA,MAAMC,YAAY,GAAG,QAOW;EAAA,IAPN;IACxBC,KADwB;IAExBC,SAFwB;IAGxBC,UAHwB;IAIxBC,UAJwB;IAKxBC,UALwB;IAMxBC;EANwB,CAOM;EAC9B,MAAMC,OAAO,GAAGX,UAAU,CAACG,gBAAgB,CAACS,IAAlB,CAA1B;EACA,MAAMC,UAA6B,GAAGd,WAAW,CAC/C;IAAA,IAAC;MAAEe;IAAF,CAAD;IAAA,OAAcN,UAAd,aAAcA,UAAd,uBAAcA,UAAU,CAAGM,IAAH,EAASH,OAAO,CAACI,aAAjB,EAAgCJ,OAAO,CAACK,gBAAxC,CAAxB;EAAA,CAD+C,EAE/C,CAACR,UAAD,EAAaG,OAAO,CAACI,aAArB,EAAoCJ,OAAO,CAACK,gBAA5C,CAF+C,CAAjD;EAIA,MAAM;IAAEC,IAAF;IAAQC;EAAR,IAAkBhB,iBAAiB,EAAzC;EAEA,oBACE,oBAAC,QAAD;IACE,IAAI,EAAEG,KADR;IAEE,UAAU,EAAEE,UAFd;IAGE,SAAS,EAAED,SAHb;IAIE,UAAU,EAAEO,UAJd;IAKE,YAAY,EAAEJ,UALhB;IAME,qBAAqB,EAAE;MAAEU,WAAW,EAAEF,IAAf;MAAqBG,YAAY,EAAEF,KAAnC;MAA0CG,QAAQ,EAAE;IAApD,CANzB;IAOE,kBAAkB,EAAEX;EAPtB,EADF;AAWD,CA1BD;;AA4BA,eAAeN,YAAf"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import TypedPlaceholder from '../../../components/TypedPlaceholder';
|
|
4
|
+
|
|
5
|
+
const UserListStatusEmpty = () => {
|
|
6
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
7
|
+
style: styles.container
|
|
8
|
+
}, /*#__PURE__*/React.createElement(TypedPlaceholder, {
|
|
9
|
+
type: 'no-users'
|
|
10
|
+
}));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const styles = StyleSheet.create({
|
|
14
|
+
container: {
|
|
15
|
+
flex: 1,
|
|
16
|
+
justifyContent: 'center',
|
|
17
|
+
alignItems: 'center'
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
export default UserListStatusEmpty;
|
|
21
|
+
//# sourceMappingURL=UserListStatusEmpty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusEmpty","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusEmpty.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\n\nconst UserListStatusEmpty = () => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'no-users'} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusEmpty;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAEA,MAAMC,mBAAmB,GAAG,MAAM;EAChC,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE;EAAxB,EADF,CADF;AAKD,CAND;;AAQA,MAAMD,MAAM,GAAGJ,UAAU,CAACM,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeN,mBAAf"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import TypedPlaceholder from '../../../components/TypedPlaceholder';
|
|
4
|
+
|
|
5
|
+
const UserListStatusLoading = _ref => {
|
|
6
|
+
let {
|
|
7
|
+
onPressRetry
|
|
8
|
+
} = _ref;
|
|
9
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
10
|
+
style: styles.container
|
|
11
|
+
}, /*#__PURE__*/React.createElement(TypedPlaceholder, {
|
|
12
|
+
type: 'error-wrong',
|
|
13
|
+
onPressRetry: onPressRetry
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const styles = StyleSheet.create({
|
|
18
|
+
container: {
|
|
19
|
+
flex: 1,
|
|
20
|
+
justifyContent: 'center',
|
|
21
|
+
alignItems: 'center'
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
export default UserListStatusLoading;
|
|
25
|
+
//# sourceMappingURL=UserListStatusError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusLoading","onPressRetry","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusError.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\nimport type { UserListModule } from '../types';\n\nconst UserListStatusLoading: UserListModule<unknown>['StatusError'] = ({ onPressRetry }) => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'error-wrong'} onPressRetry={onPressRetry} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusLoading;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAGA,MAAMC,qBAA6D,GAAG,QAAsB;EAAA,IAArB;IAAEC;EAAF,CAAqB;EAC1F,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE,aAAxB;IAAuC,YAAY,EAAEF;EAArD,EADF,CADF;AAKD,CAND;;AAQA,MAAMC,MAAM,GAAGL,UAAU,CAACO,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeP,qBAAf"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { StyleSheet, View } from 'react-native';
|
|
3
|
+
import TypedPlaceholder from '../../../components/TypedPlaceholder';
|
|
4
|
+
|
|
5
|
+
const UserListStatusLoading = () => {
|
|
6
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
7
|
+
style: styles.container
|
|
8
|
+
}, /*#__PURE__*/React.createElement(TypedPlaceholder, {
|
|
9
|
+
type: 'loading'
|
|
10
|
+
}));
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const styles = StyleSheet.create({
|
|
14
|
+
container: {
|
|
15
|
+
flex: 1,
|
|
16
|
+
justifyContent: 'center',
|
|
17
|
+
alignItems: 'center'
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
export default UserListStatusLoading;
|
|
21
|
+
//# sourceMappingURL=UserListStatusLoading.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","TypedPlaceholder","UserListStatusLoading","styles","container","create","flex","justifyContent","alignItems"],"sources":["UserListStatusLoading.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\nimport TypedPlaceholder from '../../../components/TypedPlaceholder';\n\nconst UserListStatusLoading = () => {\n return (\n <View style={styles.container}>\n <TypedPlaceholder type={'loading'} />\n </View>\n );\n};\n\nconst styles = StyleSheet.create({\n container: { flex: 1, justifyContent: 'center', alignItems: 'center' },\n});\n\nexport default UserListStatusLoading;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,UAAT,EAAqBC,IAArB,QAAiC,cAAjC;AAEA,OAAOC,gBAAP,MAA6B,sCAA7B;;AAEA,MAAMC,qBAAqB,GAAG,MAAM;EAClC,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAEC,MAAM,CAACC;EAApB,gBACE,oBAAC,gBAAD;IAAkB,IAAI,EAAE;EAAxB,EADF,CADF;AAKD,CAND;;AAQA,MAAMD,MAAM,GAAGJ,UAAU,CAACM,MAAX,CAAkB;EAC/BD,SAAS,EAAE;IAAEE,IAAI,EAAE,CAAR;IAAWC,cAAc,EAAE,QAA3B;IAAqCC,UAAU,EAAE;EAAjD;AADoB,CAAlB,CAAf;AAIA,eAAeN,qBAAf"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { default as UserListList } from './component/UserListList';
|
|
2
|
+
export { default as UserListHeader } from './component/UserListHeader';
|
|
3
|
+
export { default as UserListStatusEmpty } from './component/UserListStatusEmpty';
|
|
4
|
+
export { default as UserListStatusError } from './component/UserListStatusError';
|
|
5
|
+
export { default as UserListStatusLoading } from './component/UserListStatusLoading';
|
|
6
|
+
export { default as createUserListModule } from './module/createUserListModule';
|
|
7
|
+
export { UserListContextsProvider, UserListContexts } from './module/moduleContext';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["default","UserListList","UserListHeader","UserListStatusEmpty","UserListStatusError","UserListStatusLoading","createUserListModule","UserListContextsProvider","UserListContexts"],"sources":["index.ts"],"sourcesContent":["export { default as UserListList } from './component/UserListList';\nexport { default as UserListHeader } from './component/UserListHeader';\nexport { default as UserListStatusEmpty } from './component/UserListStatusEmpty';\nexport { default as UserListStatusError } from './component/UserListStatusError';\nexport { default as UserListStatusLoading } from './component/UserListStatusLoading';\nexport { default as createUserListModule } from './module/createUserListModule';\nexport { UserListContextsProvider, UserListContexts } from './module/moduleContext';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,YAApB,QAAwC,0BAAxC;AACA,SAASD,OAAO,IAAIE,cAApB,QAA0C,4BAA1C;AACA,SAASF,OAAO,IAAIG,mBAApB,QAA+C,iCAA/C;AACA,SAASH,OAAO,IAAII,mBAApB,QAA+C,iCAA/C;AACA,SAASJ,OAAO,IAAIK,qBAApB,QAAiD,mCAAjD;AACA,SAASL,OAAO,IAAIM,oBAApB,QAAgD,+BAAhD;AACA,SAASC,wBAAT,EAAmCC,gBAAnC,QAA2D,wBAA3D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import UserListHeader from '../component/UserListHeader';
|
|
2
|
+
import UserListList from '../component/UserListList';
|
|
3
|
+
import UserListStatusEmpty from '../component/UserListStatusEmpty';
|
|
4
|
+
import UserListStatusError from '../component/UserListStatusError';
|
|
5
|
+
import UserListStatusLoading from '../component/UserListStatusLoading';
|
|
6
|
+
import { UserListContextsProvider } from './moduleContext';
|
|
7
|
+
|
|
8
|
+
const createUserListModule = function () {
|
|
9
|
+
let {
|
|
10
|
+
Header = UserListHeader,
|
|
11
|
+
List = UserListList,
|
|
12
|
+
StatusLoading = UserListStatusLoading,
|
|
13
|
+
StatusEmpty = UserListStatusEmpty,
|
|
14
|
+
StatusError = UserListStatusError,
|
|
15
|
+
Provider = UserListContextsProvider,
|
|
16
|
+
...module
|
|
17
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
18
|
+
return {
|
|
19
|
+
Header,
|
|
20
|
+
List,
|
|
21
|
+
StatusLoading,
|
|
22
|
+
StatusEmpty,
|
|
23
|
+
StatusError,
|
|
24
|
+
Provider,
|
|
25
|
+
...module
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
export default createUserListModule;
|
|
30
|
+
//# sourceMappingURL=createUserListModule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["UserListHeader","UserListList","UserListStatusEmpty","UserListStatusError","UserListStatusLoading","UserListContextsProvider","createUserListModule","Header","List","StatusLoading","StatusEmpty","StatusError","Provider","module"],"sources":["createUserListModule.tsx"],"sourcesContent":["import UserListHeader from '../component/UserListHeader';\nimport UserListList from '../component/UserListList';\nimport UserListStatusEmpty from '../component/UserListStatusEmpty';\nimport UserListStatusError from '../component/UserListStatusError';\nimport UserListStatusLoading from '../component/UserListStatusLoading';\nimport type { UserListModule } from '../types';\nimport { UserListContextsProvider } from './moduleContext';\n\nconst createUserListModule = <T,>({\n Header = UserListHeader,\n List = UserListList,\n StatusLoading = UserListStatusLoading,\n StatusEmpty = UserListStatusEmpty,\n StatusError = UserListStatusError,\n Provider = UserListContextsProvider,\n ...module\n}: Partial<UserListModule<T>> = {}): UserListModule<T> => {\n return { Header, List, StatusLoading, StatusEmpty, StatusError, Provider, ...module };\n};\n\nexport default createUserListModule;\n"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,6BAA3B;AACA,OAAOC,YAAP,MAAyB,2BAAzB;AACA,OAAOC,mBAAP,MAAgC,kCAAhC;AACA,OAAOC,mBAAP,MAAgC,kCAAhC;AACA,OAAOC,qBAAP,MAAkC,oCAAlC;AAEA,SAASC,wBAAT,QAAyC,iBAAzC;;AAEA,MAAMC,oBAAoB,GAAG,YAQ6B;EAAA,IARxB;IAChCC,MAAM,GAAGP,cADuB;IAEhCQ,IAAI,GAAGP,YAFyB;IAGhCQ,aAAa,GAAGL,qBAHgB;IAIhCM,WAAW,GAAGR,mBAJkB;IAKhCS,WAAW,GAAGR,mBALkB;IAMhCS,QAAQ,GAAGP,wBANqB;IAOhC,GAAGQ;EAP6B,CAQwB,uEAA1B,EAA0B;EACxD,OAAO;IAAEN,MAAF;IAAUC,IAAV;IAAgBC,aAAhB;IAA+BC,WAA/B;IAA4CC,WAA5C;IAAyDC,QAAzD;IAAmE,GAAGC;EAAtE,CAAP;AACD,CAVD;;AAYA,eAAeP,oBAAf"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import React, { createContext, useState } from 'react';
|
|
3
|
+
import { NOOP } from '@sendbird/uikit-utils';
|
|
4
|
+
import ProviderLayout from '../../../components/ProviderLayout';
|
|
5
|
+
export const UserListContexts = {
|
|
6
|
+
Fragment: /*#__PURE__*/createContext({
|
|
7
|
+
headerTitle: '',
|
|
8
|
+
headerRight: ''
|
|
9
|
+
}),
|
|
10
|
+
List: /*#__PURE__*/createContext({
|
|
11
|
+
selectedUsers: [],
|
|
12
|
+
setSelectedUsers: NOOP
|
|
13
|
+
})
|
|
14
|
+
};
|
|
15
|
+
export const UserListContextsProvider = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
children,
|
|
18
|
+
headerTitle,
|
|
19
|
+
headerRight
|
|
20
|
+
} = _ref;
|
|
21
|
+
const [selectedUsers, setSelectedUsers] = useState([]);
|
|
22
|
+
return /*#__PURE__*/React.createElement(ProviderLayout, null, /*#__PURE__*/React.createElement(UserListContexts.Fragment.Provider, {
|
|
23
|
+
value: {
|
|
24
|
+
headerTitle,
|
|
25
|
+
headerRight: headerRight(selectedUsers)
|
|
26
|
+
}
|
|
27
|
+
}, /*#__PURE__*/React.createElement(UserListContexts.List.Provider, {
|
|
28
|
+
value: {
|
|
29
|
+
selectedUsers,
|
|
30
|
+
setSelectedUsers
|
|
31
|
+
}
|
|
32
|
+
}, children)));
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=moduleContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","createContext","useState","NOOP","ProviderLayout","UserListContexts","Fragment","headerTitle","headerRight","List","selectedUsers","setSelectedUsers","UserListContextsProvider","children"],"sources":["moduleContext.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { createContext, useState } from 'react';\n\nimport type { ContextValue } from '@sendbird/uikit-utils';\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport ProviderLayout from '../../../components/ProviderLayout';\nimport type { UserListContextsType, UserListModule } from '../types';\n\nexport const UserListContexts: UserListContextsType<unknown> = {\n Fragment: createContext({\n headerTitle: '',\n headerRight: '',\n }),\n List: createContext<ContextValue<UserListContextsType<unknown>['List']>>({\n selectedUsers: [],\n setSelectedUsers: NOOP,\n }),\n};\nexport const UserListContextsProvider: UserListModule<any>['Provider'] = ({ children, headerTitle, headerRight }) => {\n const [selectedUsers, setSelectedUsers] = useState<unknown[]>([]);\n\n return (\n <ProviderLayout>\n <UserListContexts.Fragment.Provider value={{ headerTitle, headerRight: headerRight(selectedUsers) }}>\n <UserListContexts.List.Provider value={{ selectedUsers, setSelectedUsers }}>\n {children}\n </UserListContexts.List.Provider>\n </UserListContexts.Fragment.Provider>\n </ProviderLayout>\n );\n};\n"],"mappings":"AAAA;AACA,OAAOA,KAAP,IAAgBC,aAAhB,EAA+BC,QAA/B,QAA+C,OAA/C;AAGA,SAASC,IAAT,QAAqB,uBAArB;AAEA,OAAOC,cAAP,MAA2B,oCAA3B;AAGA,OAAO,MAAMC,gBAA+C,GAAG;EAC7DC,QAAQ,eAAEL,aAAa,CAAC;IACtBM,WAAW,EAAE,EADS;IAEtBC,WAAW,EAAE;EAFS,CAAD,CADsC;EAK7DC,IAAI,eAAER,aAAa,CAAsD;IACvES,aAAa,EAAE,EADwD;IAEvEC,gBAAgB,EAAER;EAFqD,CAAtD;AAL0C,CAAxD;AAUP,OAAO,MAAMS,wBAAyD,GAAG,QAA4C;EAAA,IAA3C;IAAEC,QAAF;IAAYN,WAAZ;IAAyBC;EAAzB,CAA2C;EACnH,MAAM,CAACE,aAAD,EAAgBC,gBAAhB,IAAoCT,QAAQ,CAAY,EAAZ,CAAlD;EAEA,oBACE,oBAAC,cAAD,qBACE,oBAAC,gBAAD,CAAkB,QAAlB,CAA2B,QAA3B;IAAoC,KAAK,EAAE;MAAEK,WAAF;MAAeC,WAAW,EAAEA,WAAW,CAACE,aAAD;IAAvC;EAA3C,gBACE,oBAAC,gBAAD,CAAkB,IAAlB,CAAuB,QAAvB;IAAgC,KAAK,EAAE;MAAEA,aAAF;MAAiBC;IAAjB;EAAvC,GACGE,QADH,CADF,CADF,CADF;AASD,CAZM"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { ContextValue } from '@sendbird/uikit-utils';\n\nimport type { CommonComponent } from '../../types';\n\nexport interface UserListProps<User> {\n /** Props for `UserListModule.Header` **/\n Header: {\n right?: React.ReactElement;\n left?: React.ReactElement;\n onPressHeaderLeft: () => void;\n onPressHeaderRight: (selectedUsers: User[]) => Promise<void>;\n shouldActivateHeaderRight?: (selectedUsers: User[]) => boolean;\n };\n /** Props for `UserListModule.List` **/\n List: {\n /** User list from SendbirdChat SDK or Custom query {@link Fragment.queryCreator} **/\n users: User[];\n /** Render user component **/\n renderUser: (\n user: User,\n selectedUsers: ContextValue<UserListContextsType<User>['List']>['selectedUsers'],\n setSelectedUsers: ContextValue<UserListContextsType<User>['List']>['setSelectedUsers'],\n ) => React.ReactElement | null;\n /** Load next user list **/\n onLoadNext: () => Promise<void>;\n /** Refresh user list **/\n onRefresh?: () => Promise<void>;\n /** Refreshing state **/\n refreshing?: boolean;\n /** List empty component **/\n ListEmptyComponent?: React.ReactElement;\n };\n /** Props for `UserListModule.Provider` **/\n Provider: {\n headerTitle: string;\n headerRight: (selectedUsers: Array<User>) => string;\n };\n}\n\n/**\n * Internal context for UserList\n * For example, the developer can create a custom header\n * with getting data from the domain context\n * */\nexport interface UserListContextsType<User> {\n Fragment: React.Context<{\n headerTitle: string;\n headerRight: string;\n }>;\n List: React.Context<{\n selectedUsers: User[];\n setSelectedUsers: React.Dispatch<React.SetStateAction<User[]>>;\n }>;\n}\n\nexport interface UserListModule<User> {\n Provider: CommonComponent<UserListProps<User>['Provider']>;\n Header: CommonComponent<UserListProps<User>['Header']>;\n List: CommonComponent<UserListProps<User>['List']>;\n StatusEmpty: CommonComponent;\n StatusLoading: CommonComponent;\n StatusError: CommonComponent<{ onPressRetry: () => void }>;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
import { TouchableOpacity } from 'react-native';
|
|
3
|
+
import { useUserList } from '@sendbird/uikit-chat-hooks';
|
|
4
|
+
import { Logger, PASS } from '@sendbird/uikit-utils';
|
|
5
|
+
import StatusComposition from '../components/StatusComposition';
|
|
6
|
+
import UserSelectableBar from '../components/UserSelectableBar';
|
|
7
|
+
import createUserListModule from '../domain/userList/module/createUserListModule';
|
|
8
|
+
import { useLocalization, useSendbirdChat } from '../hooks/useContext';
|
|
9
|
+
|
|
10
|
+
const defaultUserIdsGenerator = users => {
|
|
11
|
+
const userIds = users.map(user => {
|
|
12
|
+
// @ts-ignore
|
|
13
|
+
return user.userId;
|
|
14
|
+
}).filter(u => Boolean(u));
|
|
15
|
+
|
|
16
|
+
if (userIds.length === 0) {
|
|
17
|
+
Logger.warn('GroupChannelCreateFragment: Couldn\'t find user ids! if you provide "queryCreator", please provide "userIdsGenerator" as well');
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return userIds;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
const createGroupChannelCreateFragment = initModule => {
|
|
24
|
+
const UserListModule = createUserListModule(initModule);
|
|
25
|
+
return _ref => {
|
|
26
|
+
let {
|
|
27
|
+
userIdsGenerator = defaultUserIdsGenerator,
|
|
28
|
+
onPressHeaderLeft,
|
|
29
|
+
onBeforeCreateChannel = PASS,
|
|
30
|
+
onCreateChannel,
|
|
31
|
+
sortComparator,
|
|
32
|
+
queryCreator,
|
|
33
|
+
channelType = 'GROUP',
|
|
34
|
+
renderUser
|
|
35
|
+
} = _ref;
|
|
36
|
+
const {
|
|
37
|
+
sdk,
|
|
38
|
+
currentUser
|
|
39
|
+
} = useSendbirdChat();
|
|
40
|
+
const {
|
|
41
|
+
STRINGS
|
|
42
|
+
} = useLocalization();
|
|
43
|
+
const {
|
|
44
|
+
users,
|
|
45
|
+
refreshing,
|
|
46
|
+
loading,
|
|
47
|
+
error,
|
|
48
|
+
refresh,
|
|
49
|
+
next
|
|
50
|
+
} = useUserList(sdk, {
|
|
51
|
+
queryCreator,
|
|
52
|
+
sortComparator
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
const _renderUser = useCallback((user, selectedUsers, setSelectedUsers) => {
|
|
56
|
+
if (queryCreator && !renderUser) {
|
|
57
|
+
throw new Error('You should provide "renderUser" when providing "queryCreator"');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (renderUser) return renderUser(user, selectedUsers, setSelectedUsers);
|
|
61
|
+
const sbUser = user;
|
|
62
|
+
const sbSelectedUsers = selectedUsers;
|
|
63
|
+
const sbSetSelectedUsers = setSelectedUsers;
|
|
64
|
+
const isMe = sbUser.userId === (currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId);
|
|
65
|
+
if (isMe) return null;
|
|
66
|
+
const userIdx = sbSelectedUsers.findIndex(u => u.userId === sbUser.userId);
|
|
67
|
+
const isSelected = userIdx > -1;
|
|
68
|
+
return /*#__PURE__*/React.createElement(TouchableOpacity, {
|
|
69
|
+
activeOpacity: 0.7,
|
|
70
|
+
onPress: () => {
|
|
71
|
+
sbSetSelectedUsers(_ref2 => {
|
|
72
|
+
let [...draft] = _ref2;
|
|
73
|
+
if (isSelected) draft.splice(userIdx, 1);else draft.push(sbUser);
|
|
74
|
+
return draft;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}, /*#__PURE__*/React.createElement(UserSelectableBar, {
|
|
78
|
+
uri: sbUser.profileUrl,
|
|
79
|
+
name: sbUser.nickname || STRINGS.LABELS.USER_NO_NAME,
|
|
80
|
+
selected: isSelected,
|
|
81
|
+
disabled: false
|
|
82
|
+
}));
|
|
83
|
+
}, [renderUser, queryCreator]);
|
|
84
|
+
|
|
85
|
+
return /*#__PURE__*/React.createElement(UserListModule.Provider, {
|
|
86
|
+
headerRight: selectedUsers => STRINGS.GROUP_CHANNEL_CREATE.HEADER_RIGHT({
|
|
87
|
+
selectedUsers
|
|
88
|
+
}),
|
|
89
|
+
headerTitle: STRINGS.GROUP_CHANNEL_CREATE.HEADER_TITLE
|
|
90
|
+
}, /*#__PURE__*/React.createElement(UserListModule.Header, {
|
|
91
|
+
onPressHeaderLeft: onPressHeaderLeft,
|
|
92
|
+
onPressHeaderRight: async users => {
|
|
93
|
+
const params = new sdk.GroupChannelParams();
|
|
94
|
+
if (channelType === 'BROADCAST') params.isBroadcast = true;
|
|
95
|
+
if (channelType === 'SUPER_GROUP') params.isSuper = true;
|
|
96
|
+
if (currentUser) params.operatorUserIds = [currentUser.userId];
|
|
97
|
+
params.addUserIds(userIdsGenerator(users));
|
|
98
|
+
params.name = '';
|
|
99
|
+
params.coverUrl = '';
|
|
100
|
+
params.isDistinct = false;
|
|
101
|
+
const processedParams = await onBeforeCreateChannel(params, users);
|
|
102
|
+
const channel = await sdk.GroupChannel.createChannel(processedParams);
|
|
103
|
+
onCreateChannel(channel);
|
|
104
|
+
}
|
|
105
|
+
}), /*#__PURE__*/React.createElement(StatusComposition, {
|
|
106
|
+
loading: loading,
|
|
107
|
+
error: Boolean(error),
|
|
108
|
+
LoadingComponent: /*#__PURE__*/React.createElement(UserListModule.StatusLoading, null),
|
|
109
|
+
ErrorComponent: /*#__PURE__*/React.createElement(UserListModule.StatusError, {
|
|
110
|
+
onPressRetry: () => refresh()
|
|
111
|
+
})
|
|
112
|
+
}, /*#__PURE__*/React.createElement(UserListModule.List, {
|
|
113
|
+
onLoadNext: next,
|
|
114
|
+
users: users,
|
|
115
|
+
renderUser: _renderUser,
|
|
116
|
+
onRefresh: refresh,
|
|
117
|
+
refreshing: refreshing,
|
|
118
|
+
ListEmptyComponent: /*#__PURE__*/React.createElement(UserListModule.StatusEmpty, null)
|
|
119
|
+
})));
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
export default createGroupChannelCreateFragment;
|
|
124
|
+
//# sourceMappingURL=createGroupChannelCreateFragment.js.map
|