From 4e34f234bf7a7388e047f7670e8f2a239500db93 Mon Sep 17 00:00:00 2001 From: mkzie2 Date: Thu, 10 Jul 2025 22:20:08 +0700 Subject: [PATCH 1/3] feat: add warning when cash splits are less than original expense amount --- src/components/FormHelpMessage.tsx | 13 ++++++++++++- src/pages/iou/SplitExpensePage.tsx | 13 +++++++++---- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/components/FormHelpMessage.tsx b/src/components/FormHelpMessage.tsx index ab74a7d74b944..16a5689815e09 100644 --- a/src/components/FormHelpMessage.tsx +++ b/src/components/FormHelpMessage.tsx @@ -28,9 +28,12 @@ type FormHelpMessageProps = { /** Whether should render error text as HTML or as Text */ shouldRenderMessageAsHTML?: boolean; + + /** Whether to show information icon */ + isInfor?: boolean; }; -function FormHelpMessage({message = '', children, isError = true, style, shouldShowRedDotIndicator = true, shouldRenderMessageAsHTML = false}: FormHelpMessageProps) { +function FormHelpMessage({message = '', children, isError = true, style, shouldShowRedDotIndicator = true, shouldRenderMessageAsHTML = false, isInfor = false}: FormHelpMessageProps) { const theme = useTheme(); const styles = useThemeStyles(); @@ -60,6 +63,14 @@ function FormHelpMessage({message = '', children, isError = true, style, shouldS fill={theme.danger} /> )} + {isInfor && ( + + )} {children ?? (shouldRenderMessageAsHTML ? : {message})} diff --git a/src/pages/iou/SplitExpensePage.tsx b/src/pages/iou/SplitExpensePage.tsx index 48912fbee9b75..0ebe8151f88b7 100644 --- a/src/pages/iou/SplitExpensePage.tsx +++ b/src/pages/iou/SplitExpensePage.tsx @@ -147,13 +147,18 @@ function SplitExpensePage({route}: SplitExpensePageProps) { ); const footerContent = useMemo(() => { + const shouldShowWarningMessage = sumOfSplitExpenses < Math.abs(transactionDetailsAmount); + const warningMessage = shouldShowWarningMessage + ? translate('iou.totalAmountLessThanOriginal', {amount: convertToDisplayString(Math.abs(transactionDetailsAmount) - sumOfSplitExpenses, transactionDetails.currency)}) + : ''; return ( <> - {!!errorMessage && ( + {(!!errorMessage || !!warningMessage) && ( )}