Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
41c2688
First batch of UI consistency changes
zfurtak Feb 28, 2026
23752c8
Merge
zfurtak Feb 28, 2026
e5c6d8e
Merge branch 'main' into @zfurtak/change-select-icons
zfurtak Feb 28, 2026
dee9301
Merge branch 'main' into @zfurtak/change-select-icons
zfurtak Mar 9, 2026
a8b7ac3
Fix lint errors
zfurtak Mar 10, 2026
31b52ca
Migrate WorkspaceConfirmationOwnerSelectorPage
zfurtak Mar 11, 2026
eb6cf02
Adjust tests
zfurtak Mar 11, 2026
42ea589
Fix lint
zfurtak Mar 11, 2026
6d924d8
Migrate compoentns to use new ListItem
zfurtak Mar 11, 2026
f4467f4
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 11, 2026
c426fca
Fi type and lint errors
zfurtak Mar 11, 2026
1a54819
Run prettier
zfurtak Mar 11, 2026
d942f7d
Fix tetss
zfurtak Mar 12, 2026
31c3109
Merge branch 'revert/revert/migrate-NewChatPage' into @zfurtak/clean-…
zfurtak Mar 12, 2026
6f6d875
Delete files related to old SelectionListWithSections
zfurtak Mar 12, 2026
5a658c3
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 12, 2026
adcd9ca
Prettier
zfurtak Mar 12, 2026
8ec76cd
Fix some lint errors
zfurtak Mar 12, 2026
7ad3f75
Adjust imports
zfurtak Mar 12, 2026
8a28a13
Fix import
zfurtak Mar 12, 2026
29c72d2
Fix ts errors
zfurtak Mar 12, 2026
3e75768
Fix SearchUIUtilsTest
zfurtak Mar 12, 2026
cda9a01
Fix BaseSelectionListSectionsTest
zfurtak Mar 12, 2026
8ad3e7c
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 12, 2026
b472b72
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 12, 2026
c205565
Adjust lint rule and docs
zfurtak Mar 12, 2026
d895034
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 13, 2026
8d34784
Fix perf test
zfurtak Mar 13, 2026
ad3f752
Adjust to comment
zfurtak Mar 16, 2026
9d8a36c
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 16, 2026
e6f08e3
Moved SingleSelectItem to SelectionScreen
zfurtak Mar 16, 2026
d004365
Merge branch 'revert/revert/migrate-NewChatPage' into @zfurtak/clean-…
zfurtak Mar 16, 2026
89cb97c
Merge branch '@zfurtak/clean-after-migration' into @zfurtak/change-se…
zfurtak Mar 16, 2026
1f1b110
Prettier
zfurtak Mar 16, 2026
e2aa2b8
Fi ts
zfurtak Mar 16, 2026
8f301ee
Prettier
zfurtak Mar 16, 2026
4a19970
Add sentry label
zfurtak Mar 18, 2026
1d6c464
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 18, 2026
c0d0859
Merge branch '@zfurtak/clean-after-migration' into @zfurtak/change-se…
zfurtak Mar 18, 2026
87e6a36
Fix test
zfurtak Mar 18, 2026
a4e1dfd
Merge branch 'main' into @zfurtak/change-select-icons
zfurtak Mar 18, 2026
103f6e1
Fix test
zfurtak Mar 18, 2026
c3a53a6
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 18, 2026
a51291e
Merge branch '@zfurtak/clean-after-migration' into @zfurtak/change-se…
zfurtak Mar 18, 2026
f4ba0af
Adjust InviteMemberListItem
zfurtak Mar 18, 2026
d0ce3e6
Adjust SingleSelectItem
zfurtak Mar 18, 2026
08f4a2a
Adjust SingleSelectListItem
zfurtak Mar 19, 2026
b4bd719
Fix styles and remaining lists
zfurtak Mar 19, 2026
5e8bb36
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 19, 2026
96cfe2f
Merge branch '@zfurtak/clean-after-migration' into @zfurtak/change-se…
zfurtak Mar 19, 2026
f539ff7
Merge branch 'revert/revert/migrate-NewChatPage' into @zfurtak/change…
zfurtak Mar 19, 2026
49229a5
Merge branch 'revert/revert/migrate-NewChatPage' into @zfurtak/clean-…
zfurtak Mar 19, 2026
da70de6
Fix ts
zfurtak Mar 19, 2026
8dbe1bc
Merge branch 'main' into @zfurtak/clean-after-migration
zfurtak Mar 20, 2026
d983351
Merge branch '@zfurtak/clean-after-migration' into @zfurtak/change-se…
zfurtak Mar 20, 2026
ce29c1c
Revert Mobile-Expensify change
zfurtak Mar 20, 2026
8af6f2a
Fix eslint warnings
zfurtak Mar 20, 2026
3a2c9e1
Merge branch 'main' into @zfurtak/change-select-icons
zfurtak Mar 20, 2026
6086119
Fix ts
zfurtak Mar 20, 2026
fcc5f94
Adjust tests
zfurtak Mar 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
13 changes: 9 additions & 4 deletions contributingGuides/SELECTION_LIST.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This doc explains when and how to use the `SelectionList` and `SelectionListWith
There are two main components:

- [**`SelectionList`**](../src/components/SelectionList/BaseSelectionList.tsx) - For displaying a single array of data (no sections)
- [**`SelectionListWithSections`**](../src/components/SelectionListWithSections/BaseSelectionListWithSections.tsx) - For displaying data organized into multiple sections
- [**`SelectionListWithSections`**](../src/components/SelectionList/SelectionListWithSections/BaseSelectionListWithSections.tsx) - For displaying data organized into multiple sections

## When to Use Each Component

Expand Down Expand Up @@ -59,13 +59,18 @@ There are two main components:
```tsx
<SelectionListWithSections
sections={[
{ title: 'Recent', data: recentContacts },
{ title: 'All Contacts', data: allContacts },
{ title: 'Recent', data: recentContacts, sectionIndex: 0 },
{ title: 'All Contacts', data: allContacts, sectionIndex: 1 },
]}
ListItem={UserListItem}
onSelectRow={handleSelectContact}
shouldShowTextInput
textInputLabel="Search contacts"
textInputOptions={{
label: "Search items",
value: searchText,
onChangeText: setSearchText,
headerMessage
}}
/>
```

Expand Down
8 changes: 0 additions & 8 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -132,14 +132,6 @@ const restrictedImportPaths = [
name: '@src/utils/findNodeHandle',
message: "Do not use 'findNodeHandle' as it is no longer supported on web.",
},
{
name: './SelectionListWithSections',
message: 'Use `SelectionList` for flat data. Only use `SelectionListWithSection` when data is actually sectioned. See contributingGuides/SELECTION_LIST.md for details',
},
{
name: '@components/SelectionListWithSections',
message: 'Use `SelectionList` for flat data. Only use `SelectionListWithSection` when data is actually sectioned. See contributingGuides/SELECTION_LIST.md for details',
},
];

const restrictedImportPatterns = [
Expand Down
5 changes: 4 additions & 1 deletion src/CONST/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,9 @@ const signupQualifiers = {
SMB: 'smb',
} as const;

type OnboardingAccounting = keyof typeof CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY | null;
type NoneAccountingKey = 'none';

type OnboardingAccounting = keyof typeof CONST.POLICY.CONNECTIONS.NAME_USER_FRIENDLY | NoneAccountingKey | null;

const onboardingInviteTypes = {
IOU: 'iou',
Expand Down Expand Up @@ -8637,6 +8639,7 @@ const CONST = {
GROUP_EXPAND_TOGGLE: 'Search-GroupExpandToggle',
GROUP_SELECT_ALL_CHECKBOX: 'Search-GroupSelectAllCheckbox',
SORTABLE_HEADER: 'Search-SortableHeader',
UNREPORTED_EXPENSE_LIST_ITEM: 'UnreportedExpenseListItem',
},
REPORT: {
FLOATING_MESSAGE_COUNTER: 'Report-FloatingMessageCounter',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import InputWrapper from '@components/Form/InputWrapper';
import type {FormInputErrors, FormOnyxValues} from '@components/Form/types';
import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
import SelectionList from '@components/SelectionList';
import RadioListItem from '@components/SelectionList/ListItem/RadioListItem';
import SingleSelectListItem from '@components/SelectionList/ListItem/SingleSelectListItem';
import TextInput from '@components/TextInput';
import useLocalize from '@hooks/useLocalize';
import usePermissions from '@hooks/usePermissions';
Expand Down Expand Up @@ -132,14 +132,12 @@ function PaymentCardChangeCurrencyForm({changeBillingCurrency, isSecurityCodeReq
<View style={[styles.mh5, styles.flexGrow1]}>
<SelectionList
data={currencyOptions}
ListItem={RadioListItem}
ListItem={SingleSelectListItem}
onSelectRow={(option) => {
selectCurrency(option.value);
}}
style={{containerStyle: styles.mhn5}}
initiallyFocusedItemKey={currency}
customListHeader={<PaymentCardCurrencyHeader isSectionList />}
shouldStopPropagation
/>
</View>
);
Expand Down
5 changes: 2 additions & 3 deletions src/components/AddPaymentCard/PaymentCardCurrencyModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import HeaderWithBackButton from '@components/HeaderWithBackButton';
import Modal from '@components/Modal';
import ScreenWrapper from '@components/ScreenWrapper';
import SelectionList from '@components/SelectionList';
import RadioListItem from '@components/SelectionList/ListItem/RadioListItem';
import SingleSelectListItem from '@components/SelectionList/ListItem/SingleSelectListItem';
import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
import Navigation from '@libs/Navigation/Navigation';
Expand Down Expand Up @@ -67,11 +67,10 @@ function PaymentCardCurrencyModal({isVisible, currencies, currentCurrency = CONS
/>
<SelectionList
data={currencyOptions}
ListItem={RadioListItem}
ListItem={SingleSelectListItem}
onSelectRow={(option) => {
onCurrencyChange(option.value);
}}
initiallyFocusedItemKey={currentCurrency}
showScrollIndicator
/>
</ScreenWrapper>
Expand Down
12 changes: 7 additions & 5 deletions src/components/AddPlaidBankAccount.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -251,9 +251,11 @@ function AddPlaidBankAccount({

return (
<FullPageOfflineBlockingView>
<Text style={[styles.mb3, styles.textHeadlineLineHeightXXL]}>{translate(isDisplayedInWalletFlow ? 'walletPage.chooseYourBankAccount' : 'bankAccount.chooseAnAccount')}</Text>
{!!text && <Text style={[styles.mb6, styles.textSupporting]}>{text}</Text>}
<View style={[styles.flexRow, styles.alignItemsCenter, styles.mb6]}>
<Text style={[styles.mh5, styles.mb3, styles.textHeadlineLineHeightXXL]}>
{translate(isDisplayedInWalletFlow ? 'walletPage.chooseYourBankAccount' : 'bankAccount.chooseAnAccount')}
</Text>
{!!text && <Text style={[styles.mh5, styles.mb6, styles.textSupporting]}>{text}</Text>}
<View style={[styles.mh5, styles.flexRow, styles.alignItemsCenter, styles.mb6]}>
<Icon
src={icon}
height={iconSize}
Expand All @@ -267,12 +269,12 @@ function AddPlaidBankAccount({
)}
</View>
</View>
<Text style={[styles.textLabelSupporting]}>{`${translate('bankAccount.chooseAnAccountBelow')}:`}</Text>
<Text style={[styles.textLabelSupporting, styles.mh5]}>{`${translate('bankAccount.chooseAnAccountBelow')}:`}</Text>
<RadioButtons
items={options}
defaultCheckedValue={defaultSelectedPlaidAccountID}
onPress={handleSelectingPlaidAccount}
radioButtonStyle={[styles.mb6]}
radioButtonStyle={[styles.optionRowCompact, styles.ph5]}
/>
<FormHelpMessage message={errorText} />
</FullPageOfflineBlockingView>
Expand Down
1 change: 1 addition & 0 deletions src/components/ApproverSelectionList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ function ApproverSelectionList({
shouldUpdateFocusedIndex={shouldUpdateFocusedIndex}
showScrollIndicator
isRowMultilineSupported
shouldShowRadioButton
/>
</FullPageNotFoundView>
</ScreenWrapper>
Expand Down
2 changes: 1 addition & 1 deletion src/components/AvatarWithDisplayName.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ import Icon from './Icon';
import ParentNavigationSubtitle from './ParentNavigationSubtitle';
import PressableWithoutFeedback from './Pressable/PressableWithoutFeedback';
import ReportActionAvatars from './ReportActionAvatars';
import type {TransactionListItemType} from './SelectionListWithSections/types';
import type {TransactionListItemType} from './Search/SearchList/ListItem/types';
import Text from './Text';

type AvatarWithDisplayNameProps = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ function BaseVacationDelegateSelectionComponent({
onEndReached={onListEndReached}
shouldSingleExecuteRowSelect
shouldShowTextInput
shouldShowRadioButton
/>
</View>
)}
Expand Down
4 changes: 2 additions & 2 deletions src/components/CategoryPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {getHeaderMessageForNonUserList} from '@libs/OptionsListUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import {isEmptyObject} from '@src/types/utils/EmptyObject';
import RadioListItem from './SelectionList/ListItem/RadioListItem';
import SingleSelectListItem from './SelectionList/ListItem/SingleSelectListItem';
import SelectionListWithSections from './SelectionList/SelectionListWithSections';
import type {ListItem} from './SelectionList/types';

Expand Down Expand Up @@ -80,7 +80,7 @@ function CategoryPicker({selectedCategory, policyID, onSubmit, addBottomSafeArea
<SelectionListWithSections
sections={sections}
onSelectRow={onSubmit}
ListItem={RadioListItem}
ListItem={SingleSelectListItem}
shouldShowTextInput={categoriesCount >= CONST.STANDARD_LIST_ITEM_LIMIT}
textInputOptions={textInputOptions}
initiallyFocusedItemKey={selectedOptionKey}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import CategoryPicker from '@components/CategoryPicker';
import HeaderWithBackButton from '@components/HeaderWithBackButton';
import Modal from '@components/Modal';
import ScreenWrapper from '@components/ScreenWrapper';
import type {ListItem} from '@components/SelectionListWithSections/types';
import type {ListItem} from '@components/SelectionList/types';
import useThemeStyles from '@hooks/useThemeStyles';
import CONST from '@src/CONST';

Expand Down
2 changes: 1 addition & 1 deletion src/components/CategorySelector/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import type {StyleProp, ViewStyle} from 'react-native';
import {View} from 'react-native';
import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
import type {ListItem} from '@components/SelectionListWithSections/types';
import type {ListItem} from '@components/SelectionList/types';
import useThemeStyles from '@hooks/useThemeStyles';
import {getDecodedCategoryName} from '@libs/CategoryUtils';
import CONST from '@src/CONST';
Expand Down
5 changes: 5 additions & 0 deletions src/components/Checkbox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,9 @@ type CheckboxProps = Partial<ChildrenProps> &
/** Reference to the outer element */
ref?: ForwardedRef<View>;

/** Whether this Checkbox should be focusable with a non-touch input device, eg. receive focus with a hardware keyboard. */
focusable?: boolean;

/** Tab index for the checkbox */
tabIndex?: 0 | -1;
};
Expand All @@ -89,6 +92,7 @@ function Checkbox({
wrapperStyle,
testID,
ref,
focusable = true,
sentryLabel,
tabIndex,
}: CheckboxProps) {
Expand Down Expand Up @@ -147,6 +151,7 @@ function Checkbox({
accessibilityLabel={accessibilityLabel}
pressDimmingValue={1}
wrapperStyle={wrapperStyle}
focusable={focusable}
sentryLabel={sentryLabel}
shouldUseAutoHitSlop
>
Expand Down
3 changes: 2 additions & 1 deletion src/components/ColumnsSettingsList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import Icon from './Icon';
import ScreenWrapper from './ScreenWrapper';
import ScrollView from './ScrollView';
import type {SearchCustomColumnIds} from './Search/types';
import MultiSelectListItem from './SelectionList/ListItem/MultiSelectListItem';
import type {ListItem} from './SelectionList/types';
import MultiSelectListItem from './SelectionListWithSections/MultiSelectListItem';
import Text from './Text';
import TextLink from './TextLink';

Expand Down Expand Up @@ -217,6 +217,7 @@ function ColumnsSettingsList({allColumns, defaultSelectedColumns, currentColumns
return (
<MultiSelectListItem
item={item}
keyForList={item.keyForList}
isFocused={isFocused}
showTooltip={false}
onSelectRow={onSelectItem}
Expand Down
4 changes: 2 additions & 2 deletions src/components/CountryPicker/CountrySelectorModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import HeaderWithBackButton from '@components/HeaderWithBackButton';
import Modal from '@components/Modal';
import ScreenWrapper from '@components/ScreenWrapper';
import SelectionList from '@components/SelectionList';
import RadioListItem from '@components/SelectionList/ListItem/RadioListItem';
import SingleSelectListItem from '@components/SelectionList/ListItem/SingleSelectListItem';
import useDebouncedState from '@hooks/useDebouncedState';
import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
Expand Down Expand Up @@ -90,7 +90,7 @@ function CountrySelectorModal({isVisible, currentCountry, onCountrySelected, onC
data={searchResults}
textInputOptions={textInputOptions}
onSelectRow={onCountrySelected}
ListItem={RadioListItem}
ListItem={SingleSelectListItem}
initiallyFocusedItemKey={currentCountry}
shouldSingleExecuteRowSelect
shouldStopPropagation
Expand Down
9 changes: 7 additions & 2 deletions src/components/CurrencySelectionList/index.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import {Str} from 'expensify-common';
import React, {useState} from 'react';
import RadioListItem from '@components/SelectionList/ListItem/RadioListItem';
import SingleSelectListItem from '@components/SelectionList/ListItem/SingleSelectListItem';
import SelectionListWithSections from '@components/SelectionList/SelectionListWithSections';
import {useCurrencyListActions, useCurrencyListState} from '@hooks/useCurrencyList';
import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
import getMatchScore from '@libs/getMatchScore';
import {isEmptyObject} from '@src/types/utils/EmptyObject';
import type {CurrencyListItem, CurrencySelectionListProps} from './types';
Expand All @@ -22,6 +23,7 @@ function CurrencySelectionList({
const {getCurrencySymbol} = useCurrencyListActions();
const [searchValue, setSearchValue] = useState('');
const {translate} = useLocalize();
const styles = useThemeStyles();
const getUnselectedOptions = (options: CurrencyListItem[]) => options.filter((option) => !option.isSelected);

const currencyOptions: CurrencyListItem[] = Object.entries(currencyList).reduce((acc, [currencyCode, currencyInfo]) => {
Expand Down Expand Up @@ -101,8 +103,11 @@ function CurrencySelectionList({
// eslint-disable-next-line react/jsx-props-no-spreading
{...restProps}
sections={sections}
ListItem={RadioListItem}
ListItem={SingleSelectListItem}
onSelectRow={onSelect}
style={{
listItemWrapperStyle: styles.optionRow,
}}
textInputOptions={textInputOptions}
shouldShowTextInput={!!searchInputLabel}
shouldSingleExecuteRowSelect
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import HeaderWithBackButton from '@components/HeaderWithBackButton';
import Modal from '@components/Modal';
import ScreenWrapper from '@components/ScreenWrapper';
import SelectionList from '@components/SelectionList';
import RadioListItem from '@components/SelectionList/ListItem/RadioListItem';
import SingleSelectListItem from '@components/SelectionList/ListItem/SingleSelectListItem';
import useLocalize from '@hooks/useLocalize';
import useThemeStyles from '@hooks/useThemeStyles';
import CONST from '@src/CONST';
Expand Down Expand Up @@ -81,7 +81,7 @@ function YearPickerModal({isVisible, years, currentYear = new Date().getFullYear
/>
<SelectionList
data={data}
ListItem={RadioListItem}
ListItem={SingleSelectListItem}
onSelectRow={(option) => {
Keyboard.dismiss();
onYearChange?.(option.value);
Expand Down
4 changes: 2 additions & 2 deletions src/components/DestinationPicker.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import type {Destination} from '@libs/PerDiemRequestUtils';
import {getPerDiemCustomUnit} from '@libs/PolicyUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import RadioListItem from './SelectionList/ListItem/RadioListItem';
import SingleSelectListItem from './SelectionList/ListItem/SingleSelectListItem';
import SelectionListWithSections from './SelectionList/SelectionListWithSections';
import type {ListItem, SelectionListWithSectionsHandle} from './SelectionList/types';

Expand Down Expand Up @@ -80,7 +80,7 @@ function DestinationPicker({selectedDestination, policyID, onSubmit, ref}: Desti
shouldShowTextInput={shouldShowTextInput}
textInputOptions={textInputOptions}
onSelectRow={onSubmit}
ListItem={RadioListItem}
ListItem={SingleSelectListItem}
initiallyFocusedItemKey={selectedOptionKey}
shouldHideKeyboardOnScroll={false}
shouldUpdateFocusedIndex
Expand Down
2 changes: 1 addition & 1 deletion src/components/EReceipt.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import type IconAsset from '@src/types/utils/IconAsset';
import EReceiptBody from './EReceiptBody';
import Icon from './Icon';
import ImageSVG from './ImageSVG';
import type {TransactionListItemType} from './SelectionListWithSections/types';
import type {TransactionListItemType} from './Search/SearchList/ListItem/types';
import Text from './Text';

type OverrideThemeProps = {
Expand Down
2 changes: 1 addition & 1 deletion src/components/EReceiptWithSizeCalculation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import type {Transaction} from '@src/types/onyx';
import EReceipt from './EReceipt';
import type {OverrideThemeProps} from './EReceipt';
import PerDiemEReceipt from './PerDiemEReceipt';
import type {TransactionListItemType} from './SelectionListWithSections/types';
import type {TransactionListItemType} from './Search/SearchList/ListItem/types';

type EReceiptWithSizeCalculationProps = {
/* TransactionID of the transaction this EReceipt corresponds to */
Expand Down
14 changes: 8 additions & 6 deletions src/components/FeedbackSurvey.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -108,19 +108,21 @@ function FeedbackSurvey({title, description, onSubmit, optionRowStyles, footerTe
isSubmitButtonVisible={false}
enabledWhenOffline={enabledWhenOffline}
>
<View style={styles.mh5}>
<Text style={styles.textHeadline}>{title}</Text>
<Text style={[styles.mt1, styles.mb3, styles.textNormalThemeText]}>{description}</Text>
<View>
<View style={styles.mh5}>
<Text style={styles.textHeadline}>{title}</Text>
<Text style={[styles.mt1, styles.textNormalThemeText]}>{description}</Text>
</View>
<InputWrapper
InputComponent={RadioButtons}
inputID={INPUT_IDS.REASON}
items={options}
radioButtonStyle={[styles.mb7, optionRowStyles]}
radioButtonStyle={[styles.optionRowCompact, styles.ph5, optionRowStyles]}
onPress={handleOptionSelect}
shouldSaveDraft
/>
{!!reason && (
<>
<View style={[styles.mh5, styles.mt4]}>
<Text style={[styles.textNormalThemeText, styles.mb3]}>{translate('feedbackSurvey.additionalInfoTitle')}</Text>
<InputWrapper
InputComponent={TextInput}
Expand All @@ -131,7 +133,7 @@ function FeedbackSurvey({title, description, onSubmit, optionRowStyles, footerTe
onChangeText={handleSetNote}
shouldSaveDraft
/>
</>
</View>
)}
</View>
<FixedFooter style={styles.pb0}>
Expand Down
Loading
Loading