Skip to content

Commit 1bb8a27

Browse files
authored
Merge pull request Expensify#67535 from shubham1206agra/refactor-onyx-22
Removed Onyx.connect in TeachersUnite lib file
2 parents 52d011c + 04d9157 commit 1bb8a27

3 files changed

Lines changed: 21 additions & 28 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"test:debug": "TZ=utc NODE_OPTIONS='--inspect-brk --experimental-vm-modules' jest --runInBand",
4747
"perf-test": "NODE_OPTIONS=--experimental-vm-modules npx reassure",
4848
"typecheck": "NODE_OPTIONS=--max_old_space_size=8192 tsc",
49-
"lint": "NODE_OPTIONS=--max_old_space_size=8192 eslint . --max-warnings=278 --cache --cache-location=node_modules/.cache/eslint",
49+
"lint": "NODE_OPTIONS=--max_old_space_size=8192 eslint . --max-warnings=276 --cache --cache-location=node_modules/.cache/eslint",
5050
"lint-changed": "NODE_OPTIONS=--max_old_space_size=8192 ./scripts/lintChanged.sh",
5151
"lint-watch": "npx eslint-watch --watch --changed",
5252
"shellcheck": "./scripts/shellCheck.sh",

src/libs/actions/TeachersUnite.ts

Lines changed: 17 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import Onyx from 'react-native-onyx';
2-
import type {OnyxEntry, OnyxUpdate} from 'react-native-onyx';
2+
import type {OnyxUpdate} from 'react-native-onyx';
33
import * as API from '@libs/API';
44
import type {AddSchoolPrincipalParams, ReferTeachersUniteVolunteerParams} from '@libs/API/parameters';
55
import {WRITE_COMMANDS} from '@libs/API/types';
66
import Navigation from '@libs/Navigation/Navigation';
7-
import * as PhoneNumber from '@libs/PhoneNumber';
7+
import {addSMSDomainIfPhoneNumber} from '@libs/PhoneNumber';
88
import {getPolicy} from '@libs/PolicyUtils';
9-
import * as ReportUtils from '@libs/ReportUtils';
9+
import {buildOptimisticChatReport, buildOptimisticCreatedReportAction} from '@libs/ReportUtils';
1010
import type {OptimisticCreatedReportAction} from '@libs/ReportUtils';
1111
import CONST from '@src/CONST';
1212
import ONYXKEYS from '@src/ONYXKEYS';
13-
import type {PersonalDetailsList} from '@src/types/onyx';
1413

