Skip to content

Commit

Permalink
[lib] move useSendDMOperationUtils to a different file
Browse files Browse the repository at this point in the history
Summary:
[ENG-9394](https://linear.app/comm/issue/ENG-9394/create-a-thick-thread-when-possible-while-searching-for-a-personal)

I need to reuse this in a different place but having some dependency cycle issues.

Test Plan: Flow, just refactor

Reviewers: ashoat, tomek

Reviewed By: ashoat

Differential Revision: https://phab.comm.dev/D13484
  • Loading branch information
xsanm committed Sep 30, 2024
1 parent 2aa6b1a commit 2c5ac82
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 25 deletions.
26 changes: 26 additions & 0 deletions lib/shared/dm-ops/dm-op-utils.js
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ import {
} from './dm-op-spec.js';
import { dmOpSpecs } from './dm-op-specs.js';
import { useProcessAndSendDMOperation } from './process-dm-ops.js';
import { useFindUserIdentities } from '../../actions/user-actions.js';
import { useLoggedInUserInfo } from '../../hooks/account-hooks.js';
import { useGetLatestMessageEdit } from '../../hooks/latest-message-edit.js';
import { mergeUpdatesWithMessageInfos } from '../../reducers/message-reducer.js';
import type {
CreateThickRawThreadInfoInput,
Expand Down Expand Up @@ -391,10 +394,33 @@ async function checkMessageIDConflict(
};
}

function useSendDMOperationUtils(): $ReadOnly<{
...ProcessDMOperationUtilities,
viewerID: ?string,
}> {
const fetchMessage = useGetLatestMessageEdit();
const threadInfos = useSelector(state => state.threadStore.threadInfos);
const entryInfos = useSelector(state => state.entryStore.entryInfos);
const findUserIdentities = useFindUserIdentities();
const loggedInUserInfo = useLoggedInUserInfo();
const viewerID = loggedInUserInfo?.id;
return React.useMemo(
() => ({
viewerID,
fetchMessage,
threadInfos,
entryInfos,
findUserIdentities,
}),
[viewerID, fetchMessage, threadInfos, entryInfos, findUserIdentities],
);
}

export {
createMessagesToPeersFromDMOp,
useAddDMThreadMembers,
getCreateThickRawThreadInfoInputFromThreadInfo,
getThreadUpdatesForNewMessages,
checkMessageIDConflict,
useSendDMOperationUtils,
};
27 changes: 2 additions & 25 deletions lib/shared/dm-ops/process-dm-ops.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,10 @@ import {
type OutboundComposableDMOperationSpecification,
getThreadUpdatesForNewMessages,
checkMessageIDConflict,
useSendDMOperationUtils,
} from './dm-op-utils.js';
import { useProcessBlobHolders } from '../../actions/holder-actions.js';
import {
processNewUserIDsActionType,
useFindUserIdentities,
} from '../../actions/user-actions.js';
import { useLoggedInUserInfo } from '../../hooks/account-hooks.js';
import { useGetLatestMessageEdit } from '../../hooks/latest-message-edit.js';
import { processNewUserIDsActionType } from '../../actions/user-actions.js';
import { useDispatchWithMetadata } from '../../hooks/ops-hooks.js';
import { getAllPeerUserIDAndDeviceIDs } from '../../selectors/user-selectors.js';
import {
Expand All @@ -38,25 +34,6 @@ import type { OutboundP2PMessage } from '../../types/sqlite-types.js';
import { extractUserIDsFromPayload } from '../../utils/conversion-utils.js';
import { useSelector, useDispatch } from '../../utils/redux-utils.js';

function useSendDMOperationUtils() {
const fetchMessage = useGetLatestMessageEdit();
const threadInfos = useSelector(state => state.threadStore.threadInfos);
const entryInfos = useSelector(state => state.entryStore.entryInfos);
const findUserIdentities = useFindUserIdentities();
const loggedInUserInfo = useLoggedInUserInfo();
const viewerID = loggedInUserInfo?.id;
return React.useMemo(
() => ({
viewerID,
fetchMessage,
threadInfos,
entryInfos,
findUserIdentities,
}),
[viewerID, fetchMessage, threadInfos, entryInfos, findUserIdentities],
);
}

function useProcessDMOperation(): (
dmOperationSpecification: DMOperationSpecification,
dmOpID: ?string,
Expand Down

0 comments on commit 2c5ac82

Please sign in to comment.