Skip to content
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

Release v3.1.0 #38

Merged
merged 56 commits into from
Oct 20, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
affaa30
Add redux and refactor apollo
Namaskar-1F64F Aug 12, 2018
f171ca0
Add module-resolver import paths
Namaskar-1F64F Aug 12, 2018
5fd3fa1
Remove unnecessary css rules
Namaskar-1F64F Aug 12, 2018
1353980
Add simple login page
timone Aug 17, 2018
59442ed
Merge pull request #27 from CameraKit/feature/accounts
austinkettner Aug 18, 2018
08b922d
Use cookie to store session and auth hoc
Namaskar-1F64F Aug 30, 2018
3ff4ea4
Remove unnecessary functions in auth service and cookie utils
timone Aug 31, 2018
712442f
Improve login flow and add Stripe to portal
timone Aug 31, 2018
f8f9b9d
Style Stripe component
Namaskar-1F64F Aug 31, 2018
7230b55
Fix logout bug
Namaskar-1F64F Aug 31, 2018
f2754ca
Fix infinite recursion bug
Namaskar-1F64F Aug 31, 2018
532e89f
Make logout div clickable
Namaskar-1F64F Aug 31, 2018
f30b596
Initial framework for contact page
emersoncloud Sep 7, 2018
bcd30b1
Add input forms
emersoncloud Sep 16, 2018
c32fe5e
Configure dotenv
emersoncloud Sep 17, 2018
6d799f2
Add API call to send email
emersoncloud Sep 17, 2018
0a98104
Add basic dashboard functionality
Namaskar-1F64F Sep 21, 2018
68da6ac
Scaffold dashboard views with placeholder components
timone Sep 21, 2018
bd85f8d
Upgrade to latest packages including next 7
timone Sep 21, 2018
bf2eb79
Update README with config variables
timone Sep 23, 2018
79c2df7
Resolve merge conflicts
timone Sep 24, 2018
4d8f863
Add missing flag icon
timone Sep 24, 2018
7bd3786
Improve login flow
timone Sep 24, 2018
b1e459d
Fix case issue in import
Namaskar-1F64F Sep 25, 2018
2138ae7
Rename Cookies.js to cookies.js
timone Sep 25, 2018
daa0d14
Merge branch 'enhancement/refactor' of https://github.com/CameraKit/c…
Namaskar-1F64F Sep 25, 2018
e4a4e9e
Add ESLint config to project
emersoncloud Sep 26, 2018
dc988fb
Fix linter issues
emersoncloud Sep 26, 2018
9be0994
Add success message transition with react-sprin
emersoncloud Sep 26, 2018
ef38156
Clear inputs on success
emersoncloud Sep 26, 2018
4493d86
Merge branch 'develop' into enhancement/refactor
timone Sep 26, 2018
2c05fab
Create server and move API calls to server function
emersoncloud Sep 27, 2018
aa43a79
Update interaction on success and error
emersoncloud Sep 27, 2018
0541ac6
Add validation and sanitation on NextJS server
emersoncloud Sep 27, 2018
181700a
Merge branch 'develop' into enhancement/contact-page
emersoncloud Sep 27, 2018
976749e
Fix bug in sending the response
emersoncloud Sep 28, 2018
e74b4bf
Merge pull request #34 from CameraKit/enhancement/contact-page
austinkettner Oct 8, 2018
62b5326
Merge contact-form changes into branch
austinkettner Oct 8, 2018
8e874da
Merge pull request #26 from CameraKit/enhancement/refactor
austinkettner Oct 8, 2018
13f3412
Add yarn.lock
austinkettner Oct 8, 2018
a13727e
Make Nav brand elements clickable
austinkettner Oct 8, 2018
f4579c9
Update Footer
austinkettner Oct 8, 2018
8b14572
Update Meta and ESLint Config
austinkettner Oct 8, 2018
af5f062
Update linting and site configuration
austinkettner Oct 11, 2018
8e15b89
Lint code based on browser and node
austinkettner Oct 11, 2018
f2fa5cc
Revise styling and fix more linting errors
austinkettner Oct 11, 2018
28f5056
Add placeholder text to subscribe form
austinkettner Oct 11, 2018
d235e07
Replace Stripe elements with Stripe checkout
timone Oct 15, 2018
b072a4a
Resolve build errors
austinkettner Oct 16, 2018
906a7cf
Update packages
austinkettner Oct 16, 2018
de0bfcc
Add test plan for subscription
timone Oct 16, 2018
8ca30af
Merge branch 'develop' into fix/stripe-integration
austinkettner Oct 18, 2018
d301f8d
Update packages
austinkettner Oct 18, 2018
1ffe29f
Merge pull request #41 from CameraKit/fix/stripe-integration
austinkettner Oct 18, 2018
62d5aa1
Remove Portal and Login
austinkettner Oct 20, 2018
422f718
Merge pull request #42 from CameraKit/enhancement/remove-portal
austinkettner Oct 20, 2018
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
19 changes: 10 additions & 9 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"presets": ["next/babel"],
"plugins": [
[
"module-resolver",
{
"root": ["./"],
"alias": {
"components": "./components"
}
["module-resolver", {
"root": ["./"],
"alias": {
"components": "./components",
"lib": "./lib",
"static": "./static",
"styles": "./styles",
"utils" : "./utils"
}
]
}]
]
}
}
10 changes: 6 additions & 4 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
root = true

