diff --git a/web/chat/thread-top-bar.css b/web/chat/thread-top-bar.css
--- a/web/chat/thread-top-bar.css
+++ b/web/chat/thread-top-bar.css
@@ -24,13 +24,6 @@
text-overflow: ellipsis;
}
-button.topBarMenu {
- background-color: transparent;
- border: none;
- cursor: pointer;
- color: var(--thread-top-bar-menu-color);
-}
-
.pinnedCountBanner {
background-color: var(--pinned-count-banner-color);
height: 40px;
@@ -55,3 +48,13 @@
.chevronRight {
vertical-align: middle;
}
+
+.searchButton {
+ color: var(--thread-top-bar-search-button-color);
+ margin-right: 30px;
+}
+
+.buttons {
+ flex-direction: row;
+ display: flex;
+}
diff --git a/web/chat/thread-top-bar.react.js b/web/chat/thread-top-bar.react.js
--- a/web/chat/thread-top-bar.react.js
+++ b/web/chat/thread-top-bar.react.js
@@ -4,6 +4,7 @@
import { ChevronRight } from 'react-feather';
import { useModalContext } from 'lib/components/modal-provider.react.js';
+import SWMansionIcon from 'lib/components/SWMansionIcon.react.js';
import { threadIsPending } from 'lib/shared/thread-utils.js';
import type { ThreadInfo } from 'lib/types/thread-types.js';
import { useResolvedThreadInfo } from 'lib/utils/entity-helpers.js';
@@ -11,8 +12,10 @@
import ThreadMenu from './thread-menu.react.js';
import css from './thread-top-bar.css';
import ThreadAvatar from '../avatars/thread-avatar.react.js';
+import Button from '../components/button.react.js';
import { InputStateContext } from '../input/input-state.js';
import MessageResultsModal from '../modals/chat/message-results-modal.react.js';
+import MessageSearchModal from '../modals/search/message-search-modal.react.js';
type ThreadTopBarProps = {
+threadInfo: ThreadInfo,
@@ -63,6 +66,25 @@
);
}, [bannerText, pushThreadPinsModal]);
+ const onClickSearch = React.useCallback(
+ () =>
+ pushModal(
+