├── static ├── favicon.ico ├── mstile-70x70.png ├── favicon-16x16.png ├── favicon-32x32.png ├── mstile-144x144.png ├── mstile-150x150.png ├── mstile-310x150.png ├── mstile-310x310.png ├── apple-touch-icon.png ├── android-chrome-192x192.png ├── android-chrome-512x512.png ├── apple-touch-icon-precomposed.png ├── browserconfig.xml ├── favicon.svg ├── manifest.json └── safari-pinned-tab.svg ├── .stylelintrc ├── .prettierrc ├── flow-typed ├── hotModule.js.flow └── npm │ ├── redux-observable_v0.14.x.js │ ├── redux_v3.x.x.js │ └── rxjs_v5.0.x.js ├── src ├── components │ ├── Loading │ │ └── Loading.js │ ├── TypicalForm │ │ ├── TypicalValidation.js │ │ └── TypicalForm.js │ ├── Menu │ │ ├── Menu.scss │ │ └── Menu.js │ ├── RouterStatus │ │ ├── Status.js │ │ └── RedirectWithStatus.js │ ├── TextField │ │ └── TextField.js │ ├── SelectField │ │ └── SelectField.js │ └── GithubButton │ │ └── GithubButton.js ├── containers │ ├── Home │ │ ├── index.js │ │ └── Home.js │ ├── Examples │ │ ├── index.js │ │ └── Examples.js │ ├── NotFound │ │ ├── index.js │ │ └── NotFound.js │ ├── App │ │ ├── App.scss │ │ └── App.js │ └── Hero │ │ ├── github.svg │ │ ├── Hero.scss │ │ ├── Hero.js │ │ └── logo.svg ├── redux │ ├── neo │ │ ├── types.js │ │ ├── index.js │ │ ├── reducer.js │ │ └── actions.js │ ├── reducers.js │ └── configureStore.js ├── helpers │ ├── Api.js │ └── Html.js ├── server │ ├── index.js │ └── render.js ├── client.js ├── config.js ├── sw.js └── utils │ └── validation.js ├── .sample.env ├── .editorconfig ├── .codeclimate.yml ├── .flowconfig ├── bin ├── server.prod.js └── server.dev.js ├── LICENCE ├── .babelrc ├── .eslintrc ├── .gitignore ├── webpack ├── server.prod.js ├── client.prod.js ├── client.dev.js └── server.dev.js ├── .circleci └── config.yml ├── package.json ├── CONTRIBUTING.md └── README.md /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /.stylelintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["stylelint-config-standard", "stylelint-config-css-modules"] 3 | } 4 | -------------------------------------------------------------------------------- /static/mstile-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/mstile-70x70.png -------------------------------------------------------------------------------- /static/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/favicon-16x16.png -------------------------------------------------------------------------------- /static/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/favicon-32x32.png -------------------------------------------------------------------------------- /static/mstile-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/mstile-144x144.png -------------------------------------------------------------------------------- /static/mstile-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/mstile-150x150.png -------------------------------------------------------------------------------- /static/mstile-310x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/mstile-310x150.png -------------------------------------------------------------------------------- /static/mstile-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/mstile-310x310.png -------------------------------------------------------------------------------- /static/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/apple-touch-icon.png -------------------------------------------------------------------------------- /static/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/android-chrome-192x192.png -------------------------------------------------------------------------------- /static/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/android-chrome-512x512.png -------------------------------------------------------------------------------- /static/apple-touch-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madeagency/reactivity/HEAD/static/apple-touch-icon-precomposed.png -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 80, 3 | "trailingComma": "none", 4 | "singleQuote": true, 5 | "semi": false, 6 | "parser": "flow" 7 | } 8 | -------------------------------------------------------------------------------- /flow-typed/hotModule.js.flow: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | declare var module: { 4 | hot: { 5 | accept(path: string, callback: () => void): void 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /src/components/Loading/Loading.js: -------------------------------------------------------------------------------- 1 | // @flow 2 | 3 | import React from 'react' 4 | 5 | const Loading = () =>
Its in a better place now...
16 |15 | A universally rendered PWA with code-splitting that uses: 16 |
17 |31 | Take a look at our Examples Page to see parts 32 | of this in action. 33 |
34 |
22 |
28 | View on
29 | Github
30 |
31 |
53 | Created with love from the team at 54 | 60 | MADE Code 61 | 62 |
63 |45 | We know our demo app is not particularly exciting, but stay tuned as 46 | we're working on something a little more special 47 |
48 |49 | For the moment this should suffice as a demonstration of what{' '} 50 | Reactivity can do: 51 |
52 | 53 |loading..
} 58 | {loaded && ( 59 |68 | We use RXJS and the concept of{' '} 69 | 74 | Epics 75 | {' '} 76 | for our asynchronous actions. Check{' '} 77 | 82 | this file 83 | {' '} 84 | which is responsible for fetching the above data. 85 |
86 |87 | Both client and server make calls to load data from separate API 88 | server. If you were to disable JavaScript or refresh the page, the 89 | data will be here waiting for you. 90 |
91 | 92 |100 | For this one your gonna need to open your network tab, and you will be 101 | able to see which chunks are being sent. You're currently viewing 102 | the{' '} 103 | 108 | Examples chunk. 109 | 110 |
111 | 112 |120 | This Boilerplate currently passes all the PWA requirements of 121 | lighthouse and you can {'fully '} 122 | 127 | customize the service worker 128 | {' '} 129 | to suite the needs of your App. 130 |
131 | 132 |134 | Powered By redux Forms which integrates perfectly into our 135 | Boilerplate. Check the console for values once you've submitted 136 | the form. 137 |
138 | 139 |