diff --git a/web/chat/chat-tabs.css b/web/chat/chat-tabs.css --- a/web/chat/chat-tabs.css +++ b/web/chat/chat-tabs.css @@ -9,38 +9,13 @@ flex-direction: column; } -div.tabs { - display: flex; - flex-direction: row; - color: var(--fg); - background: var(--bg); -} - div.tabItem { display: flex; - justify-content: center; align-items: center; - width: 50%; - padding: 16px 0; - text-align: center; - cursor: pointer; - background-color: var(--bg); - color: var(--color-disabled); - border: 2px solid var(--border-color); - border-width: 0 0 3px 0; } div.tabItem svg { padding-right: 8px; } -div.tabItemActive { - border: outset var(--thread-selection); - border-width: 0 0 3px 0; -} -div.tabItemInactive { - background-color: var(--bg); - color: var(--color-disabled); - color: var(--fg); -} div.threadList { flex: 1; diff --git a/web/chat/chat-tabs.react.js b/web/chat/chat-tabs.react.js --- a/web/chat/chat-tabs.react.js +++ b/web/chat/chat-tabs.react.js @@ -5,6 +5,7 @@ import { unreadBackgroundCount } from 'lib/selectors/thread-selectors'; +import Tabs from '../components/tabs.react'; import { useSelector } from '../redux/redux-utils'; import css from './chat-tabs.css'; import ChatThreadList from './chat-thread-list.react'; @@ -24,33 +25,56 @@ ); const { activeTab, setActiveTab } = threadListContext; - const onClickHome = React.useCallback(() => setActiveTab('Focus'), [ - setActiveTab, - ]); - const onClickBackground = React.useCallback( - () => setActiveTab('Background'), + const setActiveChatTab = React.useCallback( + (newTab: string) => { + invariant( + newTab === 'Background' || newTab === 'Focus', + 'newTab must be Background or Focus', + ); + setActiveTab(newTab); + }, [setActiveTab], ); - return ( -