Skip to content
Permalink

Comparing changes

This is a direct comparison between two commits made in this repository or its related repositories. View the default comparison for this range or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jesus-collective/mobile
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 26081acde7f5a98de97ed3b767c6cce304d39829
Choose a base ref
..
head repository: jesus-collective/mobile
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 36189b5f37d3f9a5a9cd490120788bb787310d5c
Choose a head ref
12 changes: 8 additions & 4 deletions App.tsx
Original file line number Diff line number Diff line change
@@ -120,6 +120,10 @@ class AwesomeApp extends JCComponent<Props, State> {
Asset.fromModule(require("./assets/SignUp/progress-2.png")).downloadAsync() // eslint-disable-line @typescript-eslint/no-var-requires
Asset.fromModule(require("./assets/SignUp/progress-3.png")).downloadAsync() // eslint-disable-line @typescript-eslint/no-var-requires
Asset.fromModule(require("./assets/SignUp/progress-4.png")).downloadAsync() // eslint-disable-line @typescript-eslint/no-var-requires
Asset.fromModule(require("./assets/SignUp/progress-1-oneStory.png")).downloadAsync() // eslint-disable-line @typescript-eslint/no-var-requires
Asset.fromModule(require("./assets/SignUp/progress-2-oneStory.png")).downloadAsync() // eslint-disable-line @typescript-eslint/no-var-requires
Asset.fromModule(require("./assets/SignUp/progress-3-oneStory.png")).downloadAsync() // eslint-disable-line @typescript-eslint/no-var-requires
Asset.fromModule(require("./assets/SignUp/progress-4-oneStory.png")).downloadAsync() // eslint-disable-line @typescript-eslint/no-var-requires
}
renderFallback(): string {
return ""
@@ -175,10 +179,10 @@ class AwesomeApp extends JCComponent<Props, State> {
} else {
RootNavigation.navigate("auth", {
screen: "Payment1",
params: {
joinedProduct: data?.joinedProduct,
brand: data?.brand,
},
// params: {
joinedProduct: data?.joinedProduct,
brand: data?.brand,
//},
})
}
}
286 changes: 143 additions & 143 deletions amplify/backend/api/jcmobile/stacks/CustomResources.json
Original file line number Diff line number Diff line change
@@ -67,150 +67,150 @@
]
}
}
},
"EventBriteDataSource": {
"Type": "AWS::AppSync::DataSource",
"Properties": {
"ApiId": {
"Ref": "AppSyncApiId"
},
"Name": "EventBriteHTTP",
"Type": "HTTP",
"HttpConfig": {
"Endpoint": "https://www.eventbriteapi.com/"
}
}
},
"EventBriteListEventsResolver": {
"Type": "AWS::AppSync::Resolver",
"Properties": {
"ApiId": {
"Ref": "AppSyncApiId"
},
"DataSourceName": {
"Fn::GetAtt": [
"EventBriteDataSource",
"Name"
]
},
"FieldName": "eventBriteListEvents",
"TypeName": "Query",
"RequestMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListEvents",
"req",
"vtl"
]
]
}
}
]
},
"ResponseMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListEvents",
"res",
"vtl"
]
]
}
}
]
}
}
},
"EventBriteListTicketClassesResolver": {
"Type": "AWS::AppSync::Resolver",
"Properties": {
"ApiId": {
"Ref": "AppSyncApiId"
},
"DataSourceName": {
"Fn::GetAtt": [
"EventBriteDataSource",
"Name"
]
},
"FieldName": "eventBriteListTicketClasses",
"TypeName": "Query",
"RequestMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListTicketClasses",
"req",
"vtl"
]
]
}
}
]
},
"ResponseMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListTicketClasses",
"res",
"vtl"
]
]
}
}
]
}
}
}

},
"EventBriteDataSource": {
"Type": "AWS::AppSync::DataSource",
"Properties": {
"ApiId": {
"Ref": "AppSyncApiId"
},
"Name": "EventBriteHTTP",
"Type": "HTTP",
"HttpConfig": {
"Endpoint": "https://www.eventbriteapi.com/"
}
}
},
"EventBriteListEventsResolver": {
"Type": "AWS::AppSync::Resolver",
"Properties": {
"ApiId": {
"Ref": "AppSyncApiId"
},
"DataSourceName": {
"Fn::GetAtt": [
"EventBriteDataSource",
"Name"
]
},
"FieldName": "eventBriteListEvents",
"TypeName": "Query",
"RequestMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListEvents",
"req",
"vtl"
]
]
}
}
]
},
"ResponseMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListEvents",
"res",
"vtl"
]
]
}
}
]
}
}
},
"EventBriteListTicketClassesResolver": {
"Type": "AWS::AppSync::Resolver",
"Properties": {
"ApiId": {
"Ref": "AppSyncApiId"
},
"DataSourceName": {
"Fn::GetAtt": [
"EventBriteDataSource",
"Name"
]
},
"FieldName": "eventBriteListTicketClasses",
"TypeName": "Query",
"RequestMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListTicketClasses",
"req",
"vtl"
]
]
}
}
]
},
"ResponseMappingTemplateS3Location": {
"Fn::Sub": [
"s3://${S3DeploymentBucket}/${S3DeploymentRootKey}/resolvers/${ResolverFileName}",
{
"S3DeploymentBucket": {
"Ref": "S3DeploymentBucket"
},
"S3DeploymentRootKey": {
"Ref": "S3DeploymentRootKey"
},
"ResolverFileName": {
"Fn::Join": [
".",
[
"Query",
"eventBriteListTicketClasses",
"res",
"vtl"
]
]
}
}
]
}
}
}

},
"Conditions": {
"HasEnvironmentParameter": {
"Fn::Not": [
Original file line number Diff line number Diff line change
@@ -58,7 +58,7 @@
"ENV": {
"Ref": "env"
},
"GROUP": "userpool",
"GROUP": "admin",
"USERPOOL": {
"Ref": "authjcmobileUserPoolId"
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 9 additions & 4 deletions amplify/team-provider-info.json
Original file line number Diff line number Diff line change
@@ -14,21 +14,26 @@
"categories": {
"auth": {
"jcmobile": {
"hostedUIProviderCreds": "[]",
"facebookAppId": "373637213227697",
"googleClientId": "16570899094-ehc6d53sjd40c0shm9gaj6r70qs3jbv1.apps.googleusercontent.com"
},
"userPoolGroups": {}
"userPoolGroups": {},
"true": {
"facebookAppId": "373637213227697",
"googleClientId": "16570899094-ehc6d53sjd40c0shm9gaj6r70qs3jbv1.apps.googleusercontent.com"
}
},
"function": {
"jcmobilePostConfirmation": {
"GROUP": "verifiedUsers"
"GROUP": "verifiedUsers",
"deploymentBucketName": "jc-mobile-dev-20190809190418-deployment",
"s3Key": "amplify-builds/jcmobilePostConfirmation-31445435787339536e7a-build.zip"
},
"S3Trigger14f1cefa": {},
"S3Trigger839efa13": {},
"AdminQueries7403b6cf": {
"deploymentBucketName": "jc-mobile-dev-20190809190418-deployment",
"s3Key": "amplify-builds/AdminQueries7403b6cf-6a4d5574766351793064-build.zip"
"s3Key": "amplify-builds/AdminQueries7403b6cf-544c346a684e50343973-build.zip"
},
"jcmobilePreSignup": {
"deploymentBucketName": "jc-mobile-dev-20190809190418-deployment",
Binary file modified assets/SignUp/logo-one-story.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/SignUp/progress-1-oneStory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/SignUp/progress-2-oneStory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/SignUp/progress-3-oneStory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/SignUp/progress-4-oneStory.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 4 additions & 1 deletion components/Auth/SignUpScreen1.tsx
Original file line number Diff line number Diff line change
@@ -34,6 +34,7 @@ class SignUpScreen1Impl extends JCComponent<Props, JCState> {
await actions.recheckUserState()
}
render(): React.ReactNode {
const brand: "jc" | "oneStory" | null = this.props.route?.params?.brand
return (
<SignUpScreen1Impl.UserConsumer>
{({ userState, userActions }) => {
@@ -81,7 +82,9 @@ class SignUpScreen1Impl extends JCComponent<Props, JCState> {
onPress={() => {
this.completePaymentProcess(userActions, userState)
}}
buttonType={ButtonTypes.Solid}
buttonType={
brand == "oneStory" ? ButtonTypes.SolidOneStory : ButtonTypes.Solid
}
>
Continue to Your Profile
</JCButton>
7 changes: 5 additions & 2 deletions components/Auth/SignUpScreen3.tsx
Original file line number Diff line number Diff line change
@@ -41,6 +41,7 @@ class SignUpScreen3Impl extends JCComponent<Props, State> {
actions.updateHasCompletedPersonalProfile()
}
render(): React.ReactNode {
const brand: "jc" | "oneStory" | null = this.props.route?.params?.brand
return (
<SignUpScreen3Impl.UserConsumer>
{({ userState, userActions }) => {
@@ -71,7 +72,8 @@ class SignUpScreen3Impl extends JCComponent<Props, State> {
marginRight: 15,
paddingVertical: 5,
borderBottomWidth: this.state.selected === "profile" ? 7 : 0,
borderBottomColor: "#F0493E",
borderBottomColor:
brand == "oneStory" ? "rgb(255, 198, 41)" : "#F0493E",
}}
>
<JCButton
@@ -89,7 +91,8 @@ class SignUpScreen3Impl extends JCComponent<Props, State> {
style={{
paddingVertical: 5,
borderBottomWidth: this.state.selected === "organization" ? 7 : 0,
borderBottomColor: "#F0493E",
borderBottomColor:
brand == "oneStory" ? "rgb(255, 198, 41)" : "#F0493E",
}}
>
<JCButton
42 changes: 8 additions & 34 deletions components/Billing/Billing.tsx
Original file line number Diff line number Diff line change
@@ -663,7 +663,11 @@ class BillingImpl extends JCComponent<Props, State> {
onPress={() => {
this.completePaymentProcess(userActions, userState)
}}
buttonType={ButtonTypes.Solid}
buttonType={
this.state.brand == "oneStory"
? ButtonTypes.SolidOneStory
: ButtonTypes.Solid
}
enabled={!this.state.validatingUser}
>
{this.state.validatingUser ? (
@@ -706,38 +710,6 @@ class BillingImpl extends JCComponent<Props, State> {

<Content style={{ display: this.state.processing == "entry" ? "flex" : "none" }}>
<View style={this.styles.style.signUpScreen1PaymentColumn1Form}>
{this.state.brand == "oneStory" && (
<Text>
You are in the right place to sign up for One Story Curriculum! One Story
is excited to partner with Jesus Collective in this tangible way and
provide our curriculum through the Jesus Collective platform. Through this
platform, you not only access these great discipleship resources for kids
and youth in a super easy to use way, but you also get the benefit of
having meaningful interaction and engagement with other One Story users to
give feedback, share ideas and more.
<br />
<br />
What is Jesus Collective, you ask? Jesus Collective is a relational
Jesus-centred network that provides a place of belonging, learning and
resourcing for like-minded churches and leaders, develops and supports
future ready leaders, and equips churches to make more disciples in a
post-Christian context. Jesus Collective wants to give greater voice and
visibility to this Jesus-centred, third-way movement God is raising up
around the world. Isn’t that exciting?
<br />
<br />
Learn more here:{" "}
<a href="https://jesuscollective.com">jesuscollective.com.</a>
<br />
<br />
<a href="https://jesuscollective.com/get-involved">
Apply for Partnerships
</a>
<br />
<br />
<br />
</Text>
)}
<Text
accessibilityRole="header"
style={{
@@ -1186,7 +1158,9 @@ class BillingImpl extends JCComponent<Props, State> {
<JCButton
accessibilityLabel="Process Payment"
testID={"billing-processPayment-button"}
buttonType={ButtonTypes.Solid}
buttonType={
this.state.brand ? ButtonTypes.SolidOneStory : ButtonTypes.Solid
}
onPress={() => {
this.setState({ errorMsg: "" })
this.makePayment(stripe, elements)
5 changes: 5 additions & 0 deletions components/Forms/JCButton.tsx
Original file line number Diff line number Diff line change
@@ -24,6 +24,7 @@ export enum ButtonTypes {
courseMktOutlineBoldNoMargin,
CourseZoom,
Solid,
SolidOneStory,
SolidSignIn,
SolidSignInOneStory,
SolidSignIn2,
@@ -32,12 +33,16 @@ export enum ButtonTypes {
SolidCreateAccount,
SolidCreateAccountOneStory,
SolidProfileDelete,
SolidProfileDeleteOneStory,
SolidProfile,
SolidProfileOneStory,
SolidProfileName,
SolidAboutMe,
SolidAboutMeOneStory,
SolidMap,
SolidResources,
SolidRightMargin,
SolidRightMarginOneStory,
SolidRightJustified,
SolidRightJustifiedMini,
SolidRightJustifiedTopMini,
254 changes: 254 additions & 0 deletions components/Forms/JCButtonStyle.ts

Large diffs are not rendered by default.

24 changes: 19 additions & 5 deletions components/MyProfile/MyProfile.tsx
Original file line number Diff line number Diff line change
@@ -624,6 +624,7 @@ class MyProfileImpl extends JCComponent<Props, State> {
}
static UserConsumer = UserContext.Consumer
renderTopBar(userActions: UserActions) {
const brand: "jc" | "oneStory" | null = this.props.route?.params?.brand
if (this.state.UserDetails)
return (
<View style={this.styles.style.myProfileTopButtons}>
@@ -643,7 +644,11 @@ class MyProfileImpl extends JCComponent<Props, State> {
<JCButton
enabled={this.state.dirty}
testID="profile-save"
buttonType={ButtonTypes.SolidRightMargin}
buttonType={
brand == "oneStory"
? ButtonTypes.SolidRightMarginOneStory
: ButtonTypes.SolidRightMargin
}
onPress={async () => {
await this.finalizeProfile()
}}
@@ -653,7 +658,7 @@ class MyProfileImpl extends JCComponent<Props, State> {
) : null}
<JCButton
testID={"logout"}
buttonType={ButtonTypes.Solid}
buttonType={brand == "oneStory" ? ButtonTypes.SolidOneStory : ButtonTypes.Solid}
onPress={() => this.logout(userActions)}
>
Logout
@@ -679,6 +684,8 @@ class MyProfileImpl extends JCComponent<Props, State> {
else return null
}
renderLeftBar(userActions: UserActions) {
const brand: "jc" | "oneStory" | null = this.props.route?.params?.brand

if (this.state.UserDetails)
return (
<View style={this.styles.style.profileScreenLeftCard}>
@@ -699,7 +706,7 @@ class MyProfileImpl extends JCComponent<Props, State> {
<TouchableOpacity
accessible={false}
style={{
backgroundColor: "#F0493E",
backgroundColor: brand == "oneStory" ? "rgb(255, 198, 41)" : "#F0493E",
padding: 12,
borderRadius: 4,
}}
@@ -708,9 +715,11 @@ class MyProfileImpl extends JCComponent<Props, State> {
style={{
margin: "auto",
fontSize: 16,
color: "white",
color: brand == "oneStory" ? "black" : "white",
fontFamily: "Graphik-Regular-App",
fontWeight: "700",
width: "100%",
textAlign: "center",
}}
>
Set Profile Picture
@@ -966,6 +975,7 @@ class MyProfileImpl extends JCComponent<Props, State> {
else return null
}
renderProfile() {
const brand: "jc" | "oneStory" | null = this.props.route?.params?.brand
if (this.state.UserDetails)
return (
<View style={this.styles.style.profileScreenRightCard}>
@@ -1044,7 +1054,11 @@ class MyProfileImpl extends JCComponent<Props, State> {
: `Add interest to list`
}`}
testID="profile-interest-button"
buttonType={ButtonTypes.SolidAboutMe}
buttonType={
brand == "oneStory"
? ButtonTypes.SolidAboutMeOneStory
: ButtonTypes.SolidAboutMe
}
onPress={() => {
this.handleAddInterest()
console.log(this.state.interestsArray)
21 changes: 17 additions & 4 deletions components/OrganizationViewer/OrganizationViewer.tsx
Original file line number Diff line number Diff line change
@@ -453,6 +453,7 @@ class OrganizationImpl extends JCComponent<Props, State> {
this.props.navigation.push("ConversationScreen", { initialUserID: initialUser, initialUserName: name });
}*/
render(): React.ReactNode {
const brand: "jc" | "oneStory" | null = this.props.route?.params?.brand
return this.state.OrganizationDetails != null ? (
<Content>
<View style={this.styles.style.myProfileTopButtons}>
@@ -472,7 +473,11 @@ class OrganizationImpl extends JCComponent<Props, State> {
<JCButton
enabled={this.state.dirty}
testID="org-save"
buttonType={ButtonTypes.SolidRightMargin}
buttonType={
brand == "oneStory"
? ButtonTypes.SolidRightMarginOneStory
: ButtonTypes.SolidRightMargin
}
onPress={async () => {
await this.finalizeProfile()
}}
@@ -482,7 +487,11 @@ class OrganizationImpl extends JCComponent<Props, State> {
) : null}
{this.props.loadId && this.state.showAccountSettings ? (
<JCButton
buttonType={ButtonTypes.SolidProfileDelete}
buttonType={
brand == "oneStory"
? ButtonTypes.SolidProfileDeleteOneStory
: ButtonTypes.SolidProfileDelete
}
onPress={() => this.deleteOrg()}
>
Delete
@@ -515,12 +524,16 @@ class OrganizationImpl extends JCComponent<Props, State> {
{this.state.isEditable && this.state.editMode ? (
<View style={this.styles.style.fileInputWrapper}>
<JCButton
buttonType={ButtonTypes.SolidProfile}
buttonType={
brand == "oneStory"
? ButtonTypes.SolidProfileOneStory
: ButtonTypes.SolidProfile
}
onPress={() => {
null
}}
>
Set Profile Picture
Set Logo
</JCButton>
<input
data-testId="org-image"
38 changes: 29 additions & 9 deletions components/SignUpSidebar/SignUpSidebar.tsx
Original file line number Diff line number Diff line change
@@ -21,11 +21,15 @@ export default class SignUpSidebar extends JCComponent<Props> {
return (
<View style={this.styles.style.signUpSidebarView}>
{this.props.text == true ? (
<Text style={this.styles.style.signUpSidebarText}>
{brand == "oneStory"
? "Made by a church. Made for your church."
: "It’s time to unite, equip, and amplify a Jesus-centred movement."}
</Text>
brand == "oneStory" ? (
<Text style={this.styles.style.signUpSidebarTextOneStory}>
Made by a church. Made for your church.
</Text>
) : (
<Text style={this.styles.style.signUpSidebarText}>
It’s time to unite, equip, and amplify a Jesus-centred movement.{" "}
</Text>
)
) : (
<View style={this.styles.style.signUpSidebarProgressTextView}>
{Platform.OS === "web" && Dimensions.get("window").width > 720 ? (
@@ -57,25 +61,41 @@ export default class SignUpSidebar extends JCComponent<Props> {
)}
{this.props.position == "1" ? (
<Image
source={require("../../assets/SignUp/progress-1.png")}
source={
brand == "oneStory"
? require("../../assets/SignUp/progress-1-oneStory.png")
: require("../../assets/SignUp/progress-1.png")
}
style={this.styles.style.signUpSidebarProgress}
/>
) : null}
{this.props.position == "2" ? (
<Image
source={require("../../assets/SignUp/progress-2.png")}
source={
brand == "oneStory"
? require("../../assets/SignUp/progress-2-oneStory.png")
: require("../../assets/SignUp/progress-2.png")
}
style={this.styles.style.signUpSidebarProgress}
/>
) : null}
{this.props.position == "3" ? (
<Image
source={require("../../assets/SignUp/progress-3.png")}
source={
brand == "oneStory"
? require("../../assets/SignUp/progress-3-oneStory.png")
: require("../../assets/SignUp/progress-3.png")
}
style={this.styles.style.signUpSidebarProgress}
/>
) : null}
{this.props.position == "4" ? (
<Image
source={require("../../assets/SignUp/progress-4.png")}
source={
brand == "oneStory"
? require("../../assets/SignUp/progress-4-oneStory.png")
: require("../../assets/SignUp/progress-4.png")
}
style={this.styles.style.signUpSidebarProgress}
/>
) : null}
60 changes: 54 additions & 6 deletions components/style.tsx
Original file line number Diff line number Diff line change
@@ -34,6 +34,15 @@ export default class MainStyles {
alignItems: "center",
backgroundColor: mainColor,
},
authView3Welcome: {
width: "100%",
marginTop: "2%",
marginBottom: "5.5%",
fontFamily: "Graphik-Regular-App",
fontWeight: "bold",
fontSize: 28,
lineHeight: 30,
},
groupsJoinCourseModalContainer: {
overflow: "none",
height: "100vh",
@@ -1542,6 +1551,15 @@ export default class MainStyles {

// Media Query Desktop Tablet
"@media (min-width: 350) and (max-width: 768)": {
authView3Welcome: {
width: "100%",
marginBottom: "5.5%",
fontFamily: "Graphik-Regular-App",
fontWeight: "bold",
fontSize: 28,
lineHeight: 30,
textAlign: "center",
},
confirmationCodeWrapper: { display: "flex", flexDirection: "column" },
signUpBackButtonWrapper: { position: "absolute", top: "10%", left: "30%", zIndex: 9999 },
authView2: { left: "37.5%", width: 300, top: "20%", height: "auto" },
@@ -1615,6 +1633,7 @@ export default class MainStyles {
borderRadius: 120,
},
fileInputWrapper: {
position: "static",
width: "100%",
top: 265,
left: 0,
@@ -1882,9 +1901,9 @@ export default class MainStyles {
},
myProfileTopButtonsInternalContainer: {
flex: 0,
flexDirection: "column",
flexDirection: "row",
alignSelf: "auto",
width: 200,
width: "100%",
},
profileFontTitle: {
minWidth: 300,
@@ -2125,8 +2144,10 @@ export default class MainStyles {
textAlign: "center",
},
authView3: {
marginLeft: 5,
marginRight: 5,
marginLeft: 0,
marginRight: 0,
paddingLeft: 5,
paddingRight: 5,
left: "0%",
width: "100%",
top: "5%",
@@ -2164,7 +2185,7 @@ export default class MainStyles {
marginLeft: 10,
},
mySignInForgotPassword: {
alignSelf: "flex-start",
alignSelf: "flex-end",
},
mySignUpPlaceholderText: {
fontSize: 15,
@@ -2478,7 +2499,7 @@ export default class MainStyles {
signUpSidebarView:
Platform.OS === "web" && Dimensions.get("window").width > 720
? { position: "fixed", width: "15%", height: "100%", left: "0%", top: "0%" }
: { position: "relative", width: "100%", height: "20%", left: "0%", top: 0 },
: { position: "relative", width: "100%", height: "unset", left: "0%", top: 0 },

signUpSidebarText:
Platform.OS === "web" && Dimensions.get("window").width > 720
@@ -2507,6 +2528,33 @@ export default class MainStyles {
lineHeight: 48,
color: "#FFFFFF",
},
signUpSidebarTextOneStory:
Platform.OS === "web" && Dimensions.get("window").width > 720
? {
zIndex: 3,
position: "absolute",
width: "80%",
height: "10%",
left: "10%",
top: "40%",
fontFamily: "Graphik-Bold-App",
fontSize: 20,
lineHeight: 30,
color: "#000000",
}
: {
display: "none",
zIndex: 3,
position: "absolute",
width: "80%",
height: "10%",
left: "10%",
top: "40%",
fontFamily: "Graphik-Bold-App",
fontSize: 24,
lineHeight: 48,
color: "#000000",
},

signUpProfile:
Platform.OS === "web" && Dimensions.get("window").width > 1024
199 changes: 199 additions & 0 deletions cypress/integration/login_tests_onestory.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
import TestHelper from "../../components/TestHelpers/TestHelpers"
const sizes = ["iphone-6", "ipad-2", [1024, 768]]
const random = Math.floor(Math.random() * 10)
const user = "login.test." + random + "@jesuscollective.com" //George
//const user = "courseuser3@jesuscollective.com"
//const user = "test1@jesuscollective.com" //Lucas
//const user = "test2@jesuscollective.com" //Mateus
//const user = "test3@jesuscollective.com" //Igor
const fileName = "test.jpeg"
const submitNewUserScreen = () => {
cy.get('input[placeholder="Email Address"]').type(user)
cy.get('input[placeholder="Create Password"]').type("TestTest#1")
cy.get('input[placeholder="Confirm Password"]').type("TestTest#1")
cy.get('input[placeholder="Phone number"]').type("1234567890")
cy.get('input[placeholder="First Name"]').type("Test")
cy.get('input[placeholder="Last Name"]').type("User 1")
cy.contains("Continue").click({ force: true })
}
const submitNewUserOrgScreen = () => {
cy.get('input[placeholder="Email Address"]').type(user)
cy.get('input[placeholder="Create Password"]').type("TestTest#1")
cy.get('input[placeholder="Confirm Password"]').type("TestTest#1")
cy.get('input[placeholder="Phone number"]').type("1234567890")
cy.get('input[placeholder="First Name"]').type("Test")
cy.get('input[placeholder="Last Name"]').type("User 1")
cy.get('input[placeholder="Organization Name"]').type("Test Org 1")
cy.contains("Continue").click({ force: true })
}
const completeBillingScreen = (coupon) => {
cy.contains("One Story Curriculum", { timeout: 30000 })
cy.contains("Total:", { timeout: 30000 })
cy.get('input[data-testId="billing-coupon"]').clear()
if (coupon != "") cy.get('input[data-testId="billing-coupon"]').type(coupon)
cy.get('input[data-testId="billing-line1"]').type("123 Sesame Street", { force: true })
cy.get('input[data-testId="billing-city"]').type("Toronto", { force: true })
cy.get('input[data-testId="billing-state"]').type("Ontario", { force: true })
cy.get('input[data-testId="billing-postalcode"]').type("M4W2Z7", { force: true })
cy.get('input[data-testId="billing-country"]').type("Canada", { force: true })
cy.get('[data-testId="billing-accept-eula"]').click()

cy.getWithinIframe(0, '[name="cardnumber"]').type("4242424242424242")
cy.getWithinIframe(1, '[name="exp-date"]').type("424")
cy.getWithinIframe(2, '[name="cvc"]').type("242")
cy.get('[data-testId="billing-processPayment-button-true"]', { timeout: 30000 }).click()
cy.contains("Processing Payment")
cy.get('[data-testId="billing-continueToProfile-button-true"]', { timeout: 30000 }).click()
}
const completeOrgScreen = () => {
cy.get('[data-testId="org-aboutMeShort"]', { timeout: 30000 }).type("Test ORG")
cy.get('[data-testId="org-Address"]').type("123 Sesame St.")
cy.get('[data-testId="org-City"]').type("Toronto")
cy.get('[data-testId="org-Province"]').type("Ontario")
cy.get('[data-testId="org-PostalCode"]').type("M4W 2Z7")
cy.get('[data-testId="org-Country"]').type("Canada")
cy.fixture(fileName).then((fileContent) => {
cy.get('[data-testid="org-image"]').attachFile({
fileContent,
fileName: fileName,
mimeType: "image/jpeg",
})
})
// cy.get('[data-testId="org-Email"]').type("test@jesuscollective.com")
// cy.get('[data-testId="org-Phone"]').type("555-555-5555")
cy.get('[data-testId="org-aboutMeLong"]').type("Test ORG 123")
cy.get('[data-testId="org-orgName"]').type("Space Products Inc.")

cy.get('input[placeholder="Search Places ..."]').type("Toronto")
cy.get('[data-testId="profile-location-0"]').click()
cy.get('[data-testId="org-typeOfOrg"]').select("Church", { force: true })
cy.get('[data-testId="org-numEmployees"]').select("1-25", { force: true })
cy.get('[data-testId="org-aveSunday"]').select("1-50", { force: true })
cy.get('[data-testId="org-numVolunteers"]').select("1-25", { force: true })

cy.get('[data-testId="org-denomination"]').type("Moon")
//cy.get('[data-testId="org-pplServed"]').type("1000")
cy.get('[data-testId="org-orgDescription"]').type("About the org...")

cy.get('[data-testId="org-save-true"]').click()
}
const completeProfileScreen = (hasOrgFields) => {
cy.get('[data-testId="profile-aboutMeShort"]', { timeout: 30000 })
.type("I test", { force: true })
.get('[data-testId="profile-aboutMeLong"]')
.type("I test a lot", { force: true })

cy.get('input[placeholder="Search Places ..."]').type("Toronto")
cy.get('[data-testId="profile-location-0"]').click()

cy.get('[data-testId="profile-interest-picker"]').select("Equipping")
cy.get('[data-testId="profile-interest-button-true"]').click()

cy.fixture(fileName).then((fileContent) => {
cy.get('[data-testid="profile-image"]').attachFile({
fileContent,
fileName: fileName,
mimeType: "image/jpeg",
})
})
cy.get('[data-testId="profile-currentRole"]')
.type("Tester", { force: true })
.get('[data-testId="profile-currentScope"]')
.type("Testing", { force: true })
.get('[data-testId="profile-personality"]')
.type("Detailed", { force: true })
if (hasOrgFields)
cy.get('[data-testId="profile-orgName"]')
.type("TMH", { force: true })
.get('[data-testId="profile-orgType"]')
.select("Church", { force: true })
.get('[data-testId="profile-orgSize"]')
.select("1-25", { force: true })
.get('[data-testId="profile-orgDescription"]')
.type("We make things", { force: true })

cy.get('[data-testId="profile-save-true"]').click("topLeft", { force: true })
}
describe("Create User", () => {
sizes.forEach((size) => {
it("Size - " + size, () => {
if (Cypress._.isArray(size)) {
cy.viewport(size[0], size[1])
} else {
cy.viewport(size)
}

cy.visit("/auth/signin?brand=oneStory").then(() => {
TestHelper.DeleteUser(user, "TestTest#1")
})
cy.contains("Sign In").click()
cy.contains("Email cannot be empty").get('input[placeholder="Email"]').type(user)
cy.contains("Sign In").click()
cy.contains("Password cannot be empty")
.get('input[placeholder="Password"]')
.type("TestTest#1")
cy.contains("Sign In").click()
cy.contains("User does not exist")
cy.contains("Create an Account").click()
cy.contains("Individual").click()

submitNewUserScreen()

cy.get('input[placeholder="One-time security code"]', { timeout: 30000 })
.get('div[data-testId="myConfirmSignup-back"]')
.click()

cy.get('input[placeholder="Email"]').type(user)
cy.get('input[placeholder="Password"]').type("TestTest#1")
cy.contains("Sign In").click()

completeBillingScreen("")
completeProfileScreen(true)

cy.get('[data-testid="header-logo"]').should("be.visible")
})
})
})

describe("Create User + Org", () => {
sizes.forEach((size) => {
it("Size - " + size, () => {
if (Cypress._.isArray(size)) {
cy.viewport(size[0], size[1])
} else {
cy.viewport(size)
}

cy.visit("/auth/signin?brand=oneStory")
.then(() => {
TestHelper.DeleteUser(user, "TestTest#1")
})
.contains("Sign In")
.click()
cy.contains("Email cannot be empty").get('input[placeholder="Email"]').type(user)
cy.contains("Sign In").click()
cy.contains("Password cannot be empty")
.get('input[placeholder="Password"]')
.type("TestTest#1")
cy.contains("Sign In").click()
cy.contains("User does not exist")
cy.contains("Create an Account").click()
cy.contains("Organization").click()
submitNewUserOrgScreen()

cy.get('input[placeholder="One-time security code"]', { timeout: 30000 })
.get('div[data-testId="myConfirmSignup-back"]')
.click()

cy.get('input[placeholder="Email"]').type(user)
cy.get('input[placeholder="Password"]').type("TestTest#1")
cy.contains("Sign In").click()

completeBillingScreen("JC20")
completeProfileScreen(false)
completeOrgScreen()

cy.get('[data-testid="header-logo"]').should("be.visible")
})
})
})
12 changes: 1 addition & 11 deletions screens/Auth/MySignUp.tsx
Original file line number Diff line number Diff line change
@@ -680,17 +680,7 @@ class MySignUpImpl extends React.Component<Props, State> {
)
) : (
<View style={this.styles.style.authView3}>
<Text
accessibilityRole="header"
style={{
width: "100%",
marginBottom: "5.5%",
fontFamily: "Graphik-Regular-App",
fontWeight: "bold",
fontSize: 22,
lineHeight: 30,
}}
>
<Text accessibilityRole="header" style={this.styles.style.authView3Welcome}>
{this.state.brand == "oneStory"
? "Welcome to One Story"
: "Sign in to Jesus Collective"}