diff --git a/web/modals/threads/members/add-members-modal.react.js b/web/modals/threads/members/add-members-modal.react.js --- a/web/modals/threads/members/add-members-modal.react.js +++ b/web/modals/threads/members/add-members-modal.react.js @@ -6,7 +6,11 @@ changeThreadSettingsActionTypes, useChangeThreadSettings, } from 'lib/actions/thread-actions.js'; +import { threadInfoSelector } from 'lib/selectors/thread-selectors.js'; +import { useAddDMThreadMembers } from 'lib/shared/dm-ops/dm-op-utils.js'; +import { threadTypeIsThick } from 'lib/types/thread-types-enum.js'; import { useDispatchActionPromise } from 'lib/utils/redux-promise-utils.js'; +import { useSelector } from 'lib/utils/redux-utils.js'; import css from './members-modal.css'; import Button from '../../../components/button.react.js'; @@ -59,22 +63,32 @@ const dispatchActionPromise = useDispatchActionPromise(); const callChangeThreadSettings = useChangeThreadSettings(); + const addDMThreadMembers = useAddDMThreadMembers(); + const threadInfo = useSelector(state => threadInfoSelector(state)[threadID]); const addUsers = React.useCallback(() => { - void dispatchActionPromise( - changeThreadSettingsActionTypes, - callChangeThreadSettings({ - threadID, - changes: { newMemberIDs: Array.from(pendingUsersToAdd.keys()) }, - }), - ); + const newMemberIDs = Array.from(pendingUsersToAdd.keys()); + + if (threadTypeIsThick(threadInfo.type)) { + void addDMThreadMembers(newMemberIDs, threadInfo); + } else { + void dispatchActionPromise( + changeThreadSettingsActionTypes, + callChangeThreadSettings({ + threadID, + changes: { newMemberIDs }, + }), + ); + } onClose(); }, [ + addDMThreadMembers, callChangeThreadSettings, dispatchActionPromise, onClose, pendingUsersToAdd, threadID, + threadInfo, ]); const primaryButton = React.useMemo(