1514
type CreationData = {
1615
reportID: string;
@@ -21,27 +20,11 @@ type ReportCreationData = Record<string, CreationData>;
2120

2221
type ExpenseReportActionData = Record<string, OptimisticCreatedReportAction>;
2322

24-
let sessionEmail = '';
25-
let sessionAccountID = 0;
26-
Onyx.connect({
27-
key: ONYXKEYS.SESSION,
28-
callback: (value) => {
29-
sessionEmail = value?.email ?? '';
30-
sessionAccountID = value?.accountID ?? CONST.DEFAULT_NUMBER_ID;
31-
},
32-
});
33-
34-
let allPersonalDetails: OnyxEntry<PersonalDetailsList>;
35-
Onyx.connect({
36-
key: ONYXKEYS.PERSONAL_DETAILS_LIST,
37-
callback: (value) => (allPersonalDetails = value),
38-
});
39-
4023
/**
4124
* @param publicRoomReportID - This is the global reportID for the public room, we'll ignore the optimistic one
4225
*/
4326
function referTeachersUniteVolunteer(partnerUserID: string, firstName: string, lastName: string, policyID: string, publicRoomReportID: string) {
44-
const optimisticPublicRoom = ReportUtils.buildOptimisticChatReport({
27+
const optimisticPublicRoom = buildOptimisticChatReport({
4528
participantList: [],
4629
reportName: CONST.TEACHERS_UNITE.PUBLIC_ROOM_NAME,
4730
chatType: CONST.REPORT.CHAT_TYPE.POLICY_ROOM,
@@ -80,12 +63,20 @@ function referTeachersUniteVolunteer(partnerUserID: string, firstName: string, l
8063
/**
8164
* Optimistically creates a policyExpenseChat for the school principal and passes data to AddSchoolPrincipal
8265
*/
83-
function addSchoolPrincipal(firstName: string, partnerUserID: string, lastName: string, policyID: string) {
66+
function addSchoolPrincipal(
67+
firstName: string,
68+
partnerUserID: string,
69+
lastName: string,
70+
policyID: string,
71+
localCurrencyCode: string | undefined,
72+
sessionEmail: string,
73+
sessionAccountID: number,
74+
) {
8475
const policyName = CONST.TEACHERS_UNITE.POLICY_NAME;
85-
const loggedInEmail = PhoneNumber.addSMSDomainIfPhoneNumber(sessionEmail);
76+
const loggedInEmail = addSMSDomainIfPhoneNumber(sessionEmail);
8677
const reportCreationData: ReportCreationData = {};
8778

88-
const expenseChatData = ReportUtils.buildOptimisticChatReport({
79+
const expenseChatData = buildOptimisticChatReport({
8980
participantList: [sessionAccountID],
9081
reportName: '',
9182
chatType: CONST.REPORT.CHAT_TYPE.POLICY_EXPENSE_CHAT,
@@ -95,7 +86,7 @@ function addSchoolPrincipal(firstName: string, partnerUserID: string, lastName:
9586
oldPolicyName: policyName,
9687
});
9788
const expenseChatReportID = expenseChatData.reportID;
98-
const expenseReportCreatedAction = ReportUtils.buildOptimisticCreatedReportAction(sessionEmail);
89+
const expenseReportCreatedAction = buildOptimisticCreatedReportAction(sessionEmail);
9990
const expenseReportActionData: ExpenseReportActionData = {
10091
[expenseReportCreatedAction.reportActionID]: expenseReportCreatedAction,
10192
};
@@ -118,7 +109,7 @@ function addSchoolPrincipal(firstName: string, partnerUserID: string, lastName:
118109
owner: sessionEmail,
119110
// This will be fixed as part of https://github.com/Expensify/Expensify/issues/507850
120111
// eslint-disable-next-line deprecation/deprecation
121-
outputCurrency: getPolicy(policyID)?.outputCurrency ?? allPersonalDetails?.[sessionAccountID]?.localCurrencyCode ?? CONST.CURRENCY.USD,
112+
outputCurrency: getPolicy(policyID)?.outputCurrency ?? localCurrencyCode ?? CONST.CURRENCY.USD,
122113
employeeList: {
123114
[sessionEmail]: {
124115
role: CONST.POLICY.ROLE.USER,

src/pages/TeachersUnite/IntroSchoolPrincipalPage.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import HeaderWithBackButton from '@components/HeaderWithBackButton';
88
import ScreenWrapper from '@components/ScreenWrapper';
99
import Text from '@components/Text';
1010
import TextInput from '@components/TextInput';
11+
import useCurrentUserPersonalDetails from '@hooks/useCurrentUserPersonalDetails';
1112
import useEnvironment from '@hooks/useEnvironment';
1213
import useLocalize from '@hooks/useLocalize';
1314
import useOnyx from '@hooks/useOnyx';
@@ -26,13 +27,14 @@ function IntroSchoolPrincipalPage() {
2627
const {translate} = useLocalize();
2728
const {isProduction} = useEnvironment();
2829
const [loginList] = useOnyx(ONYXKEYS.LOGIN_LIST, {canBeMissing: true});
30+
const {localCurrencyCode, login, accountID} = useCurrentUserPersonalDetails();
2931

3032
/**
3133
* Submit form to pass firstName, partnerUserID and lastName
3234
*/
3335
const onSubmit = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.INTRO_SCHOOL_PRINCIPAL_FORM>) => {
3436
const policyID = isProduction ? CONST.TEACHERS_UNITE.PROD_POLICY_ID : CONST.TEACHERS_UNITE.TEST_POLICY_ID;
35-
TeachersUnite.addSchoolPrincipal(values.firstName.trim(), values.partnerUserID.trim(), values.lastName.trim(), policyID);
37+
TeachersUnite.addSchoolPrincipal(values.firstName.trim(), values.partnerUserID.trim(), values.lastName.trim(), policyID, localCurrencyCode, login ?? '', accountID);
3638
};
3739

3840
/**

0 commit comments

Comments
 (0)