Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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 contributingGuides/STYLING.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ All non-theme-related styles must be defined in the `/styles` directory and `sty
The styles are grouped into:
- `staticStyles` - object wrapped into `StyleSheet.create()` which contains static styles based on the `theme`.
- `dynamicStyles` - object that contains functions which return dynamic styles
- `plainStyles` - object that contains styles, which cannot be wrapped by StyleSheet.create eg. because of requirements of 3rd party libraries

All styles that contain theme colors have to be defined in the `ThemeStylesProvider` component, as those need to be dynamically created and animated.

Expand Down
4 changes: 2 additions & 2 deletions src/components/Badge.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ function Badge({
const StyleUtils = useStyleUtils();
const Wrapper = pressable ? PressableWithoutFeedback : View;

const isDeleted = style && Array.isArray(style) ? style.includes(styles.offlineFeedback.deleted) : false;
const isDeleted = style && Array.isArray(style) ? style.includes(styles.offlineFeedbackDeleted) : false;

const iconColor = StyleUtils.getIconColorStyle(success, error);

Expand Down Expand Up @@ -97,7 +97,7 @@ function Badge({
</View>
)}
<Text
style={[styles.badgeText, styles.textStrong, textStyles, isDeleted ? styles.offlineFeedback.deleted : {}]}
style={[styles.badgeText, styles.textStrong, textStyles, isDeleted ? styles.offlineFeedbackDeleted : {}]}
numberOfLines={1}
>
{text}
Expand Down
6 changes: 3 additions & 3 deletions src/components/DotIndicatorMessage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ function DotIndicatorMessage({messages = {}, style, type, textStyles, dismissErr
<>
<Text
key={index}
style={styles.offlineFeedback.text}
style={styles.offlineFeedbackText}
>
<Text style={[StyleUtils.getDotIndicatorTextStyles(isErrorMessage)]}>{translate('iou.error.receiptFailureMessage')}</Text>
<TextLink
Expand Down Expand Up @@ -117,13 +117,13 @@ function DotIndicatorMessage({messages = {}, style, type, textStyles, dismissErr

return (
<View style={[styles.dotIndicatorMessage, style]}>
<View style={styles.offlineFeedback.errorDot}>
<View style={styles.offlineFeedbackErrorDot}>
<Icon
src={Expensicons.DotIndicator}
fill={isErrorMessage ? theme.danger : theme.success}
/>
</View>
<View style={styles.offlineFeedback.textContainer}>{uniqueMessages.map(renderMessage)}</View>
<View style={styles.offlineFeedbackTextContainer}>{uniqueMessages.map(renderMessage)}</View>
</View>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ function EditedRenderer({tnode, TDefaultRenderer, style, ...defaultRendererProps
{...defaultRendererProps}
fontSize={variables.fontSizeSmall}
color={theme.textSupporting}
style={[styles.editedLabelStyles, isPendingDelete && styles.offlineFeedback.deleted]}
style={[styles.editedLabelStyles, isPendingDelete && styles.offlineFeedbackDeleted]}
>
{translate('reportActionCompose.edited')}
</Text>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,13 @@ function BaseLocationErrorMessage({onClose, onAllowLocationLinkPress, locationEr

return (
<View style={[styles.dotIndicatorMessage, styles.mt4]}>
<View style={styles.offlineFeedback.errorDot}>
<View style={styles.offlineFeedbackErrorDot}>
<Icon
src={Expensicons.DotIndicator}
fill={colors.red}
/>
</View>
<View style={styles.offlineFeedback.textContainer}>
<View style={styles.offlineFeedbackTextContainer}>
{isPermissionDenied ? (
<Text>
<Text style={[StyleUtils.getDotIndicatorTextStyles()]}>{`${translate('location.permissionDenied')} ${translate('location.please')}`}</Text>
Expand All @@ -52,7 +52,7 @@ function BaseLocationErrorMessage({onClose, onAllowLocationLinkPress, locationEr
<Text style={[StyleUtils.getDotIndicatorTextStyles()]}>{translate('location.tryAgain')}</Text>
</Text>
) : (
<Text style={styles.offlineFeedback.text}>{translate('location.notFound')}</Text>
<Text style={styles.offlineFeedbackText}>{translate('location.notFound')}</Text>
)}
</View>
<View>
Expand Down
6 changes: 3 additions & 3 deletions src/components/MenuItem.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -518,7 +518,7 @@ function MenuItem({
const deviceHasHoverSupport = hasHoverSupport();

const isCompact = viewMode === CONST.OPTION_MODE.COMPACT;
const isDeleted = style && Array.isArray(style) ? style.includes(styles.offlineFeedback.deleted) : false;
const isDeleted = style && Array.isArray(style) ? style.includes(styles.offlineFeedbackDeleted) : false;
const descriptionVerticalMargin = shouldShowDescriptionOnTop ? styles.mb1 : styles.mt1;

const combinedTitleTextStyle = StyleUtils.combineStyles(
Expand All @@ -531,7 +531,7 @@ function MenuItem({
numberOfLinesTitle !== 1 ? styles.preWrap : styles.pre,
interactive && disabled ? {...styles.userSelectNone} : {},
styles.ltr,
isDeleted ? styles.offlineFeedback.deleted : {},
isDeleted ? styles.offlineFeedbackDeleted : {},
shouldBreakWord ? styles.breakWord : {},
styles.mw100,
],
Expand All @@ -544,7 +544,7 @@ function MenuItem({
title ? descriptionVerticalMargin : StyleUtils.getFontSizeStyle(variables.fontSizeNormal),
title ? styles.textLineHeightNormal : StyleUtils.getLineHeightStyle(variables.fontSizeNormalHeight),
(descriptionTextStyle as TextStyle) || styles.breakWord,
isDeleted ? styles.offlineFeedback.deleted : {},
isDeleted ? styles.offlineFeedbackDeleted : {},
]);

const html = useMemo(() => {
Expand Down
6 changes: 3 additions & 3 deletions src/components/OfflineWithFeedback.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ function OfflineWithFeedback({
type ChildComponentProps = ChildrenProps & {style?: AllStyles};
const childProps = child.props as ChildComponentProps;
const props: StrikethroughProps = {
style: StyleUtils.combineStyles(childProps.style ?? [], styles.offlineFeedback.deleted, styles.userSelectNone),
style: StyleUtils.combineStyles(childProps.style ?? [], styles.offlineFeedbackDeleted, styles.userSelectNone),
};

if (childProps.children) {
Expand Down Expand Up @@ -148,10 +148,10 @@ function OfflineWithFeedback({
)}
{!hideChildren && (
<View
style={[needsOpacity ? styles.offlineFeedback.pending : styles.offlineFeedback.default, contentContainerStyle]}
style={[needsOpacity ? styles.offlineFeedbackPending : styles.offlineFeedbackDefault, contentContainerStyle]}
needsOffscreenAlphaCompositing={shouldRenderOffscreen ? needsOpacity && needsOffscreenAlphaCompositing : undefined}
>
<CustomStylesForChildrenProvider style={needsStrikeThrough ? [styles.offlineFeedback.deleted, styles.userSelectNone] : null}>{children}</CustomStylesForChildrenProvider>
<CustomStylesForChildrenProvider style={needsStrikeThrough ? [styles.offlineFeedbackDeleted, styles.userSelectNone] : null}>{children}</CustomStylesForChildrenProvider>
</View>
)}
{shouldShowErrorMessages && !shouldDisplayErrorAbove && (
Expand Down
2 changes: 1 addition & 1 deletion src/components/ReportActionItem/MoneyReportView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo
) : (
<Text
numberOfLines={1}
style={[styles.taskTitleMenuItem, styles.alignSelfCenter, !isTotalUpdated && styles.offlineFeedback.pending]}
style={[styles.taskTitleMenuItem, styles.alignSelfCenter, !isTotalUpdated && styles.offlineFeedbackPending]}
>
{formattedTotalAmount}
</Text>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ function TransactionPreviewContent({
const previewTextViewGap = (shouldShowCategoryOrTag || !shouldWrapDisplayAmount) && styles.gap2;
const previewTextMargin = shouldShowIOUHeader && shouldShowMerchantOrDescription && !isBillSplit && !shouldShowCategoryOrTag && styles.mbn1;

const transactionWrapperStyles = [styles.border, styles.moneyRequestPreviewBox, (isIOUSettled || isApproved) && isSettlementOrApprovalPartial && styles.offlineFeedback.pending];
const transactionWrapperStyles = [styles.border, styles.moneyRequestPreviewBox, (isIOUSettled || isApproved) && isSettlementOrApprovalPartial && styles.offlineFeedbackPending];

return (
<View style={[transactionWrapperStyles, containerStyles]}>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
import React from 'react';
import Text from '@components/Text';
import useThemeStyles from '@hooks/useThemeStyles';
import * as EmojiUtils from '@libs/EmojiUtils';
import {getProcessedText, splitTextWithEmojis} from '@libs/EmojiUtils';
import type WorkspacesListRowDisplayNameProps from './types';

function WorkspacesListRowDisplayName({isDeleted, ownerName}: WorkspacesListRowDisplayNameProps) {
const styles = useThemeStyles();
const processedOwnerName = EmojiUtils.splitTextWithEmojis(ownerName);
const processedOwnerName = splitTextWithEmojis(ownerName);

return (
<Text
numberOfLines={1}
style={[styles.labelStrong, isDeleted ? styles.offlineFeedback.deleted : {}]}
style={[styles.labelStrong, isDeleted ? styles.offlineFeedbackDeleted : {}]}
>
{processedOwnerName.length !== 0
? EmojiUtils.getProcessedText(processedOwnerName, [styles.labelStrong, isDeleted ? styles.offlineFeedback.deleted : {}, styles.emojisWithTextFontFamily])
? getProcessedText(processedOwnerName, [styles.labelStrong, isDeleted ? styles.offlineFeedbackDeleted : {}, styles.emojisWithTextFontFamily])
: ownerName}
</Text>
);
Expand Down
2 changes: 1 addition & 1 deletion src/components/WorkspacesListRowDisplayName/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ function WorkspacesListRowDisplayName({isDeleted, ownerName}: WorkspacesListRowD
return (
<Text
numberOfLines={1}
style={[styles.labelStrong, isDeleted ? styles.offlineFeedback.deleted : {}]}
style={[styles.labelStrong, isDeleted ? styles.offlineFeedbackDeleted : {}]}
>
{ownerName}
</Text>
Expand Down
6 changes: 3 additions & 3 deletions src/pages/home/report/comment/TextCommentFragment.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ function TextCommentFragment({fragment, styleAsDeleted, reportActionID, styleAsM
style={[
styles.ltr,
style,
styleAsDeleted ? styles.offlineFeedback.deleted : undefined,
styleAsDeleted ? styles.offlineFeedbackDeleted : undefined,
styleAsMuted ? styles.colorMuted : undefined,
!canUseTouchScreen() || !shouldUseNarrowLayout ? styles.userSelectText : styles.userSelectNone,
]}
Expand All @@ -131,7 +131,7 @@ function TextCommentFragment({fragment, styleAsDeleted, reportActionID, styleAsM
containsOnlyEmojis ? styles.onlyEmojisText : undefined,
styles.ltr,
style,
styleAsDeleted ? styles.offlineFeedback.deleted : undefined,
styleAsDeleted ? styles.offlineFeedbackDeleted : undefined,
styleAsMuted ? styles.colorMuted : undefined,
!canUseTouchScreen() || !shouldUseNarrowLayout ? styles.userSelectText : styles.userSelectNone,
containsOnlyCustomEmoji && styles.customEmojiFont,
Expand All @@ -146,7 +146,7 @@ function TextCommentFragment({fragment, styleAsDeleted, reportActionID, styleAsM
<Text
fontSize={variables.fontSizeSmall}
color={theme.textSupporting}
style={[styles.editedLabelStyles, styleAsDeleted && styles.offlineFeedback.deleted, style]}
style={[styles.editedLabelStyles, styleAsDeleted && styles.offlineFeedbackDeleted, style]}
>
{translate('reportActionCompose.edited')}
</Text>
Expand Down
2 changes: 1 addition & 1 deletion src/pages/settings/Wallet/RedDotCardSection.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ function RedDotCardSection({title, description}: RedDotCardSectionProps) {

return (
<View style={[styles.p5, styles.flexRow, styles.alignItemsStart]}>
<View style={styles.offlineFeedback.errorDot}>
<View style={styles.offlineFeedbackErrorDot}>
<Icon
src={Expensicons.DotIndicator}
fill={theme.danger}
Expand Down
2 changes: 1 addition & 1 deletion src/pages/workspace/WorkspaceMembersPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ function WorkspaceMembersPage({personalDetails, route, policy}: WorkspaceMembers

const getHeaderContent = () => (
<View style={shouldUseNarrowLayout ? styles.workspaceSectionMobile : styles.workspaceSection}>
<Text style={[styles.pl5, styles.mb5, styles.mt3, styles.textSupporting, isPendingAddOrDelete && styles.offlineFeedback.pending]}>
<Text style={[styles.pl5, styles.mb5, styles.mt3, styles.textSupporting, isPendingAddOrDelete && styles.offlineFeedbackPending]}>
{translate('workspace.people.workspaceMembersCount', {count: memberCount})}
</Text>
{!isEmptyObject(invitedPrimaryToSecondaryLogins) && (
Expand Down
4 changes: 2 additions & 2 deletions src/pages/workspace/WorkspacesListPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -297,7 +297,7 @@ function WorkspacesListPage() {
layoutWidth={isLessThanMediumScreen ? CONST.LAYOUT_WIDTH.NARROW : CONST.LAYOUT_WIDTH.WIDE}
brickRoadIndicator={item.brickRoadIndicator}
shouldDisableThreeDotsMenu={item.disabled}
style={[item.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE ? styles.offlineFeedback.deleted : {}]}
style={[item.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE ? styles.offlineFeedbackDeleted : {}]}
isDefault={isDefault}
isLoadingBill={isLoadingBill}
resetLoadingSpinnerIconIndex={resetLoadingSpinnerIconIndex}
Expand All @@ -319,7 +319,7 @@ function WorkspacesListPage() {
styles.mh5,
styles.ph5,
styles.hoveredComponentBG,
styles.offlineFeedback.deleted,
styles.offlineFeedbackDeleted,
loadingSpinnerIconIndex,
shouldCalculateBillNewDot,
setIsDeletingPaidWorkspace,
Expand Down
10 changes: 5 additions & 5 deletions src/pages/workspace/WorkspacesListRow.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ function WorkspacesListRow({

const isWide = layoutWidth === CONST.LAYOUT_WIDTH.WIDE;

const isDeleted = style && Array.isArray(style) ? style.includes(styles.offlineFeedback.deleted) : false;
const isDeleted = style && Array.isArray(style) ? style.includes(styles.offlineFeedbackDeleted) : false;

const ThreeDotMenuOrPendingIcon = (
<View style={[styles.flexRow, !shouldUseNarrowLayout && styles.workspaceThreeDotMenu]}>
Expand Down Expand Up @@ -230,7 +230,7 @@ function WorkspacesListRow({
<TextWithTooltip
text={title}
shouldShowTooltip
style={[styles.flex1, styles.flexGrow1, styles.textStrong, isDeleted ? styles.offlineFeedback.deleted : {}]}
style={[styles.flex1, styles.flexGrow1, styles.textStrong, isDeleted ? styles.offlineFeedbackDeleted : {}]}
/>
</View>
{isNarrow && ThreeDotMenuOrPendingIcon}
Expand All @@ -252,7 +252,7 @@ function WorkspacesListRow({
/>
<Text
numberOfLines={1}
style={[styles.textMicro, styles.textSupporting, isDeleted ? styles.offlineFeedback.deleted : {}]}
style={[styles.textMicro, styles.textSupporting, isDeleted ? styles.offlineFeedbackDeleted : {}]}
>
{Str.removeSMSDomain(ownerDetails?.login ?? '')}
</Text>
Expand All @@ -271,14 +271,14 @@ function WorkspacesListRow({
{!!workspaceType && (
<Text
numberOfLines={1}
style={[styles.labelStrong, isDeleted ? styles.offlineFeedback.deleted : {}]}
style={[styles.labelStrong, isDeleted ? styles.offlineFeedbackDeleted : {}]}
>
{getUserFriendlyWorkspaceType(workspaceType)}
</Text>
)}
<Text
numberOfLines={1}
style={[styles.textMicro, styles.textSupporting, isDeleted ? styles.offlineFeedback.deleted : {}]}
style={[styles.textMicro, styles.textSupporting, isDeleted ? styles.offlineFeedbackDeleted : {}]}
>
{translate('workspace.common.plan')}
</Text>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ function WorkspaceCompanyCardsListHeaderButtons({policyID, selectedFeed, shouldS
fill={theme.danger}
additionalStyles={styles.mr1}
/>
<Text style={[styles.offlineFeedback.text, styles.pr5]}>
<Text style={[styles.offlineFeedbackText, styles.pr5]}>
<Text style={[StyleUtils.getDotIndicatorTextStyles(true)]}>{translate('workspace.companyCards.brokenConnectionErrorFirstPart')}</Text>
<TextLink
style={[StyleUtils.getDotIndicatorTextStyles(), styles.link]}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -435,7 +435,7 @@ function WorkspaceMemberDetailsPage({personalDetails, policy, route}: WorkspaceM
shouldRemoveHoverBackground={isCardDeleted}
disabled={isCardDeleted}
shouldShowRightIcon={!isCardDeleted}
style={[isCardDeleted ? styles.offlineFeedback.deleted : {}]}
style={[isCardDeleted ? styles.offlineFeedbackDeleted : {}]}
/>
</OfflineWithFeedback>
);
Expand Down
Loading
Loading