Shared assets, cleanup for initial deploy

This commit is contained in:
Tom Moor 2017-10-29 15:02:24 -07:00
parent e370676b49
commit 84c82c31a9
47 changed files with 112 additions and 122 deletions

View File

@ -8,3 +8,4 @@ SEQUELIZE_SECRET=F0E5AD933D7F6FD8F4DBB3E038C501C052DC0593C686D21ACB30AE205D2F634
SLACK_KEY=71315967491.XXXXXXXXXX
SLACK_SECRET=d2dc414f9953226bad0a356c794XXXXX
URL=http://localhost:3000
DEPLOYMENT=hosted

View File

@ -1,7 +1,7 @@
// @flow
import React from 'react';
import { observer } from 'mobx-react';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import styled from 'styled-components';
import { color } from 'shared/styles/constants';

View File

@ -3,7 +3,7 @@ import React from 'react';
import moment from 'moment';
import styled from 'styled-components';
import { color } from 'shared/styles/constants';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import Tooltip from 'components/Tooltip';
import Document from 'models/Document';

View File

@ -1,7 +1,7 @@
// @flow
import React from 'react';
import styled from 'styled-components';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
const Divider = () => {
return <Flex auto justify="center"><Content /></Flex>;

View File

@ -5,7 +5,7 @@ import styled from 'styled-components';
import { color } from 'shared/styles/constants';
import Collection from 'models/Collection';
import Document from 'models/Document';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
const Container = styled(Flex)`
color: ${color.slate};

View File

@ -5,7 +5,7 @@ import Popover from 'components/Popover';
import styled from 'styled-components';
import DocumentViewers from './components/DocumentViewers';
import DocumentViewersStore from './DocumentViewersStore';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
const Container = styled(Flex)`
font-size: 13px;

View File

@ -1,6 +1,6 @@
// @flow
import React, { Component } from 'react';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import styled from 'styled-components';
import map from 'lodash/map';
import Avatar from 'components/Avatar';

View File

@ -5,7 +5,7 @@ import { observable } from 'mobx';
import { observer } from 'mobx-react';
import styled from 'styled-components';
import Portal from 'react-portal';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { color } from 'shared/styles/constants';
import { fadeAndScaleIn } from 'shared/styles/animations';

View File

@ -1,7 +1,7 @@
// @flow
import React from 'react';
import styled from 'styled-components';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { color } from 'shared/styles/constants';
const DropdownMenuItem = ({

View File

@ -6,7 +6,7 @@ import { Editor, Plain } from 'slate';
import keydown from 'react-keydown';
import type { State, Editor as EditorType } from './types';
import getDataTransferFiles from 'utils/getDataTransferFiles';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import ClickablePadding from './components/ClickablePadding';
import Toolbar from './components/Toolbar';
import BlockInsert from './components/BlockInsert';

View File

@ -14,7 +14,7 @@ import keydown from 'react-keydown';
import CloseIcon from 'components/Icon/CloseIcon';
import OpenIcon from 'components/Icon/OpenIcon';
import TrashIcon from 'components/Icon/TrashIcon';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
@keydown
@observer

View File

@ -1,3 +0,0 @@
// @flow
import Flex from './Flex';
export default Flex;

View File

@ -1,7 +1,7 @@
// @flow
import React from 'react';
import styled from 'styled-components';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { size, color } from 'shared/styles/constants';
const RealTextarea = styled.textarea`

View File

@ -1,7 +1,7 @@
// @flow
import React from 'react';
import { observer } from 'mobx-react';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import styled from 'styled-components';
import { size } from 'shared/styles/constants';

View File

@ -5,7 +5,7 @@ import { Helmet } from 'react-helmet';
import styled from 'styled-components';
import { observer, inject } from 'mobx-react';
import keydown from 'react-keydown';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { color, layout } from 'shared/styles/constants';
import { documentEditUrl, homeUrl, searchUrl } from 'utils/routeHelpers';

View File

@ -3,7 +3,7 @@ import React from 'react';
import styled from 'styled-components';
import { color } from 'shared/styles/constants';
import type { User, Team } from 'types';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
type Props = {
user: User,

View File

@ -2,7 +2,7 @@
import React from 'react';
import { observable } from 'mobx';
import { observer, inject } from 'mobx-react';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import styled from 'styled-components';
import { color, fontWeight } from 'shared/styles/constants';

View File

@ -5,7 +5,7 @@ import { observer } from 'mobx-react';
import { NavLink } from 'react-router-dom';
import { color, fontWeight } from 'shared/styles/constants';
import styled from 'styled-components';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import CollapsedIcon from 'components/Icon/CollapsedIcon';
const activeStyle = {

View File

@ -4,9 +4,9 @@ import ReactCSSTransitionGroup from 'react-addons-css-transition-group';
import styled from 'styled-components';
import { pulsate } from 'shared/styles/animations';
import { color } from 'shared/styles/constants';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { randomInteger } from 'utils/random';
import { randomInteger } from 'shared/random';
const randomValues = Array.from(
new Array(5),

View File

@ -4,7 +4,7 @@ import _ from 'lodash';
import ReactCSSTransitionGroup from 'react-addons-css-transition-group';
import styled from 'styled-components';
import Mask from './components/Mask';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
type Props = {
count?: number,

View File

@ -2,7 +2,7 @@
import React from 'react';
import ReactCSSTransitionGroup from 'react-addons-css-transition-group';
import Mask from './components/Mask';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
export default (props: Object) => {
return (

View File

@ -3,8 +3,8 @@ import React, { Component } from 'react';
import styled from 'styled-components';
import { pulsate } from 'shared/styles/animations';
import { color } from 'shared/styles/constants';
import { randomInteger } from 'utils/random';
import Flex from 'components/Flex';
import { randomInteger } from 'shared/random';
import Flex from 'shared/components/Flex';
class Mask extends Component {
width: number;
@ -13,8 +13,7 @@ class Mask extends Component {
return false;
}
constructor(props: Object) {
super(props);
componentWillmount() {
this.width = randomInteger(75, 100);
}

View File

@ -6,7 +6,7 @@ import ReactModal from 'react-modal';
import { color } from 'shared/styles/constants';
import { fadeAndScaleIn } from 'shared/styles/animations';
import CloseIcon from 'components/Icon/CloseIcon';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
type Props = {
children?: React$Element<any>,

View File

@ -8,7 +8,7 @@ import {
Route,
Redirect,
} from 'react-router-dom';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import stores from 'stores';
import DocumentsStore from 'stores/DocumentsStore';

View File

@ -5,7 +5,7 @@ import { inject, observer } from 'mobx-react';
import Collection from 'models/Collection';
import UiStore from 'stores/UiStore';
import MoreIcon from 'components/Icon/MoreIcon';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
@observer class CollectionMenu extends Component {

View File

@ -14,7 +14,7 @@ import Collection from 'models/Collection';
import CenteredContent from 'components/CenteredContent';
import LoadingListPlaceholder from 'components/LoadingListPlaceholder';
import Button from 'components/Button';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import HelpText from 'components/HelpText';
type Props = {

View File

@ -5,7 +5,7 @@ import { observable } from 'mobx';
import { inject, observer } from 'mobx-react';
import { homeUrl } from 'utils/routeHelpers';
import Button from 'components/Button';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import HelpText from 'components/HelpText';
import Collection from 'models/Collection';
import CollectionsStore from 'stores/CollectionsStore';

View File

@ -5,7 +5,7 @@ import { observable } from 'mobx';
import { inject, observer } from 'mobx-react';
import Button from 'components/Button';
import Input from 'components/Input';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import HelpText from 'components/HelpText';
import Collection from 'models/Collection';

View File

@ -5,7 +5,7 @@ import { observer, inject } from 'mobx-react';
import styled from 'styled-components';
import DocumentsStore from 'stores/DocumentsStore';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import DocumentList from 'components/DocumentList';
import PageTitle from 'components/PageTitle';
import CenteredContent from 'components/CenteredContent';

View File

@ -6,7 +6,7 @@ import { observable } from 'mobx';
import { observer, inject } from 'mobx-react';
import { withRouter, Prompt } from 'react-router';
import keydown from 'react-keydown';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { color, layout } from 'shared/styles/constants';
import {
collectionUrl,

View File

@ -13,7 +13,7 @@ import { size } from 'shared/styles/constants';
import Modal from 'components/Modal';
import Input from 'components/Input';
import Labeled from 'components/Labeled';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import PathToDocument from './components/PathToDocument';
import Document from 'models/Document';

View File

@ -6,7 +6,7 @@ import _ from 'lodash';
import styled from 'styled-components';
import { color } from 'shared/styles/constants';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import GoToIcon from 'components/Icon/GoToIcon';
import Document from 'models/Document';

View File

@ -4,9 +4,9 @@ import ReactCSSTransitionGroup from 'react-addons-css-transition-group';
import styled from 'styled-components';
import { pulsate } from 'shared/styles/animations';
import { color } from 'shared/styles/constants';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { randomInteger } from 'utils/random';
import { randomInteger } from 'shared/random';
const randomValues = Array.from(
new Array(5),

View File

@ -4,7 +4,7 @@ import { withRouter } from 'react-router-dom';
import { observable } from 'mobx';
import { inject, observer } from 'mobx-react';
import Button from 'components/Button';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import HelpText from 'components/HelpText';
import Document from 'models/Document';
import DocumentsStore from 'stores/DocumentsStore';

View File

@ -2,7 +2,7 @@
import React from 'react';
import styled from 'styled-components';
import Key from 'components/Key';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import HelpText from 'components/HelpText';
function KeyboardShortcuts() {

View File

@ -13,7 +13,7 @@ import styled from 'styled-components';
import ArrowKeyNavigation from 'boundless-arrow-key-navigation';
import Empty from 'components/Empty';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import CenteredContent from 'components/CenteredContent';
import LoadingIndicator from 'components/LoadingIndicator';
import SearchField from './components/SearchField';

View File

@ -1,7 +1,7 @@
// @flow
import React, { Component } from 'react';
import SearchIcon from 'components/Icon/SearchIcon';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import { color } from 'shared/styles/constants';
import styled from 'styled-components';

View File

@ -7,7 +7,7 @@ import ApiKeyRow from './components/ApiKeyRow';
import SettingsStore from './SettingsStore';
import { color } from 'shared/styles/constants';
import Flex from 'components/Flex';
import Flex from 'shared/components/Flex';
import Button from 'components/Button';
import Input from 'components/Input';
import HelpText from 'components/HelpText';

View File

@ -121,6 +121,7 @@
"koa-mount": "^3.0.0",
"koa-router": "7.0.1",
"koa-sendfile": "2.0.0",
"koa-static": "^4.0.1",
"localforage": "^1.5.0",
"lodash": "^4.17.4",
"lodash.orderby": "4.4.0",

View File

@ -3,79 +3,26 @@ import React from 'react';
import styled from 'styled-components';
import Grid from 'styled-components-grid';
import Hero from './components/Hero';
import SlackSignin from './components/SlackSignin';
import { color } from '../../shared/styles/constants';
const Unit = Grid.Unit;
import SignupButton from './components/SignupButton';
function Home() {
return (
<Grid>
<Hero>
<h1>Your teams knowledge base</h1>
<HeroText>
Documentation, meeting notes, playbooks, onboarding, work logs, brainstorming, decisions, & more
</HeroText>
<p>
<SlackSignin />
</p>
</Hero>
<Unit size={{ desktop: 1 / 2 }} />
<Feature size={{ desktop: 1 / 2 }}>
<h2>Blazing Fast</h2>
<p>
Atlas is fast, really fast. Weve trimmed 100ms and 50ms there to make sure that documents load instantly, search is speedy and there are keyboard shortcuts for everything.
</p>
</Feature>
<Feature size={{ desktop: 1 / 2 }}>
<h2>Markdown Support</h2>
<p>
Documents are stored in Markdown and you can export them at any time. Markdown shortcuts are also built right into the editor so you can easily format using markdown syntax or our GUI.
</p>
</Feature>
<Unit size={{ desktop: 1 / 2 }} />
<Unit size={{ desktop: 1 / 2 }} />
<Feature size={{ desktop: 1 / 2 }}>
<h2>Beautiful Editor</h2>
<p>
We built a custom editor thats a joy to use. Whether youre typing up quick meeting notes or documenting a full API the interface gets out of your way and lets you focus on the content.
</p>
</Feature>
<MiniFeature size={{ desktop: 1 / 3 }}>
<h2>Powerful Search</h2>
<p>
Built-in search makes that one document easy to find in a large knowledgebase.
</p>
</MiniFeature>
<MiniFeature size={{ desktop: 1 / 3 }}>
<h2>API & Integrations</h2>
<p>
Atlas is built on its own API, treat Atlas as a CMS or automatically create documents from outside events.
</p>
</MiniFeature>
<MiniFeature size={{ desktop: 1 / 3 }}>
<h2>Open Source</h2>
<p>
Want to contribute or host Atlas yourself? All of the code is available on GitHub.
</p>
</MiniFeature>
</Grid>
<span>
<Grid>
<Hero>
<h1>Your teams knowledge base</h1>
<HeroText>
Documentation, meeting notes, playbooks, onboarding, work logs, brainstorming, decisions, & more
</HeroText>
<p>
<SignupButton />
</p>
</Hero>
</Grid>
</span>
);
}
const Feature = styled(Unit)`
padding: 3em;
padding: 80px;
background: ${color.smoke}
`;
const MiniFeature = styled(Unit)`
padding: 80px 40px;
`;
const HeroText = styled.p`
font-size: 18px;
max-width: 600px;

View File

@ -3,7 +3,7 @@ import styled from 'styled-components';
const Hero = styled.div`
width: 100%;
padding: 4em 3em;
padding: 6em 2em 8em;
text-align: center;
h1 {

View File

@ -8,8 +8,6 @@ function Navigation() {
<Nav>
<Brand href="/">Atlas</Brand>
<Menu>
<MenuItem><a href="/about">About</a></MenuItem>
<MenuItem><a href="/pricing">Pricing</a></MenuItem>
<MenuItem><a href="/auth/slack">Sign In</a></MenuItem>
</Menu>
</Nav>
@ -18,7 +16,7 @@ function Navigation() {
const Nav = styled.nav`
display: flex;
padding: 20px;
padding: 20px 30px;
justify-content: space-between;
`;

View File

@ -5,6 +5,7 @@ import httpErrors from 'http-errors';
import Koa from 'koa';
import Router from 'koa-router';
import sendfile from 'koa-sendfile';
import serve from 'koa-static';
import subdomainRedirect from './middlewares/subdomainRedirect';
import renderpage from './utils/renderpage';
@ -24,6 +25,9 @@ const renderapp = async ctx => {
}
};
// serve static assets
koa.use(serve(path.resolve(__dirname, '../public')));
router.get('/_health', ctx => (ctx.body = 'OK'));
if (process.env.NODE_ENV === 'production') {

View File

@ -22,7 +22,7 @@ type Props = {
justify?: JustifyValues,
auto?: ?boolean,
className?: string,
children?: React.Element<any>,
children?: React$Element<*>,
};
const Flex = (props: Props) => {

View File

@ -4006,6 +4006,15 @@ http-errors@1.6.1:
setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
http-errors@^1.6.1, http-errors@~1.6.1:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
dependencies:
depd "1.1.1"
inherits "2.0.3"
setprototypeof "1.0.3"
statuses ">= 1.3.1 < 2"
http-errors@~1.3.1:
version "1.3.1"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.3.1.tgz#197e22cdebd4198585e8694ef6786197b91ed942"
@ -4013,13 +4022,12 @@ http-errors@~1.3.1:
inherits "~2.0.1"
statuses "1"
http-errors@~1.6.1:
version "1.6.2"
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736"
http-errors@~1.5.0:
version "1.5.1"
resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.5.1.tgz#788c0d2c1de2c81b9e6e8c01843b6b97eb920750"
dependencies:
depd "1.1.1"
inherits "2.0.3"
setprototypeof "1.0.3"
setprototypeof "1.0.2"
statuses ">= 1.3.1 < 2"
http-signature@~1.1.0:
@ -5114,6 +5122,15 @@ koa-router@7.0.1:
methods "^1.0.1"
path-to-regexp "^1.1.1"
koa-send@^4.1.0:
version "4.1.1"
resolved "https://registry.npmjs.org/koa-send/-/koa-send-4.1.1.tgz#bd3fa116b1f592f5fff23c9670aae69787f6cb57"
dependencies:
debug "^2.6.3"
http-errors "^1.6.1"
mz "^2.6.0"
resolve-path "^1.3.3"
koa-sendfile@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/koa-sendfile/-/koa-sendfile-2.0.0.tgz#446e2a35ba7074ed03afda2c667c2359406e1082"
@ -5122,6 +5139,13 @@ koa-sendfile@2.0.0:
etag "^1.5.1"
mz "2"
koa-static@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/koa-static/-/koa-static-4.0.1.tgz#b99521ed848d7adb79acae9c824d8d8277a8c4d5"
dependencies:
debug "^2.6.8"
koa-send "^4.1.0"
koa-unless@1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/koa-unless/-/koa-unless-1.0.0.tgz#5aa57384bc882568afc90ac04852a3d58658aeeb"
@ -6009,6 +6033,14 @@ mz@2:
object-assign "^4.0.1"
thenify-all "^1.0.0"
mz@^2.6.0:
version "2.7.0"
resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32"
dependencies:
any-promise "^1.0.0"
object-assign "^4.0.1"
thenify-all "^1.0.0"
nan@2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45"
@ -6624,7 +6656,7 @@ path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
path-is-absolute@1.0.1, path-is-absolute@^1.0.0, path-is-absolute@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
@ -7737,6 +7769,13 @@ resolve-from@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226"
resolve-path@^1.3.3:
version "1.3.3"
resolved "https://registry.npmjs.org/resolve-path/-/resolve-path-1.3.3.tgz#4d83aba6468c2b8e632a575e3f52b0fa0dbe1a5c"
dependencies:
http-errors "~1.5.0"
path-is-absolute "1.0.1"
resolve-pathname@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/resolve-pathname/-/resolve-pathname-2.2.0.tgz#7e9ae21ed815fd63ab189adeee64dc831eefa879"
@ -7994,6 +8033,10 @@ set-immediate-shim@^1.0.1:
version "1.0.5"
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
setprototypeof@1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.2.tgz#81a552141ec104b88e89ce383103ad5c66564d08"
setprototypeof@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04"