stream-chat-react 10.0.0-theming-v2.3 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser.full-bundle.js +216 -202
- package/dist/browser.full-bundle.js.map +1 -1
- package/dist/browser.full-bundle.min.js +3 -3
- package/dist/browser.full-bundle.min.js.map +1 -1
- package/dist/components/Attachment/AttachmentActions.d.ts.map +1 -1
- package/dist/components/Attachment/AttachmentActions.js +1 -1
- package/dist/components/Attachment/AttachmentContainer.js +2 -2
- package/dist/components/Channel/Channel.d.ts.map +1 -1
- package/dist/components/Channel/Channel.js +6 -1
- package/dist/components/ChannelList/ChannelList.d.ts +3 -9
- package/dist/components/ChannelList/ChannelList.d.ts.map +1 -1
- package/dist/components/ChannelList/ChannelList.js +24 -26
- package/dist/components/ChannelSearch/ChannelSearch.d.ts +6 -3
- package/dist/components/ChannelSearch/ChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/ChannelSearch.js +19 -2
- package/dist/components/ChannelSearch/SearchBar.js +1 -1
- package/dist/components/ChannelSearch/SearchInput.d.ts +3 -1
- package/dist/components/ChannelSearch/SearchInput.d.ts.map +1 -1
- package/dist/components/ChannelSearch/SearchInput.js +2 -2
- package/dist/components/ChannelSearch/SearchResults.js +1 -2
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts +9 -7
- package/dist/components/ChannelSearch/hooks/useChannelSearch.d.ts.map +1 -1
- package/dist/components/ChannelSearch/hooks/useChannelSearch.js +23 -29
- package/dist/components/MessageActions/MessageActionsBox.js +1 -1
- package/dist/components/MessageInput/CooldownTimer.d.ts +7 -0
- package/dist/components/MessageInput/CooldownTimer.d.ts.map +1 -0
- package/dist/components/MessageInput/CooldownTimer.js +17 -0
- package/dist/components/MessageInput/MessageInputFlat.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputFlat.js +1 -1
- package/dist/components/MessageInput/MessageInputSmall.d.ts.map +1 -1
- package/dist/components/MessageInput/MessageInputSmall.js +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts +0 -5
- package/dist/components/MessageInput/hooks/useCooldownTimer.d.ts.map +1 -1
- package/dist/components/MessageInput/hooks/useCooldownTimer.js +1 -17
- package/dist/components/MessageInput/index.d.ts +1 -0
- package/dist/components/MessageInput/index.d.ts.map +1 -1
- package/dist/components/MessageInput/index.js +1 -0
- package/dist/context/ChannelStateContext.d.ts +1 -1
- package/dist/context/ComponentContext.d.ts +1 -1
- package/dist/context/ComponentContext.d.ts.map +1 -1
- package/dist/css/index.css +1 -1
- package/dist/css/index.css.map +1 -1
- package/dist/css/v2/index.css +1 -1
- package/dist/css/v2/index.css.map +1 -1
- package/dist/css/v2/index.layout.css +1 -1
- package/dist/css/v2/index.layout.css.map +1 -1
- package/dist/index.cjs.js +214 -200
- package/dist/index.cjs.js.map +1 -1
- package/dist/scss/Attachment.scss +45 -2
- package/dist/scss/Gallery.scss +12 -6
- package/dist/scss/Message.scss +2 -1
- package/dist/scss/v2/AttachmentList/AttachmentList-layout.scss +72 -46
- package/dist/scss/v2/Autocomplete/Autocomplete-layout.scss +2 -0
- package/dist/version.d.ts +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentActions.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/AttachmentActions.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AttachmentActions.d.ts","sourceRoot":"","sources":["../../../src/components/Attachment/AttachmentActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,oBAAY,sBAAsB,CAChC,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,UAAU,CAAC,kBAAkB,CAAC,GAAG;IACnC,wBAAwB;IACxB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,+HAA+H;IAC/H,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,aAAa,CAAC,EAAE,uBAAuB,CAAC;CACzC,CAAC;AAmCF;;GAEG;AACH,eAAO,MAAM,iBAAiB,sJAES,CAAC"}
|
|
@@ -4,7 +4,7 @@ var UnMemoizedAttachmentActions = function (props) {
|
|
|
4
4
|
var handleActionClick = function (event, name, value) { return actionHandler === null || actionHandler === void 0 ? void 0 : actionHandler(name, value, event); };
|
|
5
5
|
return (React.createElement("div", { className: 'str-chat__message-attachment-actions' },
|
|
6
6
|
React.createElement("div", { className: 'str-chat__message-attachment-actions-form' },
|
|
7
|
-
React.createElement("span",
|
|
7
|
+
React.createElement("span", null, text),
|
|
8
8
|
actions.map(function (action) { return (React.createElement("button", { className: "str-chat__message-attachment-actions-button str-chat__message-attachment-actions-button--".concat(action.style), "data-testid": "".concat(action.name), "data-value": action.value, key: "".concat(id, "-").concat(action.value), onClick: function (event) { return handleActionClick(event, action.name, action.value); } }, action.text)); }))));
|
|
9
9
|
};
|
|
10
10
|
/**
|
|
@@ -46,7 +46,7 @@ export var AttachmentActionsContainer = function (_a) {
|
|
|
46
46
|
var actionHandler = _a.actionHandler, attachment = _a.attachment, _c = _a.AttachmentActions, AttachmentActions = _c === void 0 ? DefaultAttachmentActions : _c;
|
|
47
47
|
if (!((_b = attachment.actions) === null || _b === void 0 ? void 0 : _b.length))
|
|
48
48
|
return null;
|
|
49
|
-
return (React.createElement(AttachmentActions, __assign({}, attachment, { actionHandler:
|
|
49
|
+
return (React.createElement(AttachmentActions, __assign({}, attachment, { actionHandler: actionHandler, actions: attachment.actions, id: attachment.id || '', text: attachment.text || '' })));
|
|
50
50
|
};
|
|
51
51
|
export var GalleryContainer = function (_a) {
|
|
52
52
|
var attachment = _a.attachment, _b = _a.Gallery, Gallery = _b === void 0 ? DefaultGallery : _b;
|
|
@@ -70,7 +70,7 @@ export var CardContainer = function (props) {
|
|
|
70
70
|
var componentType = 'card';
|
|
71
71
|
if (attachment.actions && attachment.actions.length) {
|
|
72
72
|
return (React.createElement(AttachmentWithinContainer, { attachment: attachment, componentType: componentType },
|
|
73
|
-
React.createElement("div", { className: 'str-chat__attachment'
|
|
73
|
+
React.createElement("div", { className: 'str-chat__attachment' },
|
|
74
74
|
React.createElement(Card, __assign({}, attachment)),
|
|
75
75
|
React.createElement(AttachmentActionsContainer, __assign({}, props)))));
|
|
76
76
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/components/Channel/Channel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -362,6 +362,7 @@ var ChannelInner = function (props) {
|
|
|
362
362
|
});
|
|
363
363
|
});
|
|
364
364
|
};
|
|
365
|
+
var clearHighlightedMessageTimeoutId = useRef(null);
|
|
365
366
|
var jumpToMessage = function (messageId, messageLimit) {
|
|
366
367
|
if (messageLimit === void 0) { messageLimit = 100; }
|
|
367
368
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -381,7 +382,11 @@ var ChannelInner = function (props) {
|
|
|
381
382
|
highlightedMessageId: messageId,
|
|
382
383
|
type: 'jumpToMessageFinished',
|
|
383
384
|
});
|
|
384
|
-
|
|
385
|
+
if (clearHighlightedMessageTimeoutId.current) {
|
|
386
|
+
clearTimeout(clearHighlightedMessageTimeoutId.current);
|
|
387
|
+
}
|
|
388
|
+
clearHighlightedMessageTimeoutId.current = setTimeout(function () {
|
|
389
|
+
clearHighlightedMessageTimeoutId.current = null;
|
|
385
390
|
dispatch({ type: 'clearHighlightedMessage' });
|
|
386
391
|
}, 500);
|
|
387
392
|
return [2 /*return*/];
|
|
@@ -2,9 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { ChannelListMessengerProps } from './ChannelListMessenger';
|
|
3
3
|
import { AvatarProps } from '../Avatar/Avatar';
|
|
4
4
|
import { ChannelPreviewUIComponentProps } from '../ChannelPreview/ChannelPreview';
|
|
5
|
-
import {
|
|
6
|
-
import { ChannelSearchParams } from '../ChannelSearch/hooks/useChannelSearch';
|
|
7
|
-
import { AdditionalSearchBarProps, SearchBarProps } from '../ChannelSearch/SearchBar';
|
|
5
|
+
import { ChannelSearchProps } from '../ChannelSearch/ChannelSearch';
|
|
8
6
|
import { ChatDownProps } from '../ChatDown/ChatDown';
|
|
9
7
|
import { EmptyStateIndicatorProps } from '../EmptyStateIndicator';
|
|
10
8
|
import { LoadMorePaginatorProps } from '../LoadMore/LoadMorePaginator';
|
|
@@ -12,7 +10,7 @@ import type { Channel, ChannelFilters, ChannelOptions, ChannelSort, Event } from
|
|
|
12
10
|
import type { DefaultStreamChatGenerics, PaginatorProps } from '../../types/types';
|
|
13
11
|
export declare type ChannelListProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
14
12
|
/** Additional props for underlying ChannelSearch component and channel search controller, [available props](https://getstream.io/chat/docs/sdk/react/utility-components/channel_search/#props) */
|
|
15
|
-
additionalChannelSearchProps?:
|
|
13
|
+
additionalChannelSearchProps?: Omit<ChannelSearchProps<StreamChatGenerics>, 'setChannels'>;
|
|
16
14
|
/**
|
|
17
15
|
* When the client receives `message.new`, `notification.message_new`, and `notification.added_to_channel` events, we automatically
|
|
18
16
|
* push that channel to the top of the list. If the channel doesn't currently exist in the list, we grab the channel from
|
|
@@ -24,9 +22,7 @@ export declare type ChannelListProps<StreamChatGenerics extends DefaultStreamCha
|
|
|
24
22
|
Avatar?: React.ComponentType<AvatarProps>;
|
|
25
23
|
/** Optional function to filter channels prior to loading in the DOM. Do not use any complex or async logic that would delay the loading of the ChannelList. We recommend using a pure function with array methods like filter/sort/reduce. */
|
|
26
24
|
channelRenderFilterFn?: (channels: Array<Channel<StreamChatGenerics>>) => Array<Channel<StreamChatGenerics>>;
|
|
27
|
-
/**
|
|
28
|
-
* Custom UI component to display search results, defaults to and accepts same props as: [ChannelSearch](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelSearch/ChannelSearch.tsx)
|
|
29
|
-
*/
|
|
25
|
+
/** Custom UI component to display search results, defaults to and accepts same props as: [ChannelSearch](https://github.com/GetStream/stream-chat-react/blob/master/src/components/ChannelSearch/ChannelSearch.tsx) */
|
|
30
26
|
ChannelSearch?: React.ComponentType<ChannelSearchProps<StreamChatGenerics>>;
|
|
31
27
|
/** Set a channel (with this ID) to active and manually move it to the top of the list */
|
|
32
28
|
customActiveChannel?: string;
|
|
@@ -66,8 +62,6 @@ export declare type ChannelListProps<StreamChatGenerics extends DefaultStreamCha
|
|
|
66
62
|
Preview?: React.ComponentType<ChannelPreviewUIComponentProps<StreamChatGenerics>>;
|
|
67
63
|
/** Function to override the default behavior when rendering channels, so this function is called instead of rendering the Preview directly */
|
|
68
64
|
renderChannels?: (channels: Channel<StreamChatGenerics>[], channelPreview: (item: Channel<StreamChatGenerics>) => React.ReactNode) => React.ReactNode;
|
|
69
|
-
/** Custom UI component to display the search bar with text input */
|
|
70
|
-
SearchBar?: React.ComponentType<SearchBarProps>;
|
|
71
65
|
/** If true, sends the list's currently loaded channels to the `List` component as the `loadedChannels` prop */
|
|
72
66
|
sendChannelsToList?: boolean;
|
|
73
67
|
/** Last channel will be set as active channel if true, defaults to true */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelList.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelList/ChannelList.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ChannelList.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelList/ChannelList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -45,18 +45,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
45
45
|
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
|
-
|
|
49
|
-
var t = {};
|
|
50
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
51
|
-
t[p] = s[p];
|
|
52
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
53
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
54
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
55
|
-
t[p[i]] = s[p[i]];
|
|
56
|
-
}
|
|
57
|
-
return t;
|
|
58
|
-
};
|
|
59
|
-
import React, { useEffect, useRef, useState } from 'react';
|
|
48
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
60
49
|
import clsx from 'clsx';
|
|
61
50
|
import { ChannelListMessenger } from './ChannelListMessenger';
|
|
62
51
|
import { useChannelDeletedListener } from './hooks/useChannelDeletedListener';
|
|
@@ -76,9 +65,6 @@ import { MAX_QUERY_CHANNELS_LIMIT, moveChannelUp } from './utils';
|
|
|
76
65
|
import { Avatar as DefaultAvatar } from '../Avatar/Avatar';
|
|
77
66
|
import { ChannelPreview } from '../ChannelPreview/ChannelPreview';
|
|
78
67
|
import { ChannelSearch as DefaultChannelSearch, } from '../ChannelSearch/ChannelSearch';
|
|
79
|
-
import { useChannelSearch } from '../ChannelSearch/hooks/useChannelSearch';
|
|
80
|
-
import { SearchBar as DefaultSearchBar, } from '../ChannelSearch/SearchBar';
|
|
81
|
-
import { SearchResults } from '../ChannelSearch/SearchResults';
|
|
82
68
|
import { ChatDown } from '../ChatDown/ChatDown';
|
|
83
69
|
import { EmptyStateIndicator as DefaultEmptyStateIndicator, } from '../EmptyStateIndicator';
|
|
84
70
|
import { LoadingChannels } from '../Loading/LoadingChannels';
|
|
@@ -88,11 +74,11 @@ var DEFAULT_FILTERS = {};
|
|
|
88
74
|
var DEFAULT_OPTIONS = {};
|
|
89
75
|
var DEFAULT_SORT = {};
|
|
90
76
|
var UnMemoizedChannelList = function (props) {
|
|
91
|
-
var additionalChannelSearchProps = props.additionalChannelSearchProps, _a = props.Avatar, Avatar = _a === void 0 ? DefaultAvatar : _a, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _b = props.ChannelSearch, ChannelSearch = _b === void 0 ? DefaultChannelSearch : _b, customActiveChannel = props.customActiveChannel, _c = props.EmptyStateIndicator, EmptyStateIndicator = _c === void 0 ? DefaultEmptyStateIndicator : _c, filters = props.filters, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? ChatDown : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannels : _e, _f = props.List, List = _f === void 0 ? ChannelListMessenger : _f, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _g = props.Paginator, Paginator = _g === void 0 ? LoadMorePaginator : _g, Preview = props.Preview, renderChannels = props.renderChannels, _h = props.
|
|
92
|
-
var
|
|
93
|
-
var _q = useChatContext('ChannelList'), channel = _q.channel, channelsQueryState = _q.channelsQueryState, client = _q.client, closeMobileNav = _q.closeMobileNav, customClasses = _q.customClasses, _r = _q.navOpen, navOpen = _r === void 0 ? false : _r, setActiveChannel = _q.setActiveChannel, theme = _q.theme, themeVersion = _q.themeVersion, useImageFlagEmojisOnWindows = _q.useImageFlagEmojisOnWindows;
|
|
77
|
+
var additionalChannelSearchProps = props.additionalChannelSearchProps, _a = props.Avatar, Avatar = _a === void 0 ? DefaultAvatar : _a, allowNewMessagesFromUnfilteredChannels = props.allowNewMessagesFromUnfilteredChannels, channelRenderFilterFn = props.channelRenderFilterFn, _b = props.ChannelSearch, ChannelSearch = _b === void 0 ? DefaultChannelSearch : _b, customActiveChannel = props.customActiveChannel, _c = props.EmptyStateIndicator, EmptyStateIndicator = _c === void 0 ? DefaultEmptyStateIndicator : _c, filters = props.filters, _d = props.LoadingErrorIndicator, LoadingErrorIndicator = _d === void 0 ? ChatDown : _d, _e = props.LoadingIndicator, LoadingIndicator = _e === void 0 ? LoadingChannels : _e, _f = props.List, List = _f === void 0 ? ChannelListMessenger : _f, lockChannelOrder = props.lockChannelOrder, onAddedToChannel = props.onAddedToChannel, onChannelDeleted = props.onChannelDeleted, onChannelHidden = props.onChannelHidden, onChannelTruncated = props.onChannelTruncated, onChannelUpdated = props.onChannelUpdated, onChannelVisible = props.onChannelVisible, onMessageNew = props.onMessageNew, onRemovedFromChannel = props.onRemovedFromChannel, options = props.options, _g = props.Paginator, Paginator = _g === void 0 ? LoadMorePaginator : _g, Preview = props.Preview, renderChannels = props.renderChannels, _h = props.sendChannelsToList, sendChannelsToList = _h === void 0 ? false : _h, _j = props.setActiveChannelOnMount, setActiveChannelOnMount = _j === void 0 ? true : _j, _k = props.showChannelSearch, showChannelSearch = _k === void 0 ? false : _k, _l = props.sort, sort = _l === void 0 ? DEFAULT_SORT : _l, _m = props.watchers, watchers = _m === void 0 ? {} : _m;
|
|
78
|
+
var _o = useChatContext('ChannelList'), channel = _o.channel, channelsQueryState = _o.channelsQueryState, client = _o.client, closeMobileNav = _o.closeMobileNav, customClasses = _o.customClasses, _p = _o.navOpen, navOpen = _p === void 0 ? false : _p, setActiveChannel = _o.setActiveChannel, theme = _o.theme, useImageFlagEmojisOnWindows = _o.useImageFlagEmojisOnWindows;
|
|
94
79
|
var channelListRef = useRef(null);
|
|
95
|
-
var
|
|
80
|
+
var _q = useState(0), channelUpdateCount = _q[0], setChannelUpdateCount = _q[1];
|
|
81
|
+
var _r = useState(false), searchActive = _r[0], setSearchActive = _r[1];
|
|
96
82
|
/**
|
|
97
83
|
* Set a channel with id {customActiveChannel} as active and move it to the top of the list.
|
|
98
84
|
* If customActiveChannel prop is absent, then set the first channel in list as active channel.
|
|
@@ -137,9 +123,22 @@ var UnMemoizedChannelList = function (props) {
|
|
|
137
123
|
* force a re-render. Incrementing this dummy variable ensures the channel previews update.
|
|
138
124
|
*/
|
|
139
125
|
var forceUpdate = function () { return setChannelUpdateCount(function (count) { return count + 1; }); };
|
|
140
|
-
var
|
|
141
|
-
|
|
142
|
-
|
|
126
|
+
var onSearch = useCallback(function (event) {
|
|
127
|
+
var _a;
|
|
128
|
+
if (!event.target.value) {
|
|
129
|
+
setSearchActive(false);
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
setSearchActive(true);
|
|
133
|
+
}
|
|
134
|
+
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearch) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps, event);
|
|
135
|
+
}, []);
|
|
136
|
+
var onSearchExit = useCallback(function () {
|
|
137
|
+
var _a;
|
|
138
|
+
setSearchActive(false);
|
|
139
|
+
(_a = additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.onSearchExit) === null || _a === void 0 ? void 0 : _a.call(additionalChannelSearchProps);
|
|
140
|
+
}, []);
|
|
141
|
+
var _s = usePaginatedChannels(client, filters || DEFAULT_FILTERS, sort || DEFAULT_SORT, options || DEFAULT_OPTIONS, activeChannelHandler), channels = _s.channels, hasNextPage = _s.hasNextPage, loadNextPage = _s.loadNextPage, setChannels = _s.setChannels;
|
|
143
142
|
var loadedChannels = channelRenderFilterFn ? channelRenderFilterFn(channels) : channels;
|
|
144
143
|
useMobileNavigation(channelListRef, navOpen, closeMobileNav);
|
|
145
144
|
useMessageNewListener(setChannels, lockChannelOrder, allowNewMessagesFromUnfilteredChannels);
|
|
@@ -184,12 +183,11 @@ var UnMemoizedChannelList = function (props) {
|
|
|
184
183
|
'str-chat--windows-flags': useImageFlagEmojisOnWindows && navigator.userAgent.match(/Win/),
|
|
185
184
|
'str-chat-channel-list--open': navOpen,
|
|
186
185
|
});
|
|
187
|
-
var
|
|
186
|
+
var showChannelList = !searchActive || (additionalChannelSearchProps === null || additionalChannelSearchProps === void 0 ? void 0 : additionalChannelSearchProps.popupResults);
|
|
188
187
|
return (React.createElement(React.Fragment, null,
|
|
189
188
|
React.createElement("div", { className: className, ref: channelListRef },
|
|
190
|
-
showChannelSearch &&
|
|
191
|
-
|
|
192
|
-
query && showSearchV2 ? (React.createElement(SearchResults, { results: results, SearchEmpty: SearchEmpty, searching: searching, SearchLoading: SearchLoading, SearchResultItem: SearchResultItem, SearchResultsHeader: SearchResultsHeader, SearchResultsList: SearchResultsList, selectResult: selectResult })) : (React.createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: channelsQueryState.queryInProgress === 'reload', LoadingErrorIndicator: LoadingErrorIndicator, LoadingIndicator: LoadingIndicator, setChannels: setChannels }, !(loadedChannels === null || loadedChannels === void 0 ? void 0 : loadedChannels.length) ? (React.createElement(EmptyStateIndicator, { listType: 'channel' })) : (React.createElement(Paginator, { hasNextPage: hasNextPage, loadNextPage: loadNextPage, refreshing: channelsQueryState.queryInProgress === 'load-more' }, renderChannels
|
|
189
|
+
showChannelSearch && (React.createElement(ChannelSearch, __assign({ onSearch: onSearch, onSearchExit: onSearchExit, setChannels: setChannels }, additionalChannelSearchProps))),
|
|
190
|
+
showChannelList && (React.createElement(List, { error: channelsQueryState.error, loadedChannels: sendChannelsToList ? loadedChannels : undefined, loading: channelsQueryState.queryInProgress === 'reload', LoadingErrorIndicator: LoadingErrorIndicator, LoadingIndicator: LoadingIndicator, setChannels: setChannels }, !(loadedChannels === null || loadedChannels === void 0 ? void 0 : loadedChannels.length) ? (React.createElement(EmptyStateIndicator, { listType: 'channel' })) : (React.createElement(Paginator, { hasNextPage: hasNextPage, loadNextPage: loadNextPage, refreshing: channelsQueryState.queryInProgress === 'load-more' }, renderChannels
|
|
193
191
|
? renderChannels(loadedChannels, renderChannel)
|
|
194
192
|
: loadedChannels.map(function (channel) { return renderChannel(channel); }))))))));
|
|
195
193
|
};
|
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { ChannelSearchControllerParams } from './hooks/useChannelSearch';
|
|
2
3
|
import { AdditionalSearchInputProps, SearchInputProps } from './SearchInput';
|
|
3
4
|
import { AdditionalSearchResultsProps } from './SearchResults';
|
|
4
5
|
import type { DefaultStreamChatGenerics } from '../../types/types';
|
|
5
|
-
import type {
|
|
6
|
-
export declare type AdditionalChannelSearchProps
|
|
6
|
+
import type { AdditionalSearchBarProps, SearchBarProps } from './SearchBar';
|
|
7
|
+
export declare type AdditionalChannelSearchProps = {
|
|
8
|
+
/** Custom UI component to display the search bar with text input */
|
|
9
|
+
SearchBar?: React.ComponentType<SearchBarProps>;
|
|
7
10
|
/** Custom UI component to display the search text input */
|
|
8
11
|
SearchInput?: React.ComponentType<SearchInputProps>;
|
|
9
12
|
};
|
|
10
|
-
export declare type ChannelSearchProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> =
|
|
13
|
+
export declare type ChannelSearchProps<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = AdditionalSearchBarProps & AdditionalSearchInputProps & AdditionalSearchResultsProps<StreamChatGenerics> & AdditionalChannelSearchProps & ChannelSearchControllerParams<StreamChatGenerics>;
|
|
11
14
|
/**
|
|
12
15
|
* The ChannelSearch component makes a query users call and displays the results in a list.
|
|
13
16
|
* Clicking on a list item will navigate you into a channel with the selected user. It can be used
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChannelSearch.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelSearch/ChannelSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ChannelSearch.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelSearch/ChannelSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,EAAE,6BAA6B,EAAoB,MAAM,0BAA0B,CAAC;AAG3F,OAAO,EACL,0BAA0B,EAE1B,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,4BAA4B,EAAiB,MAAM,iBAAiB,CAAC;AAE9E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE5E,oBAAY,4BAA4B,GAAG;IACzC,oEAAoE;IACpE,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAChD,2DAA2D;IAC3D,WAAW,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;CACrD,CAAC;AAEF,oBAAY,kBAAkB,CAC5B,kBAAkB,SAAS,yBAAyB,GAAG,yBAAyB,IAC9E,wBAAwB,GAC1B,0BAA0B,GAC1B,4BAA4B,CAAC,kBAAkB,CAAC,GAChD,4BAA4B,GAC5B,6BAA6B,CAAC,kBAAkB,CAAC,CAAC;AA0FpD;;;;GAIG;AACH,eAAO,MAAM,aAAa,kJAAwE,CAAC"}
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
1
12
|
import React from 'react';
|
|
13
|
+
import { useChatContext } from '../../context/ChatContext';
|
|
14
|
+
import { useChannelSearch } from './hooks/useChannelSearch';
|
|
15
|
+
import { SearchBar as DefaultSearchBar } from './SearchBar';
|
|
2
16
|
import { SearchInput as DefaultSearchInput, } from './SearchInput';
|
|
3
17
|
import { SearchResults } from './SearchResults';
|
|
4
18
|
var UnMemoizedChannelSearch = function (props) {
|
|
5
|
-
var
|
|
19
|
+
var AppMenu = props.AppMenu, ClearInputIcon = props.ClearInputIcon, ExitSearchIcon = props.ExitSearchIcon, MenuIcon = props.MenuIcon, placeholder = props.placeholder, _a = props.popupResults, popupResults = _a === void 0 ? false : _a, _b = props.SearchBar, SearchBar = _b === void 0 ? DefaultSearchBar : _b, SearchEmpty = props.SearchEmpty, _c = props.SearchInput, SearchInput = _c === void 0 ? DefaultSearchInput : _c, SearchLoading = props.SearchLoading, SearchInputIcon = props.SearchInputIcon, SearchResultItem = props.SearchResultItem, SearchResultsList = props.SearchResultsList, SearchResultsHeader = props.SearchResultsHeader, channelSearchParams = __rest(props, ["AppMenu", "ClearInputIcon", "ExitSearchIcon", "MenuIcon", "placeholder", "popupResults", "SearchBar", "SearchEmpty", "SearchInput", "SearchLoading", "SearchInputIcon", "SearchResultItem", "SearchResultsList", "SearchResultsHeader"]);
|
|
20
|
+
var themeVersion = useChatContext('ChannelSearch').themeVersion;
|
|
21
|
+
var _d = useChannelSearch(channelSearchParams), activateSearch = _d.activateSearch, clearState = _d.clearState, exitSearch = _d.exitSearch, inputIsFocused = _d.inputIsFocused, inputRef = _d.inputRef, onSearch = _d.onSearch, query = _d.query, results = _d.results, searchBarRef = _d.searchBarRef, searching = _d.searching, selectResult = _d.selectResult;
|
|
22
|
+
var showSearchBarV2 = themeVersion === '2';
|
|
6
23
|
return (React.createElement("div", { className: 'str-chat__channel-search', "data-testid": 'channel-search' },
|
|
7
|
-
React.createElement(SearchInput, { clearState: clearState, inputRef: inputRef, onSearch: onSearch, placeholder: placeholder, query: query }),
|
|
24
|
+
showSearchBarV2 ? (React.createElement(SearchBar, { activateSearch: activateSearch, AppMenu: AppMenu, ClearInputIcon: ClearInputIcon, clearState: clearState, disabled: channelSearchParams.disabled, exitSearch: exitSearch, ExitSearchIcon: ExitSearchIcon, inputIsFocused: inputIsFocused, inputRef: inputRef, MenuIcon: MenuIcon, onSearch: onSearch, placeholder: placeholder, query: query, searchBarRef: searchBarRef, SearchInput: SearchInput, SearchInputIcon: SearchInputIcon })) : (React.createElement(SearchInput, { clearState: clearState, disabled: channelSearchParams.disabled, inputRef: inputRef, onSearch: onSearch, placeholder: placeholder, query: query })),
|
|
8
25
|
query && (React.createElement(SearchResults, { popupResults: popupResults, results: results, SearchEmpty: SearchEmpty, searching: searching, SearchLoading: SearchLoading, SearchResultItem: SearchResultItem, SearchResultsHeader: SearchResultsHeader, SearchResultsList: SearchResultsList, selectResult: selectResult }))));
|
|
9
26
|
};
|
|
10
27
|
/**
|
|
@@ -75,7 +75,7 @@ export var SearchBar = function (props) {
|
|
|
75
75
|
}, []);
|
|
76
76
|
var handleClearClick = useCallback(function () {
|
|
77
77
|
var _a;
|
|
78
|
-
|
|
78
|
+
exitSearch();
|
|
79
79
|
(_a = inputProps.inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
80
80
|
}, []);
|
|
81
81
|
return (React.createElement("div", { className: 'str-chat__channel-search-bar', "data-testid": 'search-bar', ref: searchBarRef },
|
|
@@ -4,11 +4,13 @@ export declare type SearchInputController = {
|
|
|
4
4
|
clearState: () => void;
|
|
5
5
|
inputRef: React.RefObject<HTMLInputElement>;
|
|
6
6
|
/** Search input change handler */
|
|
7
|
-
onSearch:
|
|
7
|
+
onSearch: React.ChangeEventHandler<HTMLInputElement>;
|
|
8
8
|
/** Current search string */
|
|
9
9
|
query: string;
|
|
10
10
|
};
|
|
11
11
|
export declare type AdditionalSearchInputProps = {
|
|
12
|
+
/** Sets the input element into disabled state */
|
|
13
|
+
disabled?: boolean;
|
|
12
14
|
/** Custom placeholder text to be displayed in the search input */
|
|
13
15
|
placeholder?: string;
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelSearch/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,oBAAY,qBAAqB,GAAG;IAClC,sCAAsC;IACtC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5C,kCAAkC;IAClC,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"SearchInput.d.ts","sourceRoot":"","sources":["../../../src/components/ChannelSearch/SearchInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,oBAAY,qBAAqB,GAAG;IAClC,sCAAsC;IACtC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IAC5C,kCAAkC;IAClC,QAAQ,EAAE,KAAK,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;IACrD,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,0BAA0B,GAAG;IACvC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,gBAAgB,GAAG,0BAA0B,GAAG,qBAAqB,CAAC;AAElF,eAAO,MAAM,WAAW,UAAW,gBAAgB,gBAiBlD,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { useTranslationContext } from '../../context/TranslationContext';
|
|
3
3
|
export var SearchInput = function (props) {
|
|
4
|
-
var inputRef = props.inputRef, onSearch = props.onSearch, placeholder = props.placeholder, query = props.query;
|
|
4
|
+
var disabled = props.disabled, inputRef = props.inputRef, onSearch = props.onSearch, placeholder = props.placeholder, query = props.query;
|
|
5
5
|
var t = useTranslationContext('SearchInput').t;
|
|
6
|
-
return (React.createElement("input", { className: 'str-chat__channel-search-input', "data-testid": 'search-input', onChange: onSearch, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : t('Search'), ref: inputRef, type: 'text', value: query }));
|
|
6
|
+
return (React.createElement("input", { className: 'str-chat__channel-search-input', "data-testid": 'search-input', disabled: disabled, onChange: onSearch, placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : t('Search'), ref: inputRef, type: 'text', value: query }));
|
|
7
7
|
};
|
|
@@ -42,8 +42,7 @@ var DefaultSearchResultItem = function (props) {
|
|
|
42
42
|
};
|
|
43
43
|
var ResultsContainer = function (_a) {
|
|
44
44
|
var children = _a.children, popupResults = _a.popupResults;
|
|
45
|
-
|
|
46
|
-
return (React.createElement("div", { "aria-label": 'Channel search results', className: "str-chat__channel-search-container str-chat__channel-search-result-list ".concat(containerStyle) }, children));
|
|
45
|
+
return (React.createElement("div", { "aria-label": 'Channel search results', className: clsx("str-chat__channel-search-container str-chat__channel-search-result-list", popupResults ? 'popup' : 'inline') }, children));
|
|
47
46
|
};
|
|
48
47
|
export var SearchResults = function (props) {
|
|
49
48
|
var popupResults = props.popupResults, results = props.results, searching = props.searching, _a = props.SearchEmpty, SearchEmpty = _a === void 0 ? DefaultSearchEmpty : _a, _b = props.SearchResultsHeader, SearchResultsHeader = _b === void 0 ? DefaultSearchResultsHeader : _b, SearchLoading = props.SearchLoading, _c = props.SearchResultItem, SearchResultItem = _c === void 0 ? DefaultSearchResultItem : _c, _d = props.SearchResultsList, SearchResultsList = _d === void 0 ? DefaultSearchResultsList : _d, selectResult = props.selectResult;
|
|
@@ -9,7 +9,6 @@ import type { DefaultStreamChatGenerics } from '../../../types/types';
|
|
|
9
9
|
export declare type ChannelSearchFunctionParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = {
|
|
10
10
|
setQuery: React.Dispatch<React.SetStateAction<string>>;
|
|
11
11
|
setResults: React.Dispatch<React.SetStateAction<ChannelOrUserResponse<StreamChatGenerics>[]>>;
|
|
12
|
-
setResultsOpen: React.Dispatch<React.SetStateAction<boolean>>;
|
|
13
12
|
setSearching: React.Dispatch<React.SetStateAction<boolean>>;
|
|
14
13
|
};
|
|
15
14
|
export declare type SearchController<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = SearchInputController & SearchBarController & SearchResultsController<StreamChatGenerics>;
|
|
@@ -30,21 +29,24 @@ export declare type ChannelSearchParams<StreamChatGenerics extends DefaultStream
|
|
|
30
29
|
channelType?: string;
|
|
31
30
|
/** Clear search state / results on every click outside the search input, defaults to true */
|
|
32
31
|
clearSearchOnClickOutside?: boolean;
|
|
33
|
-
/**
|
|
34
|
-
|
|
32
|
+
/** Disables execution of the search queries, defaults to false */
|
|
33
|
+
disabled?: boolean;
|
|
34
|
+
/** Callback invoked with every search input change handler */
|
|
35
|
+
onSearch?: SearchInputController['onSearch'];
|
|
36
|
+
/** Callback invoked when the search UI is deactivated */
|
|
37
|
+
onSearchExit?: () => void;
|
|
35
38
|
/** Custom handler function to run on search result item selection */
|
|
36
39
|
onSelectResult?: (params: ChannelSearchFunctionParams<StreamChatGenerics>, result: ChannelOrUserResponse<StreamChatGenerics>) => Promise<void> | void;
|
|
37
40
|
/** Boolean to search for channels as well as users in the server query, default is false and just searches for users */
|
|
38
41
|
searchForChannels?: boolean;
|
|
39
42
|
/** Custom search function to override the default implementation */
|
|
40
43
|
searchFunction?: (params: ChannelSearchFunctionParams<StreamChatGenerics>, event: React.BaseSyntheticEvent) => Promise<void> | void;
|
|
41
|
-
/** Object containing filters/sort/options overrides for user search */
|
|
44
|
+
/** Object containing filters/sort/options overrides for user / channel search */
|
|
42
45
|
searchQueryParams?: SearchQueryParams<StreamChatGenerics>;
|
|
43
46
|
};
|
|
44
|
-
declare type ChannelSearchControllerParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = ChannelSearchParams<StreamChatGenerics> & {
|
|
47
|
+
export declare type ChannelSearchControllerParams<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = ChannelSearchParams<StreamChatGenerics> & {
|
|
45
48
|
/** Set the array of channels displayed in the ChannelList */
|
|
46
49
|
setChannels: React.Dispatch<React.SetStateAction<Array<Channel<StreamChatGenerics>>>>;
|
|
47
50
|
};
|
|
48
|
-
export declare const useChannelSearch: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ channelType, clearSearchOnClickOutside,
|
|
49
|
-
export {};
|
|
51
|
+
export declare const useChannelSearch: <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>({ channelType, clearSearchOnClickOutside, disabled, onSearch: onSearchCallback, onSearchExit, onSelectResult, searchForChannels, searchFunction, searchQueryParams, setChannels, }: ChannelSearchControllerParams<StreamChatGenerics>) => SearchController<StreamChatGenerics>;
|
|
50
52
|
//# sourceMappingURL=useChannelSearch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChannelSearch.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelSearch/hooks/useChannelSearch.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useChannelSearch.d.ts","sourceRoot":"","sources":["../../../../src/components/ChannelSearch/hooks/useChannelSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,38 +54,37 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
54
54
|
}
|
|
55
55
|
return to.concat(ar || Array.prototype.slice.call(from));
|
|
56
56
|
};
|
|
57
|
-
import { useEffect, useRef, useState } from 'react';
|
|
57
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
58
58
|
import throttle from 'lodash.throttle';
|
|
59
59
|
import uniqBy from 'lodash.uniqby';
|
|
60
60
|
import { isChannel } from '../utils';
|
|
61
61
|
import { useChatContext } from '../../../context/ChatContext';
|
|
62
62
|
export var useChannelSearch = function (_a) {
|
|
63
|
-
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.
|
|
63
|
+
var _b = _a.channelType, channelType = _b === void 0 ? 'messaging' : _b, _c = _a.clearSearchOnClickOutside, clearSearchOnClickOutside = _c === void 0 ? true : _c, _d = _a.disabled, disabled = _d === void 0 ? false : _d, onSearchCallback = _a.onSearch, onSearchExit = _a.onSearchExit, onSelectResult = _a.onSelectResult, _e = _a.searchForChannels, searchForChannels = _e === void 0 ? false : _e, searchFunction = _a.searchFunction, searchQueryParams = _a.searchQueryParams, setChannels = _a.setChannels;
|
|
64
64
|
var _f = useChatContext('useChannelSearch'), client = _f.client, navOpen = _f.navOpen, setActiveChannel = _f.setActiveChannel, themeVersion = _f.themeVersion;
|
|
65
65
|
var _g = useState(false), inputIsFocused = _g[0], setInputIsFocused = _g[1];
|
|
66
66
|
var _h = useState(''), query = _h[0], setQuery = _h[1];
|
|
67
67
|
var _j = useState([]), results = _j[0], setResults = _j[1];
|
|
68
|
-
var _k = useState(false),
|
|
69
|
-
var _l = useState(false), searching = _l[0], setSearching = _l[1];
|
|
68
|
+
var _k = useState(false), searching = _k[0], setSearching = _k[1];
|
|
70
69
|
var inputRef = useRef(null);
|
|
71
70
|
var searchBarRef = useRef(null);
|
|
72
|
-
var clearState = function () {
|
|
71
|
+
var clearState = useCallback(function () {
|
|
73
72
|
setQuery('');
|
|
74
73
|
setResults([]);
|
|
75
|
-
setResultsOpen(false);
|
|
76
74
|
setSearching(false);
|
|
77
|
-
};
|
|
78
|
-
var activateSearch = function () {
|
|
75
|
+
}, []);
|
|
76
|
+
var activateSearch = useCallback(function () {
|
|
79
77
|
setInputIsFocused(true);
|
|
80
|
-
};
|
|
81
|
-
var exitSearch = function () {
|
|
78
|
+
}, []);
|
|
79
|
+
var exitSearch = useCallback(function () {
|
|
82
80
|
var _a;
|
|
83
81
|
setInputIsFocused(false);
|
|
84
82
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.blur();
|
|
85
83
|
clearState();
|
|
86
|
-
|
|
84
|
+
onSearchExit === null || onSearchExit === void 0 ? void 0 : onSearchExit();
|
|
85
|
+
}, [clearState, onSearchExit]);
|
|
87
86
|
useEffect(function () {
|
|
88
|
-
if (
|
|
87
|
+
if (disabled)
|
|
89
88
|
return;
|
|
90
89
|
var clickListener = function (event) {
|
|
91
90
|
var _a, _b;
|
|
@@ -96,17 +95,15 @@ export var useChannelSearch = function (_a) {
|
|
|
96
95
|
: (_b = inputRef.current) === null || _b === void 0 ? void 0 : _b.contains(event.target);
|
|
97
96
|
if (isInputClick)
|
|
98
97
|
return;
|
|
99
|
-
if ((
|
|
100
|
-
(resultsOpen && clearSearchOnClickOutside) ||
|
|
101
|
-
(inputIsFocused && !query)) {
|
|
98
|
+
if ((inputIsFocused && (!query || navOpen)) || clearSearchOnClickOutside) {
|
|
102
99
|
exitSearch();
|
|
103
100
|
}
|
|
104
101
|
};
|
|
105
102
|
document.addEventListener('click', clickListener);
|
|
106
103
|
return function () { return document.removeEventListener('click', clickListener); };
|
|
107
|
-
}, [
|
|
104
|
+
}, [disabled, inputIsFocused]);
|
|
108
105
|
useEffect(function () {
|
|
109
|
-
if (!
|
|
106
|
+
if (!inputRef.current || disabled)
|
|
110
107
|
return;
|
|
111
108
|
var handleKeyDown = function (event) {
|
|
112
109
|
if (event.key === 'Escape')
|
|
@@ -118,7 +115,7 @@ export var useChannelSearch = function (_a) {
|
|
|
118
115
|
(_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.removeEventListener('keydown', handleKeyDown);
|
|
119
116
|
};
|
|
120
117
|
}, []);
|
|
121
|
-
var selectResult = function (result) { return __awaiter(void 0, void 0, void 0, function () {
|
|
118
|
+
var selectResult = useCallback(function (result) { return __awaiter(void 0, void 0, void 0, function () {
|
|
122
119
|
var selectedChannel, newChannel;
|
|
123
120
|
return __generator(this, function (_a) {
|
|
124
121
|
switch (_a.label) {
|
|
@@ -129,7 +126,6 @@ export var useChannelSearch = function (_a) {
|
|
|
129
126
|
return [4 /*yield*/, onSelectResult({
|
|
130
127
|
setQuery: setQuery,
|
|
131
128
|
setResults: setResults,
|
|
132
|
-
setResultsOpen: setResultsOpen,
|
|
133
129
|
setSearching: setSearching,
|
|
134
130
|
}, result)];
|
|
135
131
|
case 1:
|
|
@@ -151,13 +147,13 @@ export var useChannelSearch = function (_a) {
|
|
|
151
147
|
case 5:
|
|
152
148
|
setChannels(function (channels) { return uniqBy(__spreadArray([selectedChannel], channels, true), 'cid'); });
|
|
153
149
|
if (clearSearchOnClickOutside) {
|
|
154
|
-
|
|
150
|
+
exitSearch();
|
|
155
151
|
}
|
|
156
152
|
return [2 /*return*/];
|
|
157
153
|
}
|
|
158
154
|
});
|
|
159
|
-
}); };
|
|
160
|
-
var getChannels = function (text) { return __awaiter(void 0, void 0, void 0, function () {
|
|
155
|
+
}); }, [clearSearchOnClickOutside, client, exitSearch, onSelectResult]);
|
|
156
|
+
var getChannels = useCallback(function (text) { return __awaiter(void 0, void 0, void 0, function () {
|
|
161
157
|
var userResponse, channelResponse, _a, channels, users_1, users, error_1;
|
|
162
158
|
var _b, _c, _d, _e, _f, _g;
|
|
163
159
|
return __generator(this, function (_h) {
|
|
@@ -178,14 +174,12 @@ export var useChannelSearch = function (_a) {
|
|
|
178
174
|
case 3:
|
|
179
175
|
_a = _h.sent(), channels = _a[0], users_1 = _a[1].users;
|
|
180
176
|
setResults(__spreadArray(__spreadArray([], channels, true), users_1, true));
|
|
181
|
-
setResultsOpen(true);
|
|
182
177
|
setSearching(false);
|
|
183
178
|
return [2 /*return*/];
|
|
184
179
|
case 4: return [4 /*yield*/, Promise.resolve(userResponse)];
|
|
185
180
|
case 5:
|
|
186
181
|
users = (_h.sent()).users;
|
|
187
182
|
setResults(users);
|
|
188
|
-
setResultsOpen(true);
|
|
189
183
|
return [3 /*break*/, 7];
|
|
190
184
|
case 6:
|
|
191
185
|
error_1 = _h.sent();
|
|
@@ -197,17 +191,16 @@ export var useChannelSearch = function (_a) {
|
|
|
197
191
|
return [2 /*return*/];
|
|
198
192
|
}
|
|
199
193
|
});
|
|
200
|
-
}); };
|
|
194
|
+
}); }, [client, searching]);
|
|
201
195
|
var getChannelsThrottled = throttle(getChannels, 200);
|
|
202
|
-
var onSearch = function (event) {
|
|
196
|
+
var onSearch = useCallback(function (event) {
|
|
203
197
|
event.preventDefault();
|
|
204
|
-
if (
|
|
198
|
+
if (disabled)
|
|
205
199
|
return;
|
|
206
200
|
if (searchFunction) {
|
|
207
201
|
searchFunction({
|
|
208
202
|
setQuery: setQuery,
|
|
209
203
|
setResults: setResults,
|
|
210
|
-
setResultsOpen: setResultsOpen,
|
|
211
204
|
setSearching: setSearching,
|
|
212
205
|
}, event);
|
|
213
206
|
}
|
|
@@ -215,7 +208,8 @@ export var useChannelSearch = function (_a) {
|
|
|
215
208
|
setQuery(event.target.value);
|
|
216
209
|
getChannelsThrottled(event.target.value);
|
|
217
210
|
}
|
|
218
|
-
|
|
211
|
+
onSearchCallback === null || onSearchCallback === void 0 ? void 0 : onSearchCallback(event);
|
|
212
|
+
}, [disabled, getChannelsThrottled, searchFunction]);
|
|
219
213
|
return {
|
|
220
214
|
activateSearch: activateSearch,
|
|
221
215
|
clearState: clearState,
|
|
@@ -9,7 +9,7 @@ var CustomMessageActionsList = function (props) {
|
|
|
9
9
|
var customActionsArray = Object.keys(customMessageActions);
|
|
10
10
|
return (React.createElement(React.Fragment, null, customActionsArray.map(function (customAction) {
|
|
11
11
|
var customHandler = customMessageActions[customAction];
|
|
12
|
-
return (React.createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item', key: customAction, onClick: function (event) { return customHandler(message, event); }, role: 'option' }, customAction));
|
|
12
|
+
return (React.createElement("button", { "aria-selected": 'false', className: 'str-chat__message-actions-list-item str-chat__message-actions-list-item-button', key: customAction, onClick: function (event) { return customHandler(message, event); }, role: 'option' }, customAction));
|
|
13
13
|
})));
|
|
14
14
|
};
|
|
15
15
|
var UnMemoizedMessageActionsBox = function (props) {
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type CooldownTimerProps = {
|
|
3
|
+
cooldownInterval: number;
|
|
4
|
+
setCooldownRemaining: React.Dispatch<React.SetStateAction<number | undefined>>;
|
|
5
|
+
};
|
|
6
|
+
export declare const CooldownTimer: ({ cooldownInterval, setCooldownRemaining }: CooldownTimerProps) => JSX.Element;
|
|
7
|
+
//# sourceMappingURL=CooldownTimer.d.ts.map
|