[*]
indent_style = space
end_of_line = lf
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
max_line_length = 0
trim_trailing_whitespace = false
[{package.json,*.yml}]
indent_style = space
indent_size = 2
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
node_modules
dist
build
69 changes: 0 additions & 69 deletions .eslintrc.js

This file was deleted.

14 changes: 14 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"parser": "babel-eslint",
"extends": "airbnb",
"rules": {
"react/react-in-jsx-scope": 0,
"react/prop-types": 0,
"react/jsx-filename-extension": 0,
"jsx-a11y/anchor-is-valid": 0
},
"env": {
"browser": true,
"node": true
}
}
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -45,3 +45,10 @@ build

# npm
package-lock.json
<<<<<<< HEAD
.env
=======

# dotenv environment variables file
.env
>>>>>>> develop
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ CameraKit takes one of the hardest Android APIs and makes it into a high level a
<a href="https://www.expensify.com/"><img src=".repo/gh-readme-expensify.png"></a>
<a href="https://www.buddy.works/"><img src=".repo/gh-readme-buddyworks.png"></a>

## Run Instructions
## Run Development Environment

1. `yarn install`
2. `yarn dev`
Expand All @@ -40,4 +40,4 @@ To check out detailed docs for CameraKit, visit our [Documentation Website](http

## License

CameraKit Website is [MIT License](https://github.com/CameraKit/CameraKit-Android/blob/master/LICENSE)
CameraKit Website is [MIT License](https://github.com/CameraKit/CameraKit-Android/blob/master/LICENSE)
148 changes: 148 additions & 0 deletions components/contact-form.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
import React from 'react';
import isomorphicFetch from 'isomorphic-unfetch';
import { Transition } from 'react-spring';

import styles from '../styles/contact-form.scss';
import intro from '../styles/intro.scss';
import global from '../styles/styles.global.scss';

class ContactForm extends React.Component {
constructor(props) {
super(props);

this.state = {
success: false,
message: '',
};
}

handleSubmit(event) {
event.preventDefault();

isomorphicFetch('/processForm', {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
name: this.name.value,
email: this.email.value,
company: this.company.value,
message: this.message.value,
}),
}).then((response) => {
if (response.ok) {
this.clearInputs();
this.setState({ success: true, message: 'Thanks. Your message has been recieved. We\'ll get back to you shortly.' });
} else {
this.setState({ success: false, message: 'Sorry, we could not process your request.' });
}
}).catch((err) => {
console.error(err);
});
}

clearInputs() {
this.name.value = '';
this.email.value = '';
this.company.value = '';
this.message.value = '';
}

render() {
const { message, success } = this.state;

return (
<section className={styles.intro}>
<div className={`${global.container} ${global['container--large']}`}>
<div className={intro.content}>
<h2 className={`${global['heading--large']} ${intro.subheading}`}>
{'Contact Us'}
</h2>
</div>
</div>
<div className={global.container}>
<Transition
from={{ opacity: 0, height: 0 }}
enter={{ opacity: 1, height: 400 }}
leave={{ opacity: 0, height: 0 }}
>
{success === false
? style => (
<div style={style}>
<form
className={styles.form}
onSubmit={this.handleSubmit.bind(this)}
>
<div className={styles.container}>
<div className={styles.contactWrapper}>
<input
className={styles.input}
ref={(input) => { this.name = input; }}
placeholder="Name"
name="name"
type="text"
required
/>
</div>
<div className={styles.contactWrapper}>
<input
className={styles.input}
ref={(input) => { this.email = input; }}
placeholder="Email"
name="email"
type="email"
required
/>
</div>
<div className={styles.contactWrapper}>
<input
className={styles.input}
ref={(input) => { this.company = input; }}
placeholder="Company"
name="company"
type="text"
required
/>
</div>
<div className={`${styles.contactWrapper} ${styles.textAreaWrapper}`}>
<textarea
className={`${styles.input} ${styles.textArea}`}
ref={(input) => { this.message = input; }}
placeholder="Message"
name="message"
type="textarea"
required
/>
</div>
<button className={styles.submitButton} type="submit">
{message && success === false
? 'Try Again'
: 'Submit'
}
</button>
</div>
</form>
</div>
)

: style => (
<div style={style}>
<p className={styles.successMessage}>
{message}
</p>
</div>
)
}
</Transition>
</div>
<p className={`${styles.message} ${message && success === false ? styles.show : ''}`}>
{message}
</p>
</section>
);
}
}

export default ContactForm;
39 changes: 19 additions & 20 deletions components/home.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,24 @@ import React from 'react';

import jump from 'jump.js';

import phoneTilted from '../static/il_phone_tilted.svg';
import button from '../static/btn_scrolldown.svg';
import usaFlag from '../static/ic_usa.svg';

import Feature from './public/feature';
import News from './public/news';
import Sponsor from './public/sponsor';
import Client from './public/client';

import features from '../static/features';
import sponsors from '../static/sponsors';
import clients from '../static/clients';

import styles from '../styles/home.scss';
import featureStyles from '../styles/features.scss';
import intro from '../styles/intro.scss';

import global from '../styles/styles.global.scss';
import animation from '../styles/bounce-animation.scss';
import globalStylesheet from '../styles/styles.global.scss';

import phoneTilted from '../static/il_phone_tilted.svg';
import button from '../static/btn_scrolldown.svg';
import usaFlag from '../static/ic_usa.svg';

import Feature from './public/feature';
import News from './public/news';
import Sponsor from './public/sponsor';
import Client from './public/client';

function scrollDown() {
jump('#features');
Expand All @@ -29,11 +28,11 @@ function scrollDown() {
const Home = () => (
<div>
<section className={intro.intro}>
<div className={`${global.container} ${global['container--large']}`}>
<div className={`${globalStylesheet.container} ${globalStylesheet['container--large']}`}>
<div className={intro.content}>
<div className={intro.phone} />
<div className={intro.hidden}>
<h2 className={`${global['heading--large']} ${intro.subheading}`}>
<h2 className={`${globalStylesheet['heading--large']} ${intro.subheading}`}>
{'Complete'}
<br />
{'Camera Library'}
Expand All @@ -56,8 +55,8 @@ const Home = () => (
<img src={phoneTilted} className={intro.phoneTilted} alt="preview-mockup" />
</section>
<section id="trusted-by" className={`${styles.section} ${styles.clients}`}>
<div className={global.container}>
<h2 className={global['heading--small']}>
<div className={globalStylesheet.container}>
<h2 className={globalStylesheet['heading--small']}>
{'Trusted By'}
</h2>
<ul className={`${styles.list} ${styles.clientsList}`}>
Expand All @@ -73,13 +72,13 @@ const Home = () => (
</div>
</section>
<section id="features" className={styles.section}>
<div className={global.container}>
<div className={globalStylesheet.container}>
<div className={featureStyles.main}>
<h2 className={global['heading--small']}>
<h2 className={globalStylesheet['heading--small']}>
{'Features'}
</h2>
<div className={styles.flexWrapper}>
<p className={`${global['heading--large']} ${featureStyles.heading}`}>
<p className={`${globalStylesheet['heading--large']} ${featureStyles.heading}`}>
{'High-level, simple, and extremely performant'}
</p>
<ul className={`${styles.list} ${styles.flexWrapper} ${featureStyles.list}`}>
Expand All @@ -100,8 +99,8 @@ const Home = () => (
<News />
</section>
<section id="sponsored-by" className={`${styles.section} ${styles.sponsors}`}>
<div className={global.container}>
<h2 className={global['heading--small']}>
<div className={globalStylesheet.container}>
<h2 className={globalStylesheet['heading--small']}>
{'Support'}
</h2>
<ul className={`${styles.list} ${styles.sponsorsList}`}>
Expand Down
Loading