-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[$1000] Opacity is too low on long Press for the links like "Forgot", "Go back" & "Back" #14467
Comments
Triaging: From this SO: https://stackoverflow.com/c/expensify/questions/14418
|
Discussing here. |
Still discussing in Slack. |
Okay, we discussed this in Slack, and we want to make the opacity on the back and forgot password buttons on the login page more subtle and consistent with opacity on buttons in the rest of the app. In the VBA onboarding flow (as described in OP), there are two buttons with much more subtle opacity. We want to standardize on that. |
Thinking this can be external, but assigning to engineering to confirm! |
Yep this can be external |
Job added to Upwork: https://www.upwork.com/jobs/~0144967451d0ce5878 |
ProposalWe can fix this issue by passing Additionally, we can define a variable for the value like we have done for checkbox label here Line 87 in a10949d
Required changes shown (if we chose to go with diff --git a/src/pages/signin/ChangeExpensifyLoginLink.js b/src/pages/signin/ChangeExpensifyLoginLink.js
index 8289a754d..a849c9380 100755
--- a/src/pages/signin/ChangeExpensifyLoginLink.js
+++ b/src/pages/signin/ChangeExpensifyLoginLink.js
@@ -8,6 +8,7 @@ import styles from '../../styles/styles';
import ONYXKEYS from '../../ONYXKEYS';
import withLocalize, {withLocalizePropTypes} from '../../components/withLocalize';
import compose from '../../libs/compose';
const propTypes = {
/** The credentials of the logged in person */
@@ -41,6 +42,7 @@ const ChangeExpensifyLoginLink = props => (
<TouchableOpacity
style={[styles.link]}
onPress={props.onPress}
+ activeOpacity={0.7}
>
<Text style={[styles.link]}>
{props.translate('common.goBack')}
diff --git a/src/pages/signin/PasswordForm.js b/src/pages/signin/PasswordForm.js
index d984e6fd2..7b65d0db5 100755
--- a/src/pages/signin/PasswordForm.js
+++ b/src/pages/signin/PasswordForm.js
@@ -24,6 +24,7 @@ import * as ErrorUtils from '../../libs/ErrorUtils';
import {withNetwork} from '../../components/OnyxProvider';
import networkPropTypes from '../../components/networkPropTypes';
import OfflineIndicator from '../../components/OfflineIndicator';
const propTypes = {
/* Onyx Props */
@@ -171,6 +172,7 @@ class PasswordForm extends React.Component {
<TouchableOpacity
style={[styles.mt2]}
onPress={this.resetPassword}
+ activeOpacity={0.7}
>
<Text style={[styles.link]}>
{this.props.translate('passwordForm.forgot')}
diff --git a/src/pages/signin/ResendValidationForm.js b/src/pages/signin/ResendValidationForm.js
index 7753faa65..04d702e18 100755
--- a/src/pages/signin/ResendValidationForm.js
+++ b/src/pages/signin/ResendValidationForm.js
@@ -18,6 +18,7 @@ import OfflineIndicator from '../../components/OfflineIndicator';
import networkPropTypes from '../../components/networkPropTypes';
import {withNetwork} from '../../components/OnyxProvider';
import DotIndicatorMessage from '../../components/DotIndicatorMessage';
const propTypes = {
/* Onyx Props */
@@ -79,7 +80,10 @@ const ResendValidationForm = (props) => {
<DotIndicatorMessage style={[styles.mb5]} type="error" messages={props.account.errors} />
)}
<View style={[styles.mb4, styles.flexRow, styles.justifyContentBetween, styles.alignItemsCenter]}>
- <TouchableOpacity onPress={() => redirectToSignIn()}>
+ <TouchableOpacity
+ onPress={() => redirectToSignIn()}
+ activeOpacity={0.7}
+ >
<Text style={[styles.link]}>
{props.translate('common.back')}
</Text>
Demo(activeOpacity is set as 0.7)low-opacity.mp4 |
Current assignee @joekaufmanexpensify is eligible for the External assigner, not assigning anyone new. |
Triggered auto assignment to Contributor-plus team member for initial proposal review - @mollfpr ( |
Current assignee @madmax330 is eligible for the External assigner, not assigning anyone new. |
Proposal We can apply the same diff --git a/src/styles/variables.js b/src/styles/variables.js
index 58b87782d5..c24eda3633 100644
--- a/src/styles/variables.js
+++ b/src/styles/variables.js
@@ -85,7 +85,7 @@ export default {
INACTIVE_LABEL_TRANSLATE_Y: getValueUsingPixelRatio(16, 21),
sliderBarHeight: 8,
sliderKnobSize: 26,
- checkboxLabelActiveOpacity: 0.7,
+ actionTextActiveOpacity: 0.7,
avatarChatSpacing: 12,
diff --git a/src/components/CheckboxWithLabel.js b/src/components/CheckboxWithLabel.js
index 4c7123bd24..3ecf26eb42 100644
--- a/src/components/CheckboxWithLabel.js
+++ b/src/components/CheckboxWithLabel.js
@@ -100,7 +100,7 @@ class CheckboxWithLabel extends React.Component {
<TouchableOpacity
focusable={false}
onPress={this.toggleCheckbox}
- activeOpacity={variables.checkboxLabelActiveOpacity}
+ activeOpacity={variables.actionTextActiveOpacity}
style={[
styles.ml3,
styles.pr2,
diff --git a/src/pages/signin/ChangeExpensifyLoginLink.js b/src/pages/signin/ChangeExpensifyLoginLink.js
index 8289a754d..32e02b0f5 100755
--- a/src/pages/signin/ChangeExpensifyLoginLink.js
+++ b/src/pages/signin/ChangeExpensifyLoginLink.js
@@ -41,6 +41,7 @@ const ChangeExpensifyLoginLink = props => (
<TouchableOpacity
style={[styles.link]}
onPress={props.onPress}
+ activeOpacity={variables.actionTextActiveOpacity}
>
<Text style={[styles.link]}>
{props.translate('common.goBack')}
diff --git a/src/pages/signin/PasswordForm.js b/src/pages/signin/PasswordForm.js
index d984e6fd2..4c02c3b90 100755
--- a/src/pages/signin/PasswordForm.js
+++ b/src/pages/signin/PasswordForm.js
@@ -171,6 +171,7 @@ class PasswordForm extends React.Component {
<TouchableOpacity
style={[styles.mt2]}
onPress={this.resetPassword}
+ activeOpacity={variables.actionTextActiveOpacity}
>
<Text style={[styles.link]}>
{this.props.translate('passwordForm.forgot')}
diff --git a/src/pages/signin/ResendValidationForm.js b/src/pages/signin/ResendValidationForm.js
index 7753faa65..8887854cb 100755
--- a/src/pages/signin/ResendValidationForm.js
+++ b/src/pages/signin/ResendValidationForm.js
@@ -79,7 +79,7 @@ const ResendValidationForm = (props) => {
<DotIndicatorMessage style={[styles.mb5]} type="error" messages={props.account.errors} />
)}
<View style={[styles.mb4, styles.flexRow, styles.justifyContentBetween, styles.alignItemsCenter]}>
- <TouchableOpacity onPress={() => redirectToSignIn()}>
+ <TouchableOpacity onPress={() => redirectToSignIn()} activeOpacity={variables.actionTextActiveOpacity}>
<Text style={[styles.link]}>
{props.translate('common.back')}
</Text>
|
ProposalWe can set - import {LogBox} from 'react-native';
+ import {LogBox, TouchableOpacity} from 'react-native';
...
LogBox.ignoreLogs([
// Basically it means that if the app goes in the background and back to foreground on Android,
// the timer is lost. Currently Expensify is using a 30 minutes interval to refresh personal details.
// More details here: https://git.io/JJYeb
'Setting a timer for a long period of time',
]);
+ TouchableOpacity.defaultProps = TouchableOpacity.defaultProps || {};
+ TouchableOpacity.defaultProps.activeOpacity = 0.7;
const fill = {flex: 1}; Whether to set 0.7 or 0.8 depends on confirmation from design team. However, I am not sure if this is worth fixing based on #14589 |
Thanks for the proposals! I'll review this issue tonight! |
@joekaufmanexpensify What do you think about this plan #14589? |
Hm, interesting. My 2c is that it seems like whatever we change in this issue will be redone in that issue. And we should therefore do nothing for now, and wait for a standardized system of pressables to be added in the app. Curious if you agree @mountiny ? |
Yeah that makes sense to me, this is very minor issue and I see no reason in fixing this now if we will move away from the Touchables implementation Thanks @mollfpr for bringing this up! |
Cool, thanks for confirming! Going to go ahead and close this one then. |
If you haven’t already, check out our contributing guidelines for onboarding and email [email protected] to request to join our Slack channel!
Action Performed:
Expected Result:
Opacity in the application should be consistent, and more subtle than that shown on the login page.
Actual Result:
Opacity on login page buttons is inconsistent with other buttons in the app, and should be more subtle.
Workaround:
unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Version Number: 1.2.57-3
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos:
opacity.mp4
Recording.1343.mp4
Expensify/Expensify Issue URL:
Issue reported by: @daraksha-dk
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1674240052198959
View all open jobs on GitHub
Upwork Automation - Do Not Edit
The text was updated successfully, but these errors were encountered: