Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
00927cd
Add skeleton for component
grgia Jan 30, 2023
6793a55
Merge branch 'main' into georgia-SEO-footer
grgia Jan 31, 2023
27d325c
Temporary Block
grgia Jan 31, 2023
d444d96
Merge branch 'main' into georgia-SEO-footer
grgia Feb 1, 2023
e7d634a
Merge branch 'main' into georgia-SEO-footer
grgia Feb 6, 2023
48278e5
Add footer columns/row titles into en/es.js
grgia Feb 6, 2023
c3f3b46
Add data and basic structure of footer component / styles
grgia Feb 7, 2023
1b5c2b3
Add flex container to footer
grgia Feb 7, 2023
c437e27
Add SEO wordmark SVGsk
grgia Feb 7, 2023
f4081cf
Merge branch 'main' into georgia-SEO-footer
grgia Feb 7, 2023
112e5b1
Initial styling
grgia Feb 7, 2023
dcd56e4
Add footer scrolling (below fold) on small / large screen
grgia Feb 8, 2023
ab7661f
Merge branch 'main' into georgia-SEO-footer
grgia Feb 8, 2023
225a093
Add colors
grgia Feb 9, 2023
a82f0ad
Move license / add copywrite
grgia Feb 9, 2023
d5e8ac8
Merge branch 'main' into georgia-SEO-footer
grgia Feb 9, 2023
1743e36
Scrollview working on all platforms
grgia Feb 9, 2023
606d41d
Styling Footer on Mobile and Web
grgia Feb 10, 2023
f4f498c
Add socials links, more style tweakss
grgia Feb 11, 2023
a3545fb
Add social icons, use dynamic date for copyright, modify color names
grgia Feb 13, 2023
2b89ce8
Use updated social svgs
grgia Feb 13, 2023
1e5abcf
Merge branch 'main' into georgia-SEO-footer
grgia Feb 14, 2023
6daa052
Fix bug from merge- localizer should have transparent BG
grgia Feb 14, 2023
4ef06f6
Fix Terms and License paragraph spacing
grgia Feb 14, 2023
0288cde
Clean up styles, use 2 columns when medium screen size
grgia Feb 14, 2023
028eaeb
Merge branch 'main' into georgia-SEO-footer
grgia Feb 14, 2023
9ef6e09
Ensure that the signin graphic is always the same height as the screen
grgia Feb 15, 2023
7dd193c
Add initial spanish translations (needs review)
grgia Feb 15, 2023
b8e1666
Spanish Fixes
grgia Feb 15, 2023
43c923e
Merge branch 'main' into georgia-SEO-footer
grgia Feb 15, 2023
8d6bd0b
Do not include <HeaderGap> on desktop sign in page
grgia Feb 15, 2023
41971b3
Clean up const, remove any unused styles
grgia Feb 15, 2023
ea92b95
Spanish fixes
grgia Feb 15, 2023
1d2ced5
Merge branch 'main' into georgia-SEO-footer
grgia Feb 15, 2023
fe61566
Fix extra offline indicator, move login terms
grgia Feb 16, 2023
4bcef93
Add URLs to CONST
grgia Feb 16, 2023
fd74100
Fix terms on IOS
grgia Feb 16, 2023
72c4eeb
Fix spacing for terms
grgia Feb 17, 2023
f1f5ca2
Use Dot URL in const, remove extra lines/comments
grgia Feb 17, 2023
da20776
Rename TermsAndLicenses to Licenses
grgia Feb 17, 2023
636caba
Merge branch 'main' into georgia-SEO-footer
grgia Feb 20, 2023
12c947e
Use insets when calculating height of signInContent
grgia Feb 21, 2023
4f9a32c
Move constants into CONST/Variables
grgia Feb 21, 2023
3105818
Revert removing outside view in Footer
grgia Feb 21, 2023
a8af083
Simplify bottom terms style
grgia Feb 21, 2023
d7561fd
Merge branch 'main' into georgia-SEO-footer
grgia Feb 21, 2023
4c0f307
Ensure works on mobile web and mobile
grgia Feb 21, 2023
e180bb7
Update scrollViewContentContainerStyles
grgia Feb 21, 2023
785e369
Fix not being able to click continue with keyboard open
grgia Feb 22, 2023
e0d06f8
Merge branch 'main' into georgia-SEO-footer
grgia Feb 22, 2023
01f02c8
Test using flex styling
grgia Feb 23, 2023
7c36de9
Works on IOS, safari, android (-terms pushed up), not chrome
grgia Feb 23, 2023
9ccee27
Merge branch 'main' into georgia-SEO-footer
grgia Feb 24, 2023
732182b
Merge remote-tracking branch 'origin/main' into georgia-SEO-footer-flex
grgia Feb 24, 2023
6b5840a
Standardize keyboards. Allow drag to dismiss on mobile platforms, but…
grgia Feb 25, 2023
1b5c961
Code clean up
grgia Feb 25, 2023
23a2b83
More clean up
grgia Feb 25, 2023
48eaa74
Move terms into login, clean up offline indicator
grgia Feb 27, 2023
4a06028
Add comments to explain code
grgia Feb 27, 2023
9f1c192
Remove unnecessary check
grgia Feb 27, 2023
92c14cb
Merge branch 'georgia-SEO-footer-flex' into georgia-SEO-footer
grgia Feb 27, 2023
4c9bea2
Remove index.ios.js, remove redundant styles.
grgia Feb 28, 2023
588a5e8
Merge branch 'main' into georgia-SEO-footer
grgia Feb 28, 2023
bf9dcff
Fix CONST links, add missing translation
grgia Mar 1, 2023
5004690
Update src/styles/StyleUtils.js
grgia Mar 1, 2023
8995e74
Merge branch 'main' into georgia-SEO-footer
grgia Mar 2, 2023
4b9c8b5
Merge branch 'georgia-SEO-footer' of github.com:Expensify/App into ge…
grgia Mar 2, 2023
395ca5f
Merge branch 'main' into georgia-SEO-footer
grgia Mar 3, 2023
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
30 changes: 30 additions & 0 deletions assets/images/expensify-footer-logo-vertical.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions assets/images/expensify-footer-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions assets/images/social-facebook.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions assets/images/social-instagram.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 8 additions & 0 deletions assets/images/social-linkedin.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions assets/images/social-podcast.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
9 changes: 9 additions & 0 deletions assets/images/social-twitter.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 11 additions & 0 deletions assets/images/social-youtube.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
31 changes: 31 additions & 0 deletions src/CONST.js
Original file line number Diff line number Diff line change
Expand Up @@ -898,6 +898,37 @@ const CONST = {
LEAVE_ROOM: 'leaveRoom',
},

FOOTER: {
EXPENSE_MANAGEMENT_URL: `${USE_EXPENSIFY_URL}/expense-management`,
SPEND_MANAGEMENT_URL: `${USE_EXPENSIFY_URL}/spend-management`,
EXPENSE_REPORTS_URL: `${USE_EXPENSIFY_URL}/expense-reports`,
COMPANY_CARD_URL: `${USE_EXPENSIFY_URL}/company-credit-card`,
RECIEPT_SCANNING_URL: `${USE_EXPENSIFY_URL}/receipt-scanning-app`,
BILL_PAY_URL: `${USE_EXPENSIFY_URL}/bills`,
INVOICES_URL: `${USE_EXPENSIFY_URL}/invoices`,
CPA_CARD_URL: `${USE_EXPENSIFY_URL}/cpa-card`,
PAYROLL_URL: `${USE_EXPENSIFY_URL}/payroll`,
TRAVEL_URL: `${USE_EXPENSIFY_URL}/travel`,
EXPENSIFY_APPROVED_URL: `${USE_EXPENSIFY_URL}/accountants`,
PRESS_KIT_URL: 'https://we.are.expensify.com/press-kit',
SUPPORT_URL: `${USE_EXPENSIFY_URL}/support`,
COMMUNITY_URL: 'https://community.expensify.com/',
PRIVACY_URL: `${USE_EXPENSIFY_URL}/privacy`,
ABOUT_URL: 'https://we.are.expensify.com/',

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MonilBhavsar @grgia It seems that this change in line 917 caused this issue. We should replace https://we.are.expensify.com/ with https://we.are.expensify.com/how-we-got-here

BLOG_URL: 'https://blog.expensify.com/',
JOBS_URL: 'https://we.are.expensify.com/apply',
ORG_URL: 'https://expensify.org/',
INVESTOR_RELATIONS_URL: 'https://ir.expensify.com/',
},

SOCIALS: {
PODCAST: 'https://we.are.expensify.com/podcast',
TWITTER: 'https://www.twitter.com/expensify',
INSTAGRAM: 'https://www.instagram.com/expensify',
FACEBOOK: 'https://www.facebook.com/expensify',
LINKEDIN: 'https://www.linkedin.com/company/expensify',
},

// These split the maximum decimal value of a signed 64-bit number (9,223,372,036,854,775,807) into parts where none of them are too big to fit into a 32-bit number, so that we can
// generate them each with a random number generator with only 32-bits of precision.
MAX_64BIT_LEFT_PART: 92233,
Expand Down
16 changes: 16 additions & 0 deletions src/components/Icon/Expensicons.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,14 @@ import Zoom from '../../../assets/images/zoom.svg';
import FallbackAvatar from '../../../assets/images/avatars/fallback-avatar.svg';
import FallbackWorkspaceAvatar from '../../../assets/images/avatars/fallback-workspace-avatar.svg';
import DragAndDrop from '../../../assets/images/drag-and-drop.svg';
import ExpensifyFooterLogo from '../../../assets/images/expensify-footer-logo.svg';
import ExpensifyFooterLogoVertical from '../../../assets/images/expensify-footer-logo-vertical.svg';
import Twitter from '../../../assets/images/social-twitter.svg';
import Youtube from '../../../assets/images/social-youtube.svg';
import Facebook from '../../../assets/images/social-facebook.svg';
import Podcast from '../../../assets/images/social-podcast.svg';
import Linkedin from '../../../assets/images/social-linkedin.svg';
import Instagram from '../../../assets/images/social-instagram.svg';

export {
ActiveRoomAvatar,
Expand Down Expand Up @@ -140,6 +148,8 @@ export {
Exit,
ExpensifyCard,
ExpensifyWordmark,
ExpensifyFooterLogo,
ExpensifyFooterLogoVertical,
Expand,
Eye,
EyeDisabled,
Expand Down Expand Up @@ -200,4 +210,10 @@ export {
Wallet,
Workspace,
Zoom,
Twitter,
Youtube,
Facebook,
Podcast,
Linkedin,
Instagram,
};
2 changes: 2 additions & 0 deletions src/components/LocalePicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import ONYXKEYS from '../ONYXKEYS';
import CONST from '../CONST';
import Picker from './Picker';
import styles from '../styles/styles';
import themeColors from '../styles/themes/default';

const propTypes = {
/** Indicates which locale the user currently has selected */
Expand Down Expand Up @@ -47,6 +48,7 @@ const LocalePicker = (props) => {
size={props.size}
value={props.preferredLocale}
containerStyles={props.size === 'small' ? [styles.pickerContainerSmall] : []}
backgroundColor={themeColors.transparent}
/>
);
};
Expand Down
29 changes: 29 additions & 0 deletions src/languages/en.js
Original file line number Diff line number Diff line change
Expand Up @@ -1182,4 +1182,33 @@ export default {
report: {
genericAddCommentFailureMessage: 'Unexpected error while posting the comment, please try again later',
},
footer: {
features: 'Features',
expenseManagement: 'Expense Management',
spendManagement: 'Spend Management',
expenseReports: 'Expense Reports',
companyCreditCard: 'Company Credit Card',
receiptScanningApp: 'Receipt Scanning App',
billPay: 'Bill Pay',
invoicing: 'Invoicing',
CPACard: 'CPA Card',
payroll: 'Payroll',
travel: 'Travel',
resources: 'Resources',
expensifyApproved: 'ExpensifyApproved!',
pressKit: 'Press Kit',
support: 'Support',
expensifyHelp: 'ExpensifyHelp',
community: 'Community',
privacy: 'Privacy',
learnMore: 'Learn More',
aboutExpensify: 'About Expensify',
blog: 'Blog',
jobs: 'Jobs',
expensifyOrg: 'Expensify.org',
investorRelations: 'Investor Relations',
getStarted: 'Get Started',
createAccount: 'Create a new account',
logIn: 'Log in',
},
};
29 changes: 29 additions & 0 deletions src/languages/es.js
Original file line number Diff line number Diff line change
Expand Up @@ -1184,4 +1184,33 @@ export default {
report: {
genericAddCommentFailureMessage: 'Error inesperado al agregar el comentario, por favor inténtalo más tarde',
},
footer: {
features: 'Características',
expenseManagement: 'Gestión de Gastos',
spendManagement: 'Control de Gastos',
expenseReports: 'Informes de Gastos',
companyCreditCard: 'Tarjeta de Crédito de Empresa',
receiptScanningApp: 'Aplicación de Escaneado de Recibos',
billPay: 'Pago de Facturas',
invoicing: 'Facturación',
CPACard: 'Tarjeta Para Contables',
payroll: 'Nómina',
travel: 'Viajes',
resources: 'Recursos',
expensifyApproved: 'ExpensifyApproved!',
pressKit: 'Kit de Prensa',
support: 'Soporte',
expensifyHelp: 'ExpensifyHelp',
community: 'Comunidad',
privacy: 'Privacidad',
learnMore: 'Más Información',
aboutExpensify: 'Acerca de Expensify',
blog: 'Blog',
jobs: 'Empleo',
expensifyOrg: 'Expensify.org',
investorRelations: 'Relaciones Con Los Inversores',
getStarted: 'Comenzar',
createAccount: 'Crear Una Cuenta Nueva',
logIn: 'Conectarse',
},
};
1 change: 1 addition & 0 deletions src/libs/Navigation/AppNavigator/defaultScreenOptions.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const defaultScreenOptions = {
cardStyle: {
overflow: 'visible',
flex: 1,
},
headerShown: false,
animationTypeForReplace: 'pop',
Expand Down
34 changes: 34 additions & 0 deletions src/pages/signin/Licenses.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import React from 'react';
import {View} from 'react-native';
import styles from '../../styles/styles';
import CONST from '../../CONST';
import Text from '../../components/Text';
import TextLink from '../../components/TextLink';
import withLocalize, {withLocalizePropTypes} from '../../components/withLocalize';
import LocalePicker from '../../components/LocalePicker';

const currentYear = new Date().getFullYear();

const Licenses = props => (
<>
<Text style={[styles.textExtraSmallSupporting, styles.mb4]}>
{`© ${currentYear} Expensify`}
</Text>
<Text style={[styles.textExtraSmallSupporting]}>
{props.translate('termsOfUse.phrase5')}
<TextLink style={[styles.textExtraSmallSupporting, styles.link]} href={CONST.LICENSES_URL}>
{' '}
{props.translate('termsOfUse.phrase6')}
</TextLink>
.
</Text>
<View style={[styles.mt4, styles.alignItemsCenter, styles.mb2, styles.flexRow, styles.justifyContentBetween]}>
<LocalePicker size="small" />
</View>
</>
);

Licenses.propTypes = {...withLocalizePropTypes};
Licenses.displayName = 'Licenses';

export default withLocalize(Licenses);
2 changes: 0 additions & 2 deletions src/pages/signin/LoginForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ import * as ValidationUtils from '../../libs/ValidationUtils';
import * as LoginUtils from '../../libs/LoginUtils';
import withToggleVisibilityView, {toggleVisibilityViewPropTypes} from '../../components/withToggleVisibilityView';
import FormAlertWithSubmitButton from '../../components/FormAlertWithSubmitButton';
import OfflineIndicator from '../../components/OfflineIndicator';
import {withNetwork} from '../../components/OnyxProvider';
import networkPropTypes from '../../components/networkPropTypes';
import * as ErrorUtils from '../../libs/ErrorUtils';
Expand Down Expand Up @@ -211,7 +210,6 @@ class LoginForm extends React.Component {
</View>
)
}
<OfflineIndicator containerStyles={[styles.mv1]} />
</>
);
}
Expand Down
6 changes: 4 additions & 2 deletions src/pages/signin/PasswordForm.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import canFocusInputOnScreenFocus from '../../libs/canFocusInputOnScreenFocus';
import * as ErrorUtils from '../../libs/ErrorUtils';
import {withNetwork} from '../../components/OnyxProvider';
import networkPropTypes from '../../components/networkPropTypes';
import OfflineIndicator from '../../components/OfflineIndicator';
import FormHelpMessage from '../../components/FormHelpMessage';
import Terms from './Terms';

const propTypes = {
/* Onyx Props */
Expand Down Expand Up @@ -225,7 +225,9 @@ class PasswordForm extends React.Component {
/>
<ChangeExpensifyLoginLink onPress={this.clearSignInData} />
</View>
<OfflineIndicator containerStyles={[styles.mv5]} />
<View style={[styles.mt5, styles.signInPageWelcomeTextContainer]}>
<Terms />
</View>
</>
);
}
Expand Down
Loading