Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
3bae0af
feat: add sparkles
parasharrajat Nov 14, 2025
9fad653
feat: add show more fields
parasharrajat Nov 14, 2025
4462eec
fix: styles
parasharrajat Nov 14, 2025
aac72e9
feat: add translations
parasharrajat Nov 14, 2025
9f2e174
fix: test
parasharrajat Nov 14, 2025
9f22de7
fix: refactoring
parasharrajat Nov 14, 2025
95667c2
fix: remove extra codes
parasharrajat Nov 14, 2025
dd2683b
chore: bring back code
parasharrajat Nov 14, 2025
504d4a7
fix: styling in native
parasharrajat Nov 14, 2025
5af0732
fix: styling
parasharrajat Nov 14, 2025
57569b2
fix: image full height
parasharrajat Nov 14, 2025
4f191d1
fix: animation
parasharrajat Nov 14, 2025
1d6cb49
fix: eslint
parasharrajat Nov 14, 2025
9fe4427
reset submodule
parasharrajat Nov 14, 2025
fe6b998
Merge branch 'main' of github.com:Expensify/App into rajat/71601
parasharrajat Nov 14, 2025
7b766bd
Translate fix
parasharrajat Nov 14, 2025
1b937a2
Remove animations
parasharrajat Nov 19, 2025
6e9574e
Merge branch 'main' of github.com:Expensify/App into rajat/71601
parasharrajat Nov 19, 2025
5a0a041
Add sparkles icons
parasharrajat Nov 19, 2025
85a0d18
Merge branch 'main' of github.com:Expensify/App into rajat/71601
parasharrajat Dec 11, 2025
1eec1a7
Merge branch 'main' of github.com:Expensify/App into rajat/71601
parasharrajat Dec 15, 2025
ad846b0
Merge main
ShridharGoel Jan 5, 2026
aeae239
Add functionality to blur the bg image and show the actual receipt on…
ShridharGoel Jan 5, 2026
c986029
Update to use the new background images
ShridharGoel Jan 8, 2026
f695289
Show required fields above show more option
ShridharGoel Jan 15, 2026
011699b
Handle display of fields
ShridharGoel Jan 15, 2026
b624f6b
Merge main
ShridharGoel Jan 17, 2026
39bda0a
Prettier fix
ShridharGoel Jan 17, 2026
78192b0
Compress SVGs
ShridharGoel Jan 17, 2026
0c40099
Lint and type fixes
ShridharGoel Jan 17, 2026
11387e5
Address comments
ShridharGoel Jan 20, 2026
2516b21
Merge main
ShridharGoel Jan 20, 2026
ef85540
Address comments
ShridharGoel Jan 20, 2026
2772ddd
Update styles and remove shouldUseFullHeight
ShridharGoel Jan 20, 2026
2dc0353
Fix lint
ShridharGoel Jan 20, 2026
8b25da4
Get rid of extra code
ShridharGoel Jan 20, 2026
0cba53d
shouldUseFullHeight removal
ShridharGoel Jan 20, 2026
af260c3
shouldUseFullHeight removal
ShridharGoel Jan 20, 2026
2043970
Label and icon improvements
ShridharGoel Jan 20, 2026
dca29b6
Update
ShridharGoel Jan 20, 2026
e84086b
Merge main
ShridharGoel Jan 21, 2026
c0a62b8
Merge main
ShridharGoel Jan 21, 2026
47d16ba
Update to cover-style with max height
ShridharGoel Jan 23, 2026
d67217f
Fix receipt height issues
ShridharGoel Jan 26, 2026
2d9cbe9
Update
ShridharGoel Jan 26, 2026
12fdacf
UX updates
ShridharGoel Jan 27, 2026
e08a8a2
Update UI
ShridharGoel Jan 31, 2026
b928b3f
Merge main
ShridharGoel Jan 31, 2026
f97dcc2
Improvements
ShridharGoel Feb 2, 2026
cee7eb8
Use min height of 180px
ShridharGoel Feb 2, 2026
636f63b
Merge branch 'main' of https://github.com/Expensify/App into issue_71601
ShridharGoel Feb 2, 2026
b2b0500
Prettier fix
ShridharGoel Feb 2, 2026
d56f784
Merge main
ShridharGoel Feb 3, 2026
87c9a4a
Naming updates
ShridharGoel Feb 4, 2026
fe9dcf7
Fix small gap at the bottom in zoomed out mode
ShridharGoel Feb 4, 2026
b11dba2
Merge main
ShridharGoel Feb 4, 2026
632ca0c
Add sentry label and fix prettier
ShridharGoel Feb 5, 2026
bc50704
Merge branch 'main' of https://github.com/Expensify/App into issue_71601
ShridharGoel Feb 5, 2026
d55f357
Update sentry label
ShridharGoel Feb 5, 2026
36fbea5
Address comments
ShridharGoel Feb 5, 2026
7d85de1
Improvements and 'To' fix
ShridharGoel Feb 6, 2026
2bbe326
Prettier fix
ShridharGoel Feb 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions assets/images/sparkles.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions src/CONST/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8109,6 +8109,7 @@ const CONST = {
},
SELECTION_LIST_WITH_SECTIONS: {
BASE_LIST_ITEM: 'SelectionListWithSections-BaseListItem',
SELECT_ALL: 'SelectionListWithSections-SelectAll',
},
CONTEXT_MENU: {
REPLY_IN_THREAD: 'ContextMenu-ReplyInThread',
Expand Down
2 changes: 2 additions & 0 deletions src/components/Icon/Expensicons.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ import Instagram from '@assets/images/social-instagram.svg';
import Linkedin from '@assets/images/social-linkedin.svg';
import Podcast from '@assets/images/social-podcast.svg';
import Twitter from '@assets/images/social-twitter.svg';
import Sparkles from '@assets/images/sparkles.svg';
import SpreadsheetComputer from '@assets/images/spreadsheet-computer.svg';
import Star from '@assets/images/Star.svg';
import Stopwatch from '@assets/images/stopwatch.svg';
Expand Down Expand Up @@ -265,6 +266,7 @@ export {
Scan,
Send,
Shield,
Sparkles,
Stopwatch,
Sync,
Task,
Expand Down
2 changes: 2 additions & 0 deletions src/components/Icon/chunks/expensify-icons.chunk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,7 @@ import Linkedin from '@assets/images/social-linkedin.svg';
import Podcast from '@assets/images/social-podcast.svg';
import Twitter from '@assets/images/social-twitter.svg';
import Youtube from '@assets/images/social-youtube.svg';
import Sparkles from '@assets/images/sparkles.svg';
import SpreadsheetComputer from '@assets/images/spreadsheet-computer.svg';
import Star from '@assets/images/Star.svg';
import Stopwatch from '@assets/images/stopwatch.svg';
Expand Down Expand Up @@ -459,6 +460,7 @@ const Expensicons = {
Feed,
Table,
SpreadsheetComputer,
Sparkles,
Bookmark,
Star,
QBDSquare,
Expand Down
1 change: 1 addition & 0 deletions src/components/ImageWithLoading.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ function ImageWithLoading({
// eslint-disable-next-line react/jsx-props-no-spreading
{...rest}
style={[styles.w100, styles.h100, style]}
resizeMode={resizeMode}
onLoadStart={() => {
if (isLoadedRef.current ?? isLoading) {
return;
Expand Down
8 changes: 6 additions & 2 deletions src/components/ImageWithSizeCalculation.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React, {useMemo} from 'react';
import type {ImageSourcePropType, StyleProp, ViewStyle} from 'react-native';
import type {ImageResizeMode, ImageSourcePropType, StyleProp, ViewStyle} from 'react-native';
import useThemeStyles from '@hooks/useThemeStyles';
import Log from '@libs/Log';
import CONST from '@src/CONST';
Expand Down Expand Up @@ -46,6 +46,9 @@ type ImageWithSizeCalculationProps = {

/** Callback to be called when the image loads */
onLoad?: (event: {nativeEvent: {width: number; height: number}}) => void;

/** The resize mode of the image */
resizeMode?: ImageResizeMode;
};

/**
Expand All @@ -65,6 +68,7 @@ function ImageWithSizeCalculation({
loadingIconSize,
loadingIndicatorStyles,
onLoad,
resizeMode,
}: ImageWithSizeCalculationProps) {
const styles = useThemeStyles();

Expand All @@ -82,7 +86,7 @@ function ImageWithSizeCalculation({
source={source}
aria-label={altText}
isAuthTokenRequired={isAuthTokenRequired}
resizeMode={RESIZE_MODES.cover}
resizeMode={resizeMode ?? RESIZE_MODES.cover}
onError={onError}
onLoad={(event: OnLoadNativeEvent) => {
onMeasure({
Expand Down
14 changes: 13 additions & 1 deletion src/components/MenuItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ type MenuItemBaseProps = ForwardedFSClassProps &
/** Label to be displayed on the right */
rightLabel?: string;

/** Icon to be displayed next to the right label */
rightLabelIcon?: IconAsset;

/** Text to display for the item */
title?: string;

Expand Down Expand Up @@ -498,6 +501,7 @@ function MenuItem({
titleContainerStyle,
subtitle,
shouldShowBasicTitle,
rightLabelIcon,
label,
shouldTruncateTitle = false,
characterLimit = 200,
Expand Down Expand Up @@ -1018,7 +1022,15 @@ function MenuItem({
</View>
)}
{!title && !!rightLabel && !errorText && (
<View style={styles.justifyContentCenter}>
<View style={[styles.flexRow, styles.alignItemsCenter, styles.justifyContentCenter, styles.gap1]}>
{!!rightLabelIcon && (
<Icon
src={rightLabelIcon}
fill={theme.icon}
width={variables.iconSizeSmall}
height={variables.iconSizeSmall}
/>
)}
<Text style={styles.rightLabelMenuItem}>{rightLabel}</Text>
</View>
)}
Expand Down
8 changes: 8 additions & 0 deletions src/components/MoneyRequestConfirmationList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ import type {DropdownOption} from './ButtonWithDropdownMenu/types';
import {DelegateNoAccessContext} from './DelegateNoAccessModalProvider';
import FormHelpMessage from './FormHelpMessage';
import MoneyRequestAmountInput from './MoneyRequestAmountInput';
import getContentContainerStyle from './MoneyRequestConfirmationList/getCompactModeListStyles';
import MoneyRequestConfirmationListFooter from './MoneyRequestConfirmationListFooter';
import {PressableWithFeedback} from './Pressable';
import {useProductTrainingContext} from './ProductTrainingContext';
Expand Down Expand Up @@ -432,6 +433,7 @@ function MoneyRequestConfirmationList({

const [didConfirm, setDidConfirm] = useState(isConfirmed);
const [didConfirmSplit, setDidConfirmSplit] = useState(false);
const [showMoreFields, setShowMoreFields] = useState(false);

// Clear the form error if it's set to one among the list passed as an argument
const clearFormErrors = useCallback(
Expand Down Expand Up @@ -1242,6 +1244,8 @@ function MoneyRequestConfirmationList({
reportID,
]);

const isCompactMode = useMemo(() => !showMoreFields && isScanRequest, [isScanRequest, showMoreFields]);

const listFooterContent = (
<MoneyRequestConfirmationListFooter
action={action}
Expand Down Expand Up @@ -1300,6 +1304,8 @@ function MoneyRequestConfirmationList({
onToggleReimbursable={onToggleReimbursable}
isReceiptEditable={isReceiptEditable}
isDescriptionRequired={isDescriptionRequired}
showMoreFields={showMoreFields}
setShowMoreFields={setShowMoreFields}
/>
);

Expand All @@ -1318,6 +1324,8 @@ function MoneyRequestConfirmationList({
containerStyle={[styles.flexBasisAuto]}
removeClippedSubviews={false}
disableKeyboardShortcuts
contentContainerStyle={getContentContainerStyle(isCompactMode, styles.flex1).contentContainerStyle}
ListFooterComponentStyle={isCompactMode ? [styles.flex1] : undefined}
/>
</MouseProvider>
);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import type GetContentContainerStyle from './types';

const getContentContainerStyle: GetContentContainerStyle = () => ({
contentContainerStyle: undefined,
});

export default getContentContainerStyle;
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import type GetContentContainerStyle from './types';

const getContentContainerStyle: GetContentContainerStyle = (isCompactMode, flex1Style) => ({
contentContainerStyle: isCompactMode ? [flex1Style] : undefined,
});

export default getContentContainerStyle;
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import type {StyleProp, ViewStyle} from 'react-native';

type GetContentContainerStyle = (
isCompactMode: boolean,
flex1Style: ViewStyle,
) => {
contentContainerStyle: StyleProp<ViewStyle> | undefined;
};

export default GetContentContainerStyle;
Loading
Loading