Page MenuHomePhabricator

D9558.id32293.diff
No OneTemporary

D9558.id32293.diff

diff --git a/web/chat/chat-thread-list.react.js b/web/chat/chat-thread-list.react.js
--- a/web/chat/chat-thread-list.react.js
+++ b/web/chat/chat-thread-list.react.js
@@ -6,7 +6,10 @@
import AutoSizer from 'react-virtualized-auto-sizer';
import { VariableSizeList } from 'react-window';
+import { useModalContext } from 'lib/components/modal-provider.react.js';
+import genesis from 'lib/facts/genesis.js';
import type { ChatThreadItem } from 'lib/selectors/chat-selectors.js';
+import { threadInfoSelector } from 'lib/selectors/thread-selectors.js';
import { emptyItemText } from 'lib/shared/thread-utils.js';
import ChatThreadListItem from './chat-thread-list-item.react.js';
@@ -15,6 +18,7 @@
import { ThreadListContext } from './thread-list-provider.js';
import BackgroundIllustration from '../assets/background-illustration.react.js';
import Button from '../components/button.react.js';
+import ComposeSubchannelModal from '../modals/threads/create/compose-subchannel-modal.react.js';
import { useSelector } from '../redux/redux-utils.js';
import { useOnClickNewThread } from '../selectors/thread-selectors.js';
@@ -68,6 +72,27 @@
const communityID = useSelector(state => state.communityPickerStore.chat);
+ const communityThreadInfo = useSelector(state => {
+ if (!communityID) {
+ return null;
+ }
+ return threadInfoSelector(state)[communityID];
+ });
+
+ const { pushModal, popModal } = useModalContext();
+
+ const onClickCreateSubchannel = React.useCallback(() => {
+ if (!communityThreadInfo) {
+ return null;
+ }
+ return pushModal(
+ <ComposeSubchannelModal
+ parentThreadInfo={communityThreadInfo}
+ onClose={popModal}
+ />,
+ );
+ }, [popModal, pushModal, communityThreadInfo]);
+
const threadListContainerRef = React.useRef();
const threads = React.useMemo(
@@ -132,9 +157,15 @@
<Button
variant="filled"
disabled={isThreadCreation}
- onClick={onClickNewThread}
+ onClick={
+ !communityID || communityID === genesis.id
+ ? onClickNewThread
+ : onClickCreateSubchannel
+ }
>
- Create new chat
+ {!communityID || communityID === genesis.id
+ ? 'Create new chat'
+ : 'Create new channel'}
</Button>
</div>
</>

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 29, 7:03 PM (21 h, 20 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2597845
Default Alt Text
D9558.id32293.diff (2 KB)

Event Timeline