@@ -7,6 +7,7 @@ import FixedFooter from '@components/FixedFooter';
77import HeaderWithBackButton from '@components/HeaderWithBackButton' ;
88import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription' ;
99import ScreenWrapper from '@components/ScreenWrapper' ;
10+ import ScrollView from '@components/ScrollView' ;
1011import useLocalize from '@hooks/useLocalize' ;
1112import useThemeStyles from '@hooks/useThemeStyles' ;
1213import { removeSplitExpenseField , updateSplitExpenseField } from '@libs/actions/IOU' ;
@@ -15,9 +16,11 @@ import Navigation from '@libs/Navigation/Navigation';
1516import type { PlatformStackScreenProps } from '@libs/Navigation/PlatformStackNavigation/types' ;
1617import type { SplitExpenseParamList } from '@libs/Navigation/types' ;
1718import Parser from '@libs/Parser' ;
18- import { getPolicy } from '@libs/PolicyUtils' ;
19+ import { getPolicy , getTagLists } from '@libs/PolicyUtils' ;
1920import type { TransactionDetails } from '@libs/ReportUtils' ;
2021import { getParsedComment , getReportOrDraftReport , getTransactionDetails } from '@libs/ReportUtils' ;
22+ import { hasEnabledTags } from '@libs/TagsOptionsListUtils' ;
23+ import { getTag } from '@libs/TransactionUtils' ;
2124import CONST from '@src/CONST' ;
2225import ONYXKEYS from '@src/ONYXKEYS' ;
2326import ROUTES from '@src/ROUTES' ;
@@ -31,9 +34,13 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
3134 const { translate} = useLocalize ( ) ;
3235
3336 const { reportID, transactionID, splitExpenseTransactionID = '' , backTo} = route . params ;
37+ const report = getReportOrDraftReport ( reportID ) ;
3438
3539 const [ splitExpenseDraftTransaction ] = useOnyx ( `${ ONYXKEYS . COLLECTION . SPLIT_TRANSACTION_DRAFT } ${ CONST . IOU . OPTIMISTIC_TRANSACTION_ID } ` , { canBeMissing : false } ) ;
3640 const splitExpenseDraftTransactionDetails = useMemo < Partial < TransactionDetails > > ( ( ) => getTransactionDetails ( splitExpenseDraftTransaction ) ?? { } , [ splitExpenseDraftTransaction ] ) ;
41+ const policy = getPolicy ( report ?. policyID ) ;
42+ const [ policyCategories ] = useOnyx ( `${ ONYXKEYS . COLLECTION . POLICY_CATEGORIES } ${ report ?. policyID } ` , { canBeMissing : false } ) ;
43+ const [ policyTags ] = useOnyx ( `${ ONYXKEYS . COLLECTION . POLICY_TAGS } ${ report ?. policyID } ` , { canBeMissing : false } ) ;
3744
3845 const [ transaction ] = useOnyx ( `${ ONYXKEYS . COLLECTION . TRANSACTION } ${ transactionID } ` , { canBeMissing : false } ) ;
3946 const transactionDetails = useMemo < Partial < TransactionDetails > > ( ( ) => getTransactionDetails ( transaction ) ?? { } , [ transaction ] ) ;
@@ -45,8 +52,11 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
4552 const currentAmount = transactionDetailsAmount >= 0 ? Math . abs ( Number ( splitExpenseDraftTransactionDetails ?. amount ) ) : Number ( splitExpenseDraftTransactionDetails ?. amount ) ;
4653 const currentDescription = getParsedComment ( Parser . htmlToMarkdown ( splitExpenseDraftTransactionDetails ?. comment ?? '' ) ) ;
4754
48- const report = getReportOrDraftReport ( reportID ) ;
49- const policy = getPolicy ( report ?. policyID ) ;
55+ const transactionTag = getTag ( splitExpenseDraftTransaction ) ;
56+ const policyTagLists = useMemo ( ( ) => getTagLists ( policyTags ) , [ policyTags ] ) ;
57+
58+ const shouldShowTag = ! ! policy ?. areTagsEnabled && ! ! ( transactionTag || hasEnabledTags ( policyTagLists ) ) ;
59+ const shouldShowCategory = ! ! policy ?. areCategoriesEnabled && ! ! policyCategories ;
5060
5161 return (
5262 < ScreenWrapper testID = { SplitExpenseEditPage . displayName } >
@@ -59,7 +69,7 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
5969 } ) }
6070 onBackButtonPress = { ( ) => Navigation . goBack ( backTo ) }
6171 />
62- < View style = { [ styles . flex1 ] } >
72+ < ScrollView >
6373 < MenuItemWithTopDescription
6474 shouldShowRightIcon
6575 shouldRenderAsHTML
@@ -81,7 +91,7 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
8191 titleWrapperStyle = { styles . flex1 }
8292 numberOfLinesTitle = { 2 }
8393 />
84- { ! ! policy ?. areCategoriesEnabled && (
94+ { shouldShowCategory && (
8595 < MenuItemWithTopDescription
8696 shouldShowRightIcon
8797 key = { translate ( 'common.category' ) }
@@ -103,12 +113,12 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
103113 titleStyle = { styles . flex1 }
104114 />
105115 ) }
106- { ! ! policy ?. areTagsEnabled && (
116+ { shouldShowTag && (
107117 < MenuItemWithTopDescription
108118 shouldShowRightIcon
109119 key = { translate ( 'workspace.common.tags' ) }
110120 description = { translate ( 'workspace.common.tags' ) }
111- title = { splitExpenseDraftTransactionDetails ?. tag }
121+ title = { transactionTag }
112122 numberOfLinesTitle = { 2 }
113123 onPress = { ( ) => {
114124 Navigation . navigate (
@@ -146,7 +156,7 @@ function SplitExpenseEditPage({route}: SplitExpensePageProps) {
146156 style = { [ styles . moneyRequestMenuItem ] }
147157 titleStyle = { styles . flex1 }
148158 />
149- </ View >
159+ </ ScrollView >
150160 < FixedFooter style = { styles . mtAuto } >
151161 { Number ( splitExpensesList ?. length ) > 2 && (
152162 < Button
0 commit comments