Skip to content

Commit c1edbf6

Browse files
authored
Revert "Sync drafts between devices"
1 parent 39b57bd commit c1edbf6

34 files changed

Lines changed: 196 additions & 221 deletions

src/ONYXKEYS.ts

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -556,9 +556,6 @@ const ONYXKEYS = {
556556
NVP_LAST_ECASH_ANDROID_LOGIN: 'nvp_lastECashAndroidLogin',
557557
NVP_LAST_ANDROID_LOGIN: 'nvp_lastAndroidLogin',
558558

559-
/** Draft report comments */
560-
NVP_DRAFT_REPORT_COMMENTS: 'nvp_draftReportComments',
561-
562559
/** Collection Keys */
563560
COLLECTION: {
564561
DOWNLOAD: 'download_',
@@ -592,8 +589,7 @@ const ONYXKEYS = {
592589
REPORT_ACTIONS_DRAFTS: 'reportActionsDrafts_',
593590
REPORT_ACTIONS_PAGES: 'reportActionsPages_',
594591
REPORT_ACTIONS_REACTIONS: 'reportActionsReactions_',
595-
/** @deprecated */
596-
REPORT_DRAFT_COMMENT: 'reportDraftComment_', // eslint-disable-line deprecation/deprecation
592+
REPORT_DRAFT_COMMENT: 'reportDraftComment_',
597593
REPORT_IS_COMPOSER_FULL_SIZE: 'reportIsComposerFullSize_',
598594
REPORT_USER_IS_TYPING: 'reportUserIsTyping_',
599595
REPORT_USER_IS_LEAVING_ROOM: 'reportUserIsLeavingRoom_',
@@ -991,7 +987,6 @@ type OnyxCollectionValuesMapping = {
991987
[ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS]: OnyxTypes.ReportActionsDrafts;
992988
[ONYXKEYS.COLLECTION.REPORT_ACTIONS_PAGES]: OnyxTypes.Pages;
993989
[ONYXKEYS.COLLECTION.REPORT_ACTIONS_REACTIONS]: OnyxTypes.ReportActionReactions;
994-
// eslint-disable-next-line deprecation/deprecation
995990
[ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT]: string;
996991
[ONYXKEYS.COLLECTION.REPORT_IS_COMPOSER_FULL_SIZE]: boolean;
997992
[ONYXKEYS.COLLECTION.REPORT_USER_IS_TYPING]: OnyxTypes.ReportUserIsTyping;
@@ -1213,7 +1208,6 @@ type OnyxValuesMapping = {
12131208
[ONYXKEYS.TRANSACTION_THREAD_NAVIGATION_REPORT_IDS]: string[];
12141209
[ONYXKEYS.ONBOARDING_USER_REPORTED_INTEGRATION]: OnboardingAccounting;
12151210
[ONYXKEYS.HYBRID_APP]: OnyxTypes.HybridApp;
1216-
[ONYXKEYS.NVP_DRAFT_REPORT_COMMENTS]: OnyxTypes.DraftReportComments;
12171211
};
12181212

12191213
type OnyxDerivedValuesMapping = {

src/components/LHNOptionsList/LHNOptionsList.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import useRootNavigationState from '@hooks/useRootNavigationState';
1919
import useScrollEventEmitter from '@hooks/useScrollEventEmitter';
2020
import useTheme from '@hooks/useTheme';
2121
import useThemeStyles from '@hooks/useThemeStyles';
22+
import {isValidDraftComment} from '@libs/DraftCommentUtils';
2223
import getPlatform from '@libs/getPlatform';
2324
import Log from '@libs/Log';
2425
import {getIOUReportIDOfLastAction, getLastMessageTextForReport} from '@libs/OptionsListUtils';
@@ -52,7 +53,7 @@ function LHNOptionsList({style, contentContainerStyles, data, onSelectRow, optio
5253
const [policy] = useOnyx(ONYXKEYS.COLLECTION.POLICY, {canBeMissing: false});
5354
const [personalDetails] = useOnyx(ONYXKEYS.PERSONAL_DETAILS_LIST, {canBeMissing: true});
5455
const [transactions] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION, {canBeMissing: false});
55-
const [draftComments] = useOnyx(ONYXKEYS.NVP_DRAFT_REPORT_COMMENTS, {canBeMissing: true});
56+
const [draftComments] = useOnyx(ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT, {canBeMissing: false});
5657
const [transactionViolations] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS, {canBeMissing: false});
5758
const [dismissedProductTraining, dismissedProductTrainingMetadata] = useOnyx(ONYXKEYS.NVP_DISMISSED_PRODUCT_TRAINING, {canBeMissing: true});
5859
const [activePolicyID] = useOnyx(ONYXKEYS.NVP_ACTIVE_POLICY_ID, {canBeMissing: true});
@@ -188,7 +189,7 @@ function LHNOptionsList({style, contentContainerStyles, data, onSelectRow, optio
188189
? (getOriginalMessage(itemParentReportAction)?.IOUTransactionID ?? CONST.DEFAULT_NUMBER_ID)
189190
: CONST.DEFAULT_NUMBER_ID;
190191
const itemTransaction = transactions?.[`${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`];
191-
const hasDraftComment = !!draftComments?.[reportID];
192+
const hasDraftComment = isValidDraftComment(draftComments?.[`${ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT}${reportID}`]);
192193

193194
const canUserPerformWrite = canUserPerformWriteAction(item);
194195
const sortedReportActions = getSortedReportActionsForDisplay(itemReportActions, canUserPerformWrite);
@@ -283,6 +284,7 @@ function LHNOptionsList({style, contentContainerStyles, data, onSelectRow, optio
283284
policy,
284285
personalDetails,
285286
data.length,
287+
draftComments,
286288
optionMode,
287289
preferredLocale,
288290
transactions,
@@ -299,6 +301,7 @@ function LHNOptionsList({style, contentContainerStyles, data, onSelectRow, optio
299301
policy,
300302
personalDetails,
301303
data.length,
304+
draftComments,
302305
optionMode,
303306
preferredLocale,
304307
transactions,

src/hooks/useDiffPrevious.ts

Lines changed: 0 additions & 16 deletions
This file was deleted.

src/hooks/useSidebarOrderedReports.tsx

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,9 @@ import SidebarUtils from '@libs/SidebarUtils';
77
import CONST from '@src/CONST';
88
import ONYXKEYS from '@src/ONYXKEYS';
99
import type * as OnyxTypes from '@src/types/onyx';
10-
import {getEmptyObject} from '@src/types/utils/EmptyObject';
1110
import mapOnyxCollectionItems from '@src/utils/mapOnyxCollectionItems';
1211
import useCurrentReportID from './useCurrentReportID';
1312
import useCurrentUserPersonalDetails from './useCurrentUserPersonalDetails';
14-
import useDiffPrevious from './useDiffPrevious';
1513
import useOnyx from './useOnyx';
1614
import usePrevious from './usePrevious';
1715
import useResponsiveLayout from './useResponsiveLayout';
@@ -63,8 +61,7 @@ function SidebarOrderedReportsContextProvider({
6361
const [transactions, {sourceValue: transactionsUpdates}] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION, {canBeMissing: true});
6462
const [transactionViolations, {sourceValue: transactionViolationsUpdates}] = useOnyx(ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS, {canBeMissing: true});
6563
const [reportNameValuePairs, {sourceValue: reportNameValuePairsUpdates}] = useOnyx(ONYXKEYS.COLLECTION.REPORT_NAME_VALUE_PAIRS, {canBeMissing: true});
66-
const [drafts = getEmptyObject<OnyxTypes.DraftReportComments>()] = useOnyx(ONYXKEYS.NVP_DRAFT_REPORT_COMMENTS, {canBeMissing: true});
67-
const reportsDraftsUpdates = useDiffPrevious(drafts);
64+
const [, {sourceValue: reportsDraftsUpdates}] = useOnyx(ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT, {canBeMissing: true});
6865
const [betas] = useOnyx(ONYXKEYS.BETAS, {canBeMissing: true});
6966
const [reportAttributes] = useOnyx(ONYXKEYS.DERIVED.REPORT_ATTRIBUTES, {selector: (value) => value?.reports, canBeMissing: true});
7067
const [currentReportsToDisplay, setCurrentReportsToDisplay] = useState<ReportsToDisplayInLHN>({});
@@ -97,8 +94,8 @@ function SidebarOrderedReportsContextProvider({
9794
reportsToUpdate = Object.keys(transactionViolationsUpdates ?? {})
9895
.map((key) => key.replace(ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS, ONYXKEYS.COLLECTION.TRANSACTION))
9996
.map((key) => `${ONYXKEYS.COLLECTION.REPORT}${transactions?.[key]?.reportID}`);
100-
} else if (reportsDraftsUpdates.length > 0) {
101-
reportsToUpdate = reportsDraftsUpdates.map((key) => `${ONYXKEYS.COLLECTION.REPORT}${key}`);
97+
} else if (reportsDraftsUpdates) {
98+
reportsToUpdate = Object.keys(reportsDraftsUpdates).map((key) => key.replace(ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT, ONYXKEYS.COLLECTION.REPORT));
10299
} else if (policiesUpdates) {
103100
const updatedPolicies = Object.keys(policiesUpdates).map((key) => key.replace(ONYXKEYS.COLLECTION.POLICY, ''));
104101
reportsToUpdate = Object.entries(chatReports ?? {})
@@ -149,10 +146,10 @@ function SidebarOrderedReportsContextProvider({
149146
derivedCurrentReportID,
150147
priorityMode === CONST.PRIORITY_MODE.GSD,
151148
betas,
149+
policies,
152150
transactionViolations,
153151
reportNameValuePairs,
154152
reportAttributes,
155-
drafts,
156153
);
157154
} else {
158155
reportsToDisplay = SidebarUtils.getReportsToDisplayInLHN(
@@ -164,20 +161,19 @@ function SidebarOrderedReportsContextProvider({
164161
transactionViolations,
165162
reportNameValuePairs,
166163
reportAttributes,
167-
drafts,
168164
);
169165
}
170166
return reportsToDisplay;
171167
// Rule disabled intentionally — triggering a re-render on currentReportsToDisplay would cause an infinite loop
172168
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
173-
}, [getUpdatedReports, chatReports, derivedCurrentReportID, priorityMode, betas, policies, transactionViolations, reportNameValuePairs, reportAttributes, reportsDraftsUpdates]);
169+
}, [getUpdatedReports, chatReports, derivedCurrentReportID, priorityMode, betas, policies, transactionViolations, reportNameValuePairs, reportAttributes]);
174170

175171
useEffect(() => {
176172
setCurrentReportsToDisplay(reportsToDisplayInLHN);
177173
}, [reportsToDisplayInLHN]);
178174

179175
const getOrderedReportIDs = useCallback(
180-
() => SidebarUtils.sortReportsToDisplayInLHN(reportsToDisplayInLHN, priorityMode, reportNameValuePairs, reportAttributes, drafts),
176+
() => SidebarUtils.sortReportsToDisplayInLHN(reportsToDisplayInLHN, priorityMode, reportNameValuePairs, reportAttributes),
181177
// Rule disabled intentionally - reports should be sorted only when the reportsToDisplayInLHN changes
182178
// eslint-disable-next-line react-compiler/react-compiler, react-hooks/exhaustive-deps
183179
[reportsToDisplayInLHN],

src/libs/API/parameters/SaveReportDraftCommentParams.ts

Lines changed: 0 additions & 6 deletions
This file was deleted.

src/libs/API/parameters/index.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -408,4 +408,3 @@ export type {default as ExportMultiLevelTagsSpreadSheetParams} from './ExportMul
408408
export type {default as ReopenReportParams} from './ReopenReportParams';
409409
export type {default as OpenUnreportedExpensesPageParams} from './OpenUnreportedExpensesPageParams';
410410
export type {default as VerifyTestDriveRecipientParams} from './VerifyTestDriveRecipientParams';
411-
export type {default as SaveReportDraftCommentParams} from './SaveReportDraftCommentParams';

src/libs/API/types.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import type UpdateBeneficialOwnersForBankAccountParams from './parameters/Update
1111
type ApiRequestType = ValueOf<typeof CONST.API_REQUEST_TYPE>;
1212

1313
const WRITE_COMMANDS = {
14-
SAVE_REPORT_DRAFT_COMMENT: 'SaveReportDraftComment',
1514
CLEAN_POLICY_TAGS: 'ClearPolicyTags',
1615
IMPORT_MULTI_LEVEL_TAGS: 'ImportMultiLevelTags',
1716
SET_WORKSPACE_AUTO_REPORTING_FREQUENCY: 'SetWorkspaceAutoReportingFrequency',
@@ -843,7 +842,6 @@ type WriteCommandParameters = {
843842
[WRITE_COMMANDS.COMPLETE_CONCIERGE_CALL]: Parameters.CompleteConciergeCallParams;
844843
[WRITE_COMMANDS.FINISH_CORPAY_BANK_ACCOUNT_ONBOARDING]: Parameters.FinishCorpayBankAccountOnboardingParams;
845844
[WRITE_COMMANDS.REOPEN_REPORT]: Parameters.ReopenReportParams;
846-
[WRITE_COMMANDS.SAVE_REPORT_DRAFT_COMMENT]: Parameters.SaveReportDraftCommentParams;
847845

848846
[WRITE_COMMANDS.DELETE_MONEY_REQUEST_ON_SEARCH]: Parameters.DeleteMoneyRequestOnSearchParams;
849847
[WRITE_COMMANDS.HOLD_MONEY_REQUEST_ON_SEARCH]: Parameters.HoldMoneyRequestOnSearchParams;

src/libs/DraftCommentUtils.ts

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import type {OnyxEntry} from 'react-native-onyx';
1+
import type {OnyxCollection, OnyxEntry} from 'react-native-onyx';
22
import Onyx from 'react-native-onyx';
33
import ONYXKEYS from '@src/ONYXKEYS';
4-
import type {DraftReportComments} from '@src/types/onyx';
54

6-
let draftComments: OnyxEntry<DraftReportComments> = {};
5+
let draftCommentCollection: OnyxCollection<string> = {};
76
Onyx.connect({
8-
key: ONYXKEYS.NVP_DRAFT_REPORT_COMMENTS,
7+
key: ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT,
98
callback: (nextVal) => {
10-
draftComments = nextVal;
9+
draftCommentCollection = nextVal;
1110
},
11+
waitForCollectionCallback: true,
1212
});
1313

1414
/**
@@ -17,15 +17,22 @@ Onyx.connect({
1717
* A valid use-case of this function is outside React components, like in utility functions.
1818
*/
1919
function getDraftComment(reportID: string): OnyxEntry<string> | null | undefined {
20-
return draftComments?.[reportID];
20+
return draftCommentCollection?.[ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT + reportID];
21+
}
22+
23+
/**
24+
* Returns true if the report has a valid draft comment.
25+
* A valid draft comment is a non-empty string.
26+
*/
27+
function isValidDraftComment(comment?: string | null): boolean {
28+
return !!comment;
2129
}
2230

2331
/**
2432
* Returns true if the report has a valid draft comment.
25-
* NOTE: please prefer useOnyx when possible
2633
*/
2734
function hasValidDraftComment(reportID: string): boolean {
28-
return !!getDraftComment(reportID);
35+
return isValidDraftComment(getDraftComment(reportID));
2936
}
3037

3138
/**
@@ -37,4 +44,4 @@ function prepareDraftComment(comment: string | null) {
3744
return comment || null;
3845
}
3946

40-
export {getDraftComment, hasValidDraftComment, prepareDraftComment};
47+
export {getDraftComment, isValidDraftComment, hasValidDraftComment, prepareDraftComment};

src/libs/SidebarUtils.ts

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,7 @@ import type {ValueOf} from 'type-fest';
55
import type {PartialPolicyForSidebar, ReportsToDisplayInLHN} from '@hooks/useSidebarOrderedReports';
66
import CONST from '@src/CONST';
77
import ONYXKEYS from '@src/ONYXKEYS';
8-
import type {
9-
DraftReportComments,
10-
PersonalDetails,
11-
PersonalDetailsList,
12-
ReportActions,
13-
ReportAttributesDerivedValue,
14-
ReportNameValuePairs,
15-
Transaction,
16-
TransactionViolation,
17-
} from '@src/types/onyx';
8+
import type {PersonalDetails, PersonalDetailsList, ReportActions, ReportAttributesDerivedValue, ReportNameValuePairs, Transaction, TransactionViolation} from '@src/types/onyx';
189
import type Beta from '@src/types/onyx/Beta';
1910
import type {ReportAttributes} from '@src/types/onyx/DerivedValues';
2011
import type {Errors} from '@src/types/onyx/OnyxCommon';
@@ -24,6 +15,7 @@ import type Report from '@src/types/onyx/Report';
2415
import type ReportAction from '@src/types/onyx/ReportAction';
2516
import {getExpensifyCardFromReportAction} from './CardMessageUtils';
2617
import {extractCollectionItemID} from './CollectionUtils';
18+
import {hasValidDraftComment} from './DraftCommentUtils';
2719
import localeCompare from './LocaleCompare';
2820
import {translateLocal} from './Localize';
2921
import {getLastActorDisplayName, getLastMessageTextForReport, getPersonalDetailsForAccountIDs, shouldShowLastActorDisplayName} from './OptionsListUtils';
@@ -215,7 +207,6 @@ function shouldDisplayReportInLHN(
215207
transactionViolations: OnyxCollection<TransactionViolation[]>,
216208
reportNameValuePairs?: OnyxCollection<ReportNameValuePairs>,
217209
reportAttributes?: ReportAttributesDerivedValue['reports'],
218-
draftReportComments?: DraftReportComments,
219210
) {
220211
if (!report) {
221212
return {shouldDisplay: false};
@@ -247,12 +238,7 @@ function shouldDisplayReportInLHN(
247238
const isSystemChat = isSystemChatUtil(report);
248239
const isReportArchived = isArchivedReport(reportNameValuePairs);
249240
const shouldOverrideHidden =
250-
!!draftReportComments?.[report.reportID] ||
251-
hasErrorsOtherThanFailedReceipt ||
252-
isFocused ||
253-
isSystemChat ||
254-
!!report.isPinned ||
255-
reportAttributes?.[report?.reportID]?.requiresAttention;
241+
hasValidDraftComment(report.reportID) || hasErrorsOtherThanFailedReceipt || isFocused || isSystemChat || !!report.isPinned || reportAttributes?.[report?.reportID]?.requiresAttention;
256242

257243
if (isHidden && !shouldOverrideHidden) {
258244
return {shouldDisplay: false};
@@ -283,7 +269,6 @@ function getReportsToDisplayInLHN(
283269
transactionViolations: OnyxCollection<TransactionViolation[]>,
284270
reportNameValuePairs?: OnyxCollection<ReportNameValuePairs>,
285271
reportAttributes?: ReportAttributesDerivedValue['reports'],
286-
draftReportComments?: DraftReportComments,
287272
) {
288273
const isInFocusMode = priorityMode === CONST.PRIORITY_MODE.GSD;
289274
const allReportsDictValues = reports ?? {};
@@ -303,7 +288,6 @@ function getReportsToDisplayInLHN(
303288
transactionViolations,
304289
reportNameValuePairs,
305290
reportAttributes,
306-
draftReportComments,
307291
);
308292

309293
if (shouldDisplay) {
@@ -321,10 +305,10 @@ function updateReportsToDisplayInLHN(
321305
currentReportId: string | undefined,
322306
isInFocusMode: boolean,
323307
betas: OnyxEntry<Beta[]>,
308+
policies: OnyxCollection<PartialPolicyForSidebar>,
324309
transactionViolations: OnyxCollection<TransactionViolation[]>,
325310
reportNameValuePairs?: OnyxCollection<ReportNameValuePairs>,
326311
reportAttributes?: ReportAttributesDerivedValue['reports'],
327-
draftReportComments?: DraftReportComments,
328312
) {
329313
const displayedReportsCopy = {...displayedReports};
330314
updatedReportsKeys.forEach((reportID) => {
@@ -342,7 +326,6 @@ function updateReportsToDisplayInLHN(
342326
transactionViolations,
343327
reportNameValuePairs,
344328
reportAttributes,
345-
draftReportComments,
346329
);
347330

348331
if (shouldDisplay) {
@@ -363,7 +346,6 @@ function sortReportsToDisplayInLHN(
363346
priorityMode: OnyxEntry<PriorityMode>,
364347
reportNameValuePairs?: OnyxCollection<ReportNameValuePairs>,
365348
reportAttributes?: ReportAttributesDerivedValue['reports'],
366-
draftReportComments?: DraftReportComments,
367349
): string[] {
368350
Performance.markStart(CONST.TIMING.GET_ORDERED_REPORT_IDS);
369351
const isInFocusMode = priorityMode === CONST.PRIORITY_MODE.GSD;
@@ -400,7 +382,7 @@ function sortReportsToDisplayInLHN(
400382
pinnedAndGBRReports.push(miniReport);
401383
} else if (report?.hasErrorsOtherThanFailedReceipt) {
402384
errorReports.push(miniReport);
403-
} else if (draftReportComments?.[report?.reportID]) {
385+
} else if (hasValidDraftComment(report?.reportID)) {
404386
draftReports.push(miniReport);
405387
} else if (isArchivedNonExpenseReport(report, !!rNVPs?.private_isArchived)) {
406388
archivedReports.push(miniReport);

src/libs/actions/IOU.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -753,19 +753,17 @@ Onyx.connect({
753753
const policyID = key.replace(ONYXKEYS.COLLECTION.POLICY, '');
754754
const policyReports = getAllPolicyReports(policyID);
755755
const cleanUpMergeQueries: Record<`${typeof ONYXKEYS.COLLECTION.REPORT}${string}`, NullishDeep<Report>> = {};
756-
const cleanUpSetQueries: Record<`${typeof ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS}${string}`, null> = {};
757-
const cleanUpDrafts: Record<string, null> = {};
756+
const cleanUpSetQueries: Record<`${typeof ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT}${string}` | `${typeof ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS}${string}`, null> = {};
758757
policyReports.forEach((policyReport) => {
759758
if (!policyReport) {
760759
return;
761760
}
762761
const {reportID} = policyReport;
763-
cleanUpDrafts[reportID] = null;
762+
cleanUpSetQueries[`${ONYXKEYS.COLLECTION.REPORT_DRAFT_COMMENT}${reportID}`] = null;
764763
cleanUpSetQueries[`${ONYXKEYS.COLLECTION.REPORT_ACTIONS_DRAFTS}${reportID}`] = null;
765764
});
766765
Onyx.mergeCollection(ONYXKEYS.COLLECTION.REPORT, cleanUpMergeQueries);
767766
Onyx.multiSet(cleanUpSetQueries);
768-
Onyx.merge(ONYXKEYS.NVP_DRAFT_REPORT_COMMENTS, cleanUpDrafts);
769767
delete allPolicies[key];
770768
return;
771769
}

0 commit comments

Comments
 (0)