@gathertown/uikit-react-native
Version:
Sendbird UIKit for React Native: A feature-rich and customizable chat UI kit with messaging, channel management, and user authentication.
75 lines (74 loc) • 3.42 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _uikitChatHooks = require("@gathertown/uikit-chat-hooks");
var _uikitUtils = require("@gathertown/uikit-utils");
var _StatusComposition = _interopRequireDefault(require("../components/StatusComposition"));
var _GroupChannelPreviewContainer = _interopRequireDefault(require("../containers/GroupChannelPreviewContainer"));
var _createGroupChannelListModule = _interopRequireDefault(require("../domain/groupChannelList/module/createGroupChannelListModule"));
var _useContext = require("../hooks/useContext");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const createGroupChannelListFragment = initModule => {
const GroupChannelListModule = (0, _createGroupChannelListModule.default)(initModule);
return _ref => {
let {
onPressChannel,
onPressCreateChannel,
collectionCreator,
renderGroupChannelPreview,
skipTypeSelection = false,
flatListProps = {},
menuItemCreator = _uikitUtils.PASS
} = _ref;
const {
sdk,
currentUser,
sbOptions,
markAsDeliveredWithChannel
} = (0, _useContext.useSendbirdChat)();
const {
groupChannels,
next,
loading
} = (0, _uikitChatHooks.useGroupChannelList)(sdk, currentUser === null || currentUser === void 0 ? void 0 : currentUser.userId, {
collectionCreator,
enableCollectionWithoutLocalCache: true
});
if (sbOptions.appInfo.deliveryReceiptEnabled) {
(0, _uikitUtils.useAppState)('change', status => {
if (status === 'active') groupChannels.forEach(markAsDeliveredWithChannel);
});
}
const _renderGroupChannelPreview = (0, _uikitUtils.useFreshCallback)(props => {
if (renderGroupChannelPreview) return renderGroupChannelPreview(props);
return /*#__PURE__*/_react.default.createElement(_GroupChannelPreviewContainer.default, props);
});
const isChannelTypeAvailable = sbOptions.appInfo.broadcastChannelEnabled || sbOptions.appInfo.superGroupChannelEnabled;
return /*#__PURE__*/_react.default.createElement(GroupChannelListModule.Provider, null, /*#__PURE__*/_react.default.createElement(GroupChannelListModule.Header, null), /*#__PURE__*/_react.default.createElement(_StatusComposition.default, {
loading: loading,
LoadingComponent: /*#__PURE__*/_react.default.createElement(GroupChannelListModule.StatusLoading, null)
}, /*#__PURE__*/_react.default.createElement(GroupChannelListModule.List, {
onPressChannel: onPressChannel,
menuItemCreator: menuItemCreator,
renderGroupChannelPreview: _renderGroupChannelPreview,
groupChannels: groupChannels,
onLoadNext: next,
flatListProps: {
ListEmptyComponent: /*#__PURE__*/_react.default.createElement(GroupChannelListModule.StatusEmpty, null),
contentContainerStyle: {
flexGrow: 1
},
...flatListProps
}
})), /*#__PURE__*/_react.default.createElement(GroupChannelListModule.TypeSelector, {
skipTypeSelection: isChannelTypeAvailable ? skipTypeSelection : true,
onSelectType: onPressCreateChannel
}));
};
};
var _default = createGroupChannelListFragment;
exports.default = _default;
//# sourceMappingURL=createGroupChannelListFragment.js.map