diff --git a/.babelrc b/.babelrc
index cf0dbec6..67708377 100644
--- a/.babelrc
+++ b/.babelrc
@@ -1,27 +1,57 @@
{
- "plugins": ["lodash",
- [
- "transform-runtime", {
- "helpers": false,
- "polyfill": false,
- "regenerator": true,
- "moduleName": "babel-runtime"
- },
- ],
- "react-hot-loader/babel",
- "syntax-dynamic-import"
- ],
- "presets": ["es2015", "react", "stage-0"],
- "env": {
- "ssr": {
- "plugins": [
- ["babel-plugin-webpack-alias", {
- "config": "./webpack_config/webpack.base.js"
- }]
- ]
- },
- "production": {
- "presets": ["react-optimize"]
- }
- }
+ "plugins": [
+ ["lodash", {"id": ["lodash"]}],
+ "syntax-dynamic-import",
+ [
+ "babel-plugin-styled-components",
+ {
+ "ssr": true
+ }
+ ]
+ ],
+ "presets": [
+ [
+ "env",
+ {
+ "targets": {
+ "browsers": ["ie 10", "last 2 versions"]
+ }
+ }
+ ],
+ "stage-0",
+ "react",
+ "flow"
+ ],
+ "env": {
+ "production": {
+ "presets": ["react-optimize"]
+ },
+ "development": {
+ "plugins": ["react-hot-loader/babel", "dynamic-import-node"]
+ },
+ "test": {
+ "plugins": [
+ "dynamic-import-node",
+ [
+ "module-resolver",
+ {
+ "root": ["./"],
+ "alias": {
+ "actions": "./src/common/actions",
+ "api": "./src/common/api",
+ "app": "./src/common/app",
+ "components": "./src/common/components",
+ "containers": "./src/common/containers",
+ "reducers": "./src/common/reducers",
+ "routing": "./src/common/routing",
+ "selectors": "./src/common/selectors",
+ "styles": "./src/common/styles",
+ "images": "./static/images"
+ },
+ "extensions": [".js", ".jsx", ".json"]
+ }
+ ]
+ ]
+ }
+ }
}
diff --git a/.esdoc.json b/.esdoc.json
deleted file mode 100644
index 459c7b01..00000000
--- a/.esdoc.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "source": "./src",
- "destination": "./esdoc",
- "excludes": ["dist", "db", "node_modules", "esdoc", "coverage", "jest_config"],
- "experimentalProposal": {
- "classProperties": true,
- "objectRestSpread": true,
- "decorators": true,
- "doExpressions": true,
- "functionBind": true,
- "asyncGenerators": true,
- "exportExtensions": true,
- "dynamicImport": true
- }
-}
diff --git a/.eslintrc.json b/.eslintrc.json
index 781a567c..9632af1e 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,23 +1,26 @@
{
- "extends": ["plugin:react/recommended", "standard"],
- "parser": "babel-eslint",
- "plugins": [
- "react",
- "babel"
- ],
- "parserOptions": {
- "ecmaFeatures": {
- "jsx": true,
- "modules": true
- }
- },
- "env": {
- "browser": true,
- "amd": true,
- "es6": true,
- "node": true
- },
- "rules": {
- "react/no-unescaped-entities": 0
- }
+ "extends": ["plugin:flowtype/recommended", "plugin:react/recommended", "standard"],
+ "parser": "babel-eslint",
+ "plugins": ["react", "babel", "flowtype"],
+ "parserOptions": {
+ "ecmaFeatures": {
+ "jsx": true,
+ "modules": true
+ }
+ },
+ "globals": {
+ "Raven": true
+ },
+ "env": {
+ "browser": true,
+ "amd": true,
+ "es6": true,
+ "node": true,
+ "jest": true
+ },
+ "rules": {
+ "no-tabs": 0,
+ "no-unused-vars": 1,
+ "indent": [2, "tab"]
+ }
}
diff --git a/.flowconfig b/.flowconfig
new file mode 100644
index 00000000..263699f2
--- /dev/null
+++ b/.flowconfig
@@ -0,0 +1,16 @@
+[ignore]
+./webpack_config
+
+[include]
+./src
+
+[libs]
+
+[lints]
+all=warn
+
+[options]
+module.system.node.resolve_dirname=node_modules
+module.system.node.resolve_dirname=src/common
+module.system.node.resolve_dirname=src
+suppress_comment= \\(.\\|\n\\)*\\flow-disable-next-line
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
new file mode 100644
index 00000000..ec6d994a
--- /dev/null
+++ b/.github/CONTRIBUTING.md
@@ -0,0 +1,4 @@
+# Contributing
+From opening a bug report to creating a pull request: every contribution is appreciated and welcome. If you're planning to implement a new feature or change already existed code please create an issue first.
+## Issues
+If application is not working correctly for you probably it's a problem of your own custom code. **If you have discovered a bug or have a feature suggestion, feel free to create an issue.**
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 00000000..426775e6
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,40 @@
+## **I'm submitting a ...**
+
+- [ ] bug report
+- [ ] feature request
+
+### Feature Request:
+<-- Remove this section if it isn't a feature request -->
+
+- #### Is feature important in common use cases?
+
+ **If this feature is custom and interesting only for you** (not useful for other users, has connection with your app logic, etc.) - **email me [vladimirmetnew@gmail.com](mailto:vladimirmetnew@gmail.com).**
+
+- #### Describe requested feature:
+
+### Bug Report:
+<-- Remove this section if it isn't a bug -->
+
+
+- #### **What is the expected behavior?**
+
+- #### **What is the current behavior?**
+
+- #### **Steps to reproduce:**
+
+ 1.
+
+ 2.
+
+ 3.
+
+### Useful Info:
+
+- #### Your environment:
+ - Node version:
+ - Browser:
+ - OS:
+ - Language/Platform/etc:
+
+- #### **Other information**
+ **(e.g. detailed explanation, stacktraces, related issues, suggestions how to fix, useful links, eg. stackoverflow, gitter, etc)**
diff --git a/.gitignore b/.gitignore
index 9fb62ed1..9209029c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,7 +5,6 @@ npm-debug.log*
# Build
dist
-esdoc
# Runtime data
pids
@@ -34,6 +33,7 @@ build/Release
# Dependency directories
node_modules
+flow-typed
jspm_packages
# Optional npm cache directory
@@ -41,4 +41,5 @@ jspm_packages
# Optional REPL history
.node_repl_history
-yarn.lock
+
+src/server/config/ssl/server.*
diff --git a/.travis.yml b/.travis.yml
index 67af96e1..e6c9643a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,10 +1,11 @@
language: node_js
node_js:
- - "7"
+ - "8"
+ - "9"
install:
- npm install -g codecov
- - "npm install"
+ - npm install
script:
- - "npm run db & npm run test"
+ - npm run test
after_script:
- codecov
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 00000000..243fe7d2
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,1123 @@
+# Change Log
+
+All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
+
+
+## [3.0.1](https://github.com/Metnew/suicrux/compare/v1.3.3...v3.0.1) (2018-02-19)
+
+
+### Bug Fixes
+
+* **package:** move unused deps to optionalDeps ([0ab1e75](https://github.com/Metnew/suicrux/commit/0ab1e75))
+
+
+# [3.0.0](https://github.com/Metnew/suicrux/compare/v1.3.3...v3.0.0) (2018-02-19)
+
+
+### Bug Fixes
+
+* **actions:** fix awral config ([e729bee](https://github.com/Metnew/suicrux/commit/e729bee))
+* **actions:** fix Awral configuration ([7344e04](https://github.com/Metnew/suicrux/commit/7344e04))
+* **actions:** in awral fix this.fail ([af4ae75](https://github.com/Metnew/suicrux/commit/af4ae75))
+* **actions:** insert awral directly in project ([1a79238](https://github.com/Metnew/suicrux/commit/1a79238))
+* **actions:** no pending for Login Auth ([84f8aa8](https://github.com/Metnew/suicrux/commit/84f8aa8))
+* **actions-common:** remove flowtypes ([7911160](https://github.com/Metnew/suicrux/commit/7911160))
+* **actions-layout:** remove flow types, update test, open -> toggle ([bad63f8](https://github.com/Metnew/suicrux/commit/bad63f8))
+* **actions-links:** don't handle REJECTED action, update tests ([5a7d262](https://github.com/Metnew/suicrux/commit/5a7d262))
+* **actions/links:** fix flow types ([f471a58](https://github.com/Metnew/suicrux/commit/f471a58))
+* **actoins:** fix tests ([ad3fcf6](https://github.com/Metnew/suicrux/commit/ad3fcf6))
+* **api:** commented checkStatus func ([dd3110b](https://github.com/Metnew/suicrux/commit/dd3110b))
+* **api-links:** update links ([4921e7e](https://github.com/Metnew/suicrux/commit/4921e7e))
+* **api-utils:** simplified json parsing for request ([b88f800](https://github.com/Metnew/suicrux/commit/b88f800))
+* **api/utils:** fix FormData reqs, add fetch `mode` ([0ce99be](https://github.com/Metnew/suicrux/commit/0ce99be))
+* **app:** add scss import as an example ([acc1db6](https://github.com/Metnew/suicrux/commit/acc1db6))
+* **app:** remove routes from configure_* funcs ([8bf5a0f](https://github.com/Metnew/suicrux/commit/8bf5a0f))
+* **app-container:** fix react warning about no "key" in aStyledDimmer ([94d10ae](https://github.com/Metnew/suicrux/commit/94d10ae))
+* **babel:** add ie10 as target ([ec2cff2](https://github.com/Metnew/suicrux/commit/ec2cff2))
+* **babel:** use stage-0 ([22e28bc](https://github.com/Metnew/suicrux/commit/22e28bc))
+* **client:** disable react-hot-loader warnings ([46fb13e](https://github.com/Metnew/suicrux/commit/46fb13e))
+* **client:** log initial state ([50ba267](https://github.com/Metnew/suicrux/commit/50ba267))
+* **client-entry:** remove flowtypes ([bffb163](https://github.com/Metnew/suicrux/commit/bffb163))
+* **components:** fix rendering of Redirects in RoutingWrapper ([4b72701](https://github.com/Metnew/suicrux/commit/4b72701))
+* **components:** in Root don't pass store to RoutingWrapper ([4c15942](https://github.com/Metnew/suicrux/commit/4c15942))
+* **components:** in Sidebar use getLayoutMobileStatuses ([dfb6eb0](https://github.com/Metnew/suicrux/commit/dfb6eb0))
+* **components:** remove components tests ([91fa196](https://github.com/Metnew/suicrux/commit/91fa196))
+* **components:** RoutingWrapper -> container, render only allowed routes ([d6b3a05](https://github.com/Metnew/suicrux/commit/d6b3a05))
+* **componets:** in Sidebar don't pass routing as props ([d35af3b](https://github.com/Metnew/suicrux/commit/d35af3b))
+* **containers:** add "id" property to Login inputs ([d6c3beb](https://github.com/Metnew/suicrux/commit/d6c3beb))
+* **containers:** fix sticky footer on FF ([77f37ca](https://github.com/Metnew/suicrux/commit/77f37ca))
+* **containers:** in App use getLayoutMobileStatuses selector ([70bbf9d](https://github.com/Metnew/suicrux/commit/70bbf9d))
+* **containers:** make Dashboard simpler ([2384c6b](https://github.com/Metnew/suicrux/commit/2384c6b))
+* **containers:** remove LinksComponent ([0e97e37](https://github.com/Metnew/suicrux/commit/0e97e37))
+* **containers:** remove unused LoginComponent ([7e60d32](https://github.com/Metnew/suicrux/commit/7e60d32))
+* **containers:** rename LinkItemComponent -> LinkItem ([2b33eac](https://github.com/Metnew/suicrux/commit/2b33eac))
+* **dashboard:** remove "dumb container" ([653cc93](https://github.com/Metnew/suicrux/commit/653cc93))
+* **eslint:** disable "jsx-a11y/label-has-for" rule ([5e5c950](https://github.com/Metnew/suicrux/commit/5e5c950))
+* **eslint:** remove jsx-a11y plugin ([3c36429](https://github.com/Metnew/suicrux/commit/3c36429))
+* **flow:** fix flow errors ([c39f5ae](https://github.com/Metnew/suicrux/commit/c39f5ae))
+* **footer:** update footer component ([69e8f5f](https://github.com/Metnew/suicrux/commit/69e8f5f))
+* **footer:** update footer snapshot ([0d61178](https://github.com/Metnew/suicrux/commit/0d61178))
+* **header:** remove `isMobile` prop handling ([b0fd734](https://github.com/Metnew/suicrux/commit/b0fd734))
+* **jest:** add envs in jest setup script ([745dffd](https://github.com/Metnew/suicrux/commit/745dffd))
+* **link-item:** move LinkItem to /components folder ([af60e17](https://github.com/Metnew/suicrux/commit/af60e17))
+* **links-api:** getLinksAPI use absolute url ([5c42199](https://github.com/Metnew/suicrux/commit/5c42199))
+* **links-container:** update links container ([5ea7b4b](https://github.com/Metnew/suicrux/commit/5ea7b4b))
+* **links-reducer:** fix tests, don't handle REJECTED action ([ecb9750](https://github.com/Metnew/suicrux/commit/ecb9750))
+* **links-reducer:** update reducer and tests ([5d0262c](https://github.com/Metnew/suicrux/commit/5d0262c))
+* **manifest:** add correct start_url property ([59da7fb](https://github.com/Metnew/suicrux/commit/59da7fb))
+* **manifest:** remove icons field ([9980614](https://github.com/Metnew/suicrux/commit/9980614))
+* **manifest:** start_url: "." ([7d78b12](https://github.com/Metnew/suicrux/commit/7d78b12))
+* **notfound-container:** remove unused var ([8bce8e4](https://github.com/Metnew/suicrux/commit/8bce8e4))
+* **package:** bump version to current ([cb7d127](https://github.com/Metnew/suicrux/commit/cb7d127))
+* **package:** move pseudossl to optinalDeps ([c6c2146](https://github.com/Metnew/suicrux/commit/c6c2146))
+* **package:** remove awral ([9952102](https://github.com/Metnew/suicrux/commit/9952102))
+* **package:** remove jwt-decode ([4d80f56](https://github.com/Metnew/suicrux/commit/4d80f56))
+* **package:** remove npm run test from prepush ([9a4afc6](https://github.com/Metnew/suicrux/commit/9a4afc6))
+* **package:** update chokidar to version 2.0.0 ([b2deda8](https://github.com/Metnew/suicrux/commit/b2deda8))
+* **package:** update deps ([d89991b](https://github.com/Metnew/suicrux/commit/d89991b))
+* **package:** update packages ([05bb1c6](https://github.com/Metnew/suicrux/commit/05bb1c6))
+* **package:** update semantic-ui-react to version 0.77.0 ([a4dc873](https://github.com/Metnew/suicrux/commit/a4dc873))
+* **package:** update semantic-ui-react to version 0.78.0 ([b150321](https://github.com/Metnew/suicrux/commit/b150321))
+* **package:** update styled-components to version 3.0.0 ([03d70d8](https://github.com/Metnew/suicrux/commit/03d70d8))
+* **package:** update versions ([b11348c](https://github.com/Metnew/suicrux/commit/b11348c))
+* **package:** use [@commitlint](https://github.com/commitlint)/config-(angular -> conventional) ([b3a80d9](https://github.com/Metnew/suicrux/commit/b3a80d9))
+* **package:** use config-(angular -> conventional) ([4e0c96c](https://github.com/Metnew/suicrux/commit/4e0c96c))
+* **reducers:** don't handle LOGIN_AUTH_PENDING ([ca39340](https://github.com/Metnew/suicrux/commit/ca39340))
+* **reducers:** fix tests ([b260685](https://github.com/Metnew/suicrux/commit/b260685))
+* **reducers:** in links fix GET_LINKS_FAIL ([4a5f6bb](https://github.com/Metnew/suicrux/commit/4a5f6bb))
+* **reducers:** update rootReducer creation ([5b78ac3](https://github.com/Metnew/suicrux/commit/5b78ac3))
+* **reducers-links:** update to promise-middleware ([56a26a7](https://github.com/Metnew/suicrux/commit/56a26a7))
+* **root:** move root to /components ([0107754](https://github.com/Metnew/suicrux/commit/0107754))
+* **routing:** make 404 lazy for server too ([6345592](https://github.com/Metnew/suicrux/commit/6345592))
+* **routing:** make all routes non lazy ([06528b6](https://github.com/Metnew/suicrux/commit/06528b6))
+* **routing:** move routes array to index.js ([2f4b3ce](https://github.com/Metnew/suicrux/commit/2f4b3ce))
+* **routingwrapper:** remove old routingwrapper ([78a53ad](https://github.com/Metnew/suicrux/commit/78a53ad))
+* **selectors:** remove getWindowInnerWidth selector ([3d037a0](https://github.com/Metnew/suicrux/commit/3d037a0))
+* **selectors:** remove unused selectors ([a5600f4](https://github.com/Metnew/suicrux/commit/a5600f4))
+* **server:** make ssr properly return 404 ([4123286](https://github.com/Metnew/suicrux/commit/4123286))
+* **server:** close chokidar watcher when stats file found ([5fbb823](https://github.com/Metnew/suicrux/commit/5fbb823))
+* **server:** fix initialState creation ([82c73c4](https://github.com/Metnew/suicrux/commit/82c73c4))
+* **server:** fix stats reading ([c358e0f](https://github.com/Metnew/suicrux/commit/c358e0f))
+* **server:** lil style fix ([8e811fa](https://github.com/Metnew/suicrux/commit/8e811fa))
+* **server:** make i18n less complex ([8cbd0f4](https://github.com/Metnew/suicrux/commit/8cbd0f4))
+* **server:** make ssr properly returns 404 ([972580d](https://github.com/Metnew/suicrux/commit/972580d))
+* **server:** move entry to src/index ([cff2618](https://github.com/Metnew/suicrux/commit/cff2618))
+* **server:** move server creation to ./server/index ([2eefb8f](https://github.com/Metnew/suicrux/commit/2eefb8f))
+* **server:** remove auth endpoint ([9a35cbe](https://github.com/Metnew/suicrux/commit/9a35cbe))
+* **server:** remove safeStringifiedState from HTMLComponent ([106fef0](https://github.com/Metnew/suicrux/commit/106fef0))
+* **server:** use language middleware instead of user middleware ([554bef0](https://github.com/Metnew/suicrux/commit/554bef0))
+* **sidebar:** remove unused vars ([61e93ec](https://github.com/Metnew/suicrux/commit/61e93ec))
+* **ssr:** remove `faviconsAssets`, adapt to renderToString ([31bbb0f](https://github.com/Metnew/suicrux/commit/31bbb0f))
+* **styles:** make media grid compatible with SUI ([c138972](https://github.com/Metnew/suicrux/commit/c138972))
+* **styles:** make theme less complex ([14ed15d](https://github.com/Metnew/suicrux/commit/14ed15d))
+* **styles:** remove .pushable from global styles ([3f2cc04](https://github.com/Metnew/suicrux/commit/3f2cc04))
+* **webpack:** eslint fixes ([ef81ab5](https://github.com/Metnew/suicrux/commit/ef81ab5))
+* **webpack:** get INSPECT_ENABLED from process.env ([88fded3](https://github.com/Metnew/suicrux/commit/88fded3))
+* **webpack:** prevent server from handling css ([62d1462](https://github.com/Metnew/suicrux/commit/62d1462))
+* **webpack_config:** add publicPath in webpack server config ([bb91d69](https://github.com/Metnew/suicrux/commit/bb91d69))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+* **webpack_config:** GA_ID/sentr to global conf, add BASE_API_SSR var ([c836e7c](https://github.com/Metnew/suicrux/commit/c836e7c))
+* merge ([71f0339](https://github.com/Metnew/suicrux/commit/71f0339))
+* **webpack_config:** remove unused alias from webpack.isomorphic ([d30c0f8](https://github.com/Metnew/suicrux/commit/d30c0f8))
+* **webpack-server:** fix previous merge ([5a4bf33](https://github.com/Metnew/suicrux/commit/5a4bf33))
+* merge master ([5528074](https://github.com/Metnew/suicrux/commit/5528074))
+* merge master ([d84d865](https://github.com/Metnew/suicrux/commit/d84d865))
+* remove unnecessary components/actions/reducers ([209164b](https://github.com/Metnew/suicrux/commit/209164b))
+
+
+### Features
+
+* **sidebar:** new sidebar component ([f2ed57e](https://github.com/Metnew/suicrux/commit/f2ed57e))
+* make Sidebar and Header autonomous containers ([9b8192a](https://github.com/Metnew/suicrux/commit/9b8192a))
+* **404-page:** update NotFound container ([db0a0fa](https://github.com/Metnew/suicrux/commit/db0a0fa))
+* **actions:** add Awral directly to project ([9e34091](https://github.com/Metnew/suicrux/commit/9e34091))
+* **actions:** layout - OPEN/CLOSE_SIDEBAR -> TOGGLE_SIDEBAR ([fbcfc67](https://github.com/Metnew/suicrux/commit/fbcfc67))
+* **actions:** pass `meta` to LOGIN_AUTH_SUCCESS ([e2de72f](https://github.com/Metnew/suicrux/commit/e2de72f))
+* **actions-links:** use promise-middleware, fix tests ([66e70f4](https://github.com/Metnew/suicrux/commit/66e70f4))
+* **api-utils:** make xhr wrapper less complex ([1b4dfe3](https://github.com/Metnew/suicrux/commit/1b4dfe3))
+* **app-container:** update container ([3979fd6](https://github.com/Metnew/suicrux/commit/3979fd6))
+* **components:** in header add getLayoutMobileStatuses ([3cd0ce1](https://github.com/Metnew/suicrux/commit/3cd0ce1))
+* **containers:** add data fetching in Links ([2e653e9](https://github.com/Metnew/suicrux/commit/2e653e9))
+* **containers:** rewrite Login using redux-form ([ba56d6d](https://github.com/Metnew/suicrux/commit/ba56d6d))
+* **containers:** simplify Links container, add data fetching ([a303334](https://github.com/Metnew/suicrux/commit/a303334))
+* **header:** new header component ([64c2bb5](https://github.com/Metnew/suicrux/commit/64c2bb5))
+* **package:** add copy-webpack-plugin ([0a9616c](https://github.com/Metnew/suicrux/commit/0a9616c))
+* **package:** add source-map-support ([066d6bf](https://github.com/Metnew/suicrux/commit/066d6bf))
+* **package:** update deps list ([80fac11](https://github.com/Metnew/suicrux/commit/80fac11))
+* **public:** add favicon and robots.txt ([0722c54](https://github.com/Metnew/suicrux/commit/0722c54))
+* **reducer-layout:** update layout reducer and test ([db2d698](https://github.com/Metnew/suicrux/commit/db2d698))
+* **reducers:** add `metarouter` reducer ([eaeffed](https://github.com/Metnew/suicrux/commit/eaeffed))
+* **reducers:** simplify redurecers, remove metarouter ([7bc8676](https://github.com/Metnew/suicrux/commit/7bc8676))
+* **root:** dispatch APP_INIT and render only once ([343e982](https://github.com/Metnew/suicrux/commit/343e982))
+* **routing:** add `exact` and `strict` in `getMetaRoutes` selector ([ba143a6](https://github.com/Metnew/suicrux/commit/ba143a6))
+* **routing:** add getMetaRoutes func ([44732f4](https://github.com/Metnew/suicrux/commit/44732f4))
+* **routingwrapper:** get routes directly in routingwrapper ([2391b7d](https://github.com/Metnew/suicrux/commit/2391b7d))
+* update locals and project's title ([7587dd2](https://github.com/Metnew/suicrux/commit/7587dd2))
+* **selectors:** fix getAuthState, add getLayoutMobileStatuses selector ([757c302](https://github.com/Metnew/suicrux/commit/757c302))
+* **server:** use API_PREFIX env var for api prefix ([00ff85c](https://github.com/Metnew/suicrux/commit/00ff85c))
+* **ssr:** render Helmet on server ([3378ff6](https://github.com/Metnew/suicrux/commit/3378ff6))
+* **ssr:** render Helmet on server in ([97808c5](https://github.com/Metnew/suicrux/commit/97808c5))
+* **ssr:** renderToString instead of renderToStream ([a7a7843](https://github.com/Metnew/suicrux/commit/a7a7843))
+* **static:** move locals to static ([5525c6f](https://github.com/Metnew/suicrux/commit/5525c6f))
+* **webpack:** add copy-webpack-plugin ([f2148d9](https://github.com/Metnew/suicrux/commit/f2148d9))
+* **webpack:** update webpack dev mode ([989ec69](https://github.com/Metnew/suicrux/commit/989ec69))
+* **webpack_config:** default BASE_API is not relative ([e6ef3ca](https://github.com/Metnew/suicrux/commit/e6ef3ca))
+
+
+
+
+# [2.2.0](https://github.com/Metnew/suicrux/compare/v1.3.3...v2.2.0) (2017-12-05)
+
+
+### Bug Fixes
+
+* **actions:** fix awral config ([e729bee](https://github.com/Metnew/suicrux/commit/e729bee))
+* **actions:** fix Awral configuration ([7344e04](https://github.com/Metnew/suicrux/commit/7344e04))
+* **actions:** in awral fix this.fail ([af4ae75](https://github.com/Metnew/suicrux/commit/af4ae75))
+* **actions:** insert awral directly in project ([1a79238](https://github.com/Metnew/suicrux/commit/1a79238))
+* **actions:** no pending for Login Auth ([84f8aa8](https://github.com/Metnew/suicrux/commit/84f8aa8))
+* **actions/links:** fix flow types ([f471a58](https://github.com/Metnew/suicrux/commit/f471a58))
+* **actoins:** fix tests ([ad3fcf6](https://github.com/Metnew/suicrux/commit/ad3fcf6))
+* **api/utils:** fix FormData reqs, add fetch `mode` ([0ce99be](https://github.com/Metnew/suicrux/commit/0ce99be))
+* **client:** disable react-hot-loader warnings ([46fb13e](https://github.com/Metnew/suicrux/commit/46fb13e))
+* **client:** log initial state ([50ba267](https://github.com/Metnew/suicrux/commit/50ba267))
+* **components:** fix rendering of Redirects in RoutingWrapper ([4b72701](https://github.com/Metnew/suicrux/commit/4b72701))
+* **components:** in Root don't pass store to RoutingWrapper ([4c15942](https://github.com/Metnew/suicrux/commit/4c15942))
+* **components:** in Sidebar use getLayoutMobileStatuses ([dfb6eb0](https://github.com/Metnew/suicrux/commit/dfb6eb0))
+* **components:** remove components tests ([91fa196](https://github.com/Metnew/suicrux/commit/91fa196))
+* **components:** RoutingWrapper -> container, render only allowed routes ([d6b3a05](https://github.com/Metnew/suicrux/commit/d6b3a05))
+* **componets:** in Sidebar don't pass routing as props ([d35af3b](https://github.com/Metnew/suicrux/commit/d35af3b))
+* **containers:** add "id" property to Login inputs ([d6c3beb](https://github.com/Metnew/suicrux/commit/d6c3beb))
+* **containers:** fix sticky footer on FF ([77f37ca](https://github.com/Metnew/suicrux/commit/77f37ca))
+* **containers:** in App use getLayoutMobileStatuses selector ([70bbf9d](https://github.com/Metnew/suicrux/commit/70bbf9d))
+* **containers:** make Dashboard simpler ([2384c6b](https://github.com/Metnew/suicrux/commit/2384c6b))
+* **containers:** remove LinksComponent ([0e97e37](https://github.com/Metnew/suicrux/commit/0e97e37))
+* **containers:** remove unused LoginComponent ([7e60d32](https://github.com/Metnew/suicrux/commit/7e60d32))
+* **containers:** rename LinkItemComponent -> LinkItem ([2b33eac](https://github.com/Metnew/suicrux/commit/2b33eac))
+* **eslint:** disable "jsx-a11y/label-has-for" rule ([5e5c950](https://github.com/Metnew/suicrux/commit/5e5c950))
+* **manifest:** add correct start_url property ([59da7fb](https://github.com/Metnew/suicrux/commit/59da7fb))
+* **package:** move pseudossl to optinalDeps ([c6c2146](https://github.com/Metnew/suicrux/commit/c6c2146))
+* **package:** remove awral ([9952102](https://github.com/Metnew/suicrux/commit/9952102))
+* **package:** update packages ([05bb1c6](https://github.com/Metnew/suicrux/commit/05bb1c6))
+* **package:** update semantic-ui-react to version 0.77.0 ([a4dc873](https://github.com/Metnew/suicrux/commit/a4dc873))
+* **package:** update versions ([b11348c](https://github.com/Metnew/suicrux/commit/b11348c))
+* **package:** use [@commitlint](https://github.com/commitlint)/config-(angular -> conventional) ([b3a80d9](https://github.com/Metnew/suicrux/commit/b3a80d9))
+* **package:** use config-(angular -> conventional) ([4e0c96c](https://github.com/Metnew/suicrux/commit/4e0c96c))
+* **reducers:** don't handle LOGIN_AUTH_PENDING ([ca39340](https://github.com/Metnew/suicrux/commit/ca39340))
+* **reducers:** fix tests ([b260685](https://github.com/Metnew/suicrux/commit/b260685))
+* **reducers:** in links fix GET_LINKS_FAIL ([4a5f6bb](https://github.com/Metnew/suicrux/commit/4a5f6bb))
+* **server:** fix initialState creation ([82c73c4](https://github.com/Metnew/suicrux/commit/82c73c4))
+* **server:** remove safeStringifiedState from HTMLComponent ([106fef0](https://github.com/Metnew/suicrux/commit/106fef0))
+* **webpack_config:** add publicPath in webpack server config ([bb91d69](https://github.com/Metnew/suicrux/commit/bb91d69))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+* **webpack_config:** GA_ID/sentr to global conf, add BASE_API_SSR var ([c836e7c](https://github.com/Metnew/suicrux/commit/c836e7c))
+* merge ([71f0339](https://github.com/Metnew/suicrux/commit/71f0339))
+* merge master ([5528074](https://github.com/Metnew/suicrux/commit/5528074))
+* merge master ([d84d865](https://github.com/Metnew/suicrux/commit/d84d865))
+* **webpack_config:** remove unused alias from webpack.isomorphic ([d30c0f8](https://github.com/Metnew/suicrux/commit/d30c0f8))
+
+
+### Features
+
+* **reducers:** simplify redurecers, remove metarouter ([7bc8676](https://github.com/Metnew/suicrux/commit/7bc8676))
+* make Sidebar and Header autonomous containers ([9b8192a](https://github.com/Metnew/suicrux/commit/9b8192a))
+* **actions:** add Awral directly to project ([9e34091](https://github.com/Metnew/suicrux/commit/9e34091))
+* **actions:** layout - OPEN/CLOSE_SIDEBAR -> TOGGLE_SIDEBAR ([fbcfc67](https://github.com/Metnew/suicrux/commit/fbcfc67))
+* **actions:** pass `meta` to LOGIN_AUTH_SUCCESS ([e2de72f](https://github.com/Metnew/suicrux/commit/e2de72f))
+* **components:** in header add getLayoutMobileStatuses ([3cd0ce1](https://github.com/Metnew/suicrux/commit/3cd0ce1))
+* **containers:** add data fetching in Links ([2e653e9](https://github.com/Metnew/suicrux/commit/2e653e9))
+* **containers:** rewrite Login using redux-form ([ba56d6d](https://github.com/Metnew/suicrux/commit/ba56d6d))
+* **containers:** simplify Links container, add data fetching ([a303334](https://github.com/Metnew/suicrux/commit/a303334))
+* **reducers:** add `metarouter` reducer ([eaeffed](https://github.com/Metnew/suicrux/commit/eaeffed))
+* **routing:** add getMetaRoutes func ([44732f4](https://github.com/Metnew/suicrux/commit/44732f4))
+* **selectors:** fix getAuthState, add getLayoutMobileStatuses selector ([757c302](https://github.com/Metnew/suicrux/commit/757c302))
+* **server:** use API_PREFIX env var for api prefix ([00ff85c](https://github.com/Metnew/suicrux/commit/00ff85c))
+* **webpack_config:** default BASE_API is not relative ([e6ef3ca](https://github.com/Metnew/suicrux/commit/e6ef3ca))
+
+
+
+
+# [2.1.0](https://github.com/Metnew/suicrux/compare/v1.3.3...v2.1.0) (2017-12-05)
+
+
+### Bug Fixes
+
+* **actions:** fix awral config ([e729bee](https://github.com/Metnew/suicrux/commit/e729bee))
+* **actions:** in awral fix this.fail ([af4ae75](https://github.com/Metnew/suicrux/commit/af4ae75))
+* **actions:** insert awral directly in project ([1a79238](https://github.com/Metnew/suicrux/commit/1a79238))
+* **actions:** no pending for Login Auth ([84f8aa8](https://github.com/Metnew/suicrux/commit/84f8aa8))
+* **actions/links:** fix flow types ([f471a58](https://github.com/Metnew/suicrux/commit/f471a58))
+* **actoins:** fix tests ([ad3fcf6](https://github.com/Metnew/suicrux/commit/ad3fcf6))
+* **client:** log initial state ([50ba267](https://github.com/Metnew/suicrux/commit/50ba267))
+* **components:** fix rendering of Redirects in RoutingWrapper ([4b72701](https://github.com/Metnew/suicrux/commit/4b72701))
+* **components:** in Root don't pass store to RoutingWrapper ([4c15942](https://github.com/Metnew/suicrux/commit/4c15942))
+* **components:** in Sidebar use getLayoutMobileStatuses ([dfb6eb0](https://github.com/Metnew/suicrux/commit/dfb6eb0))
+* **components:** remove components tests ([91fa196](https://github.com/Metnew/suicrux/commit/91fa196))
+* **components:** RoutingWrapper -> container, render only allowed routes ([d6b3a05](https://github.com/Metnew/suicrux/commit/d6b3a05))
+* **componets:** in Sidebar don't pass routing as props ([d35af3b](https://github.com/Metnew/suicrux/commit/d35af3b))
+* merge master ([d84d865](https://github.com/Metnew/suicrux/commit/d84d865))
+* **containers:** add "id" property to Login inputs ([d6c3beb](https://github.com/Metnew/suicrux/commit/d6c3beb))
+* **containers:** in App use getLayoutMobileStatuses selector ([70bbf9d](https://github.com/Metnew/suicrux/commit/70bbf9d))
+* **containers:** make Dashboard simpler ([2384c6b](https://github.com/Metnew/suicrux/commit/2384c6b))
+* **containers:** remove LinksComponent ([0e97e37](https://github.com/Metnew/suicrux/commit/0e97e37))
+* **containers:** rename LinkItemComponent -> LinkItem ([2b33eac](https://github.com/Metnew/suicrux/commit/2b33eac))
+* **eslint:** disable "jsx-a11y/label-has-for" rule ([5e5c950](https://github.com/Metnew/suicrux/commit/5e5c950))
+* **manifest:** add correct start_url property ([59da7fb](https://github.com/Metnew/suicrux/commit/59da7fb))
+* **reducers:** don't handle LOGIN_AUTH_PENDING ([ca39340](https://github.com/Metnew/suicrux/commit/ca39340))
+* **reducers:** fix tests ([b260685](https://github.com/Metnew/suicrux/commit/b260685))
+* **reducers:** in links fix GET_LINKS_FAIL ([4a5f6bb](https://github.com/Metnew/suicrux/commit/4a5f6bb))
+* **server:** fix initialState creation ([82c73c4](https://github.com/Metnew/suicrux/commit/82c73c4))
+* merge master ([5528074](https://github.com/Metnew/suicrux/commit/5528074))
+* **server:** remove safeStringifiedState from HTMLComponent ([106fef0](https://github.com/Metnew/suicrux/commit/106fef0))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+* **webpack_config:** GA_ID/sentr to global conf, add BASE_API_SSR var ([c836e7c](https://github.com/Metnew/suicrux/commit/c836e7c))
+* **webpack_config:** remove unused alias from webpack.isomorphic ([d30c0f8](https://github.com/Metnew/suicrux/commit/d30c0f8))
+
+
+### Features
+
+* **server:** use API_PREFIX env var for api prefix ([00ff85c](https://github.com/Metnew/suicrux/commit/00ff85c))
+* make Sidebar and Header autonomous containers ([9b8192a](https://github.com/Metnew/suicrux/commit/9b8192a))
+* **actions:** layout - OPEN/CLOSE_SIDEBAR -> TOGGLE_SIDEBAR ([fbcfc67](https://github.com/Metnew/suicrux/commit/fbcfc67))
+* **actions:** pass `meta` to LOGIN_AUTH_SUCCESS ([e2de72f](https://github.com/Metnew/suicrux/commit/e2de72f))
+* **components:** in header add getLayoutMobileStatuses ([3cd0ce1](https://github.com/Metnew/suicrux/commit/3cd0ce1))
+* **containers:** rewrite Login using redux-form ([ba56d6d](https://github.com/Metnew/suicrux/commit/ba56d6d))
+* **containers:** simplify Links container, add data fetching ([a303334](https://github.com/Metnew/suicrux/commit/a303334))
+* **reducers:** add `metarouter` reducer ([eaeffed](https://github.com/Metnew/suicrux/commit/eaeffed))
+* **reducers:** simplify redurecers, remove metarouter ([7bc8676](https://github.com/Metnew/suicrux/commit/7bc8676))
+* **routing:** add getMetaRoutes func ([44732f4](https://github.com/Metnew/suicrux/commit/44732f4))
+* **selectors:** fix getAuthState, add getLayoutMobileStatuses selector ([757c302](https://github.com/Metnew/suicrux/commit/757c302))
+
+
+
+
+# [2.0.0](https://github.com/Metnew/suicrux/compare/v1.3.3...v2.0.0) (2017-12-05)
+
+
+### Bug Fixes
+
+* **actions:** fix awral config ([e729bee](https://github.com/Metnew/suicrux/commit/e729bee))
+* **actions:** in awral fix this.fail ([af4ae75](https://github.com/Metnew/suicrux/commit/af4ae75))
+* **actions:** insert awral directly in project ([1a79238](https://github.com/Metnew/suicrux/commit/1a79238))
+* **actions:** no pending for Login Auth ([84f8aa8](https://github.com/Metnew/suicrux/commit/84f8aa8))
+* **actions/links:** fix flow types ([f471a58](https://github.com/Metnew/suicrux/commit/f471a58))
+* **actoins:** fix tests ([ad3fcf6](https://github.com/Metnew/suicrux/commit/ad3fcf6))
+* **client:** log initial state ([50ba267](https://github.com/Metnew/suicrux/commit/50ba267))
+* **components:** fix rendering of Redirects in RoutingWrapper ([4b72701](https://github.com/Metnew/suicrux/commit/4b72701))
+* **components:** in Root don't pass store to RoutingWrapper ([4c15942](https://github.com/Metnew/suicrux/commit/4c15942))
+* **components:** in Sidebar use getLayoutMobileStatuses ([dfb6eb0](https://github.com/Metnew/suicrux/commit/dfb6eb0))
+* **components:** remove components tests ([91fa196](https://github.com/Metnew/suicrux/commit/91fa196))
+* **components:** RoutingWrapper -> container, render only allowed routes ([d6b3a05](https://github.com/Metnew/suicrux/commit/d6b3a05))
+* **componets:** in Sidebar don't pass routing as props ([d35af3b](https://github.com/Metnew/suicrux/commit/d35af3b))
+* merge master ([d84d865](https://github.com/Metnew/suicrux/commit/d84d865))
+* **containers:** add "id" property to Login inputs ([d6c3beb](https://github.com/Metnew/suicrux/commit/d6c3beb))
+* **containers:** in App use getLayoutMobileStatuses selector ([70bbf9d](https://github.com/Metnew/suicrux/commit/70bbf9d))
+* **containers:** make Dashboard simpler ([2384c6b](https://github.com/Metnew/suicrux/commit/2384c6b))
+* **containers:** remove LinksComponent ([0e97e37](https://github.com/Metnew/suicrux/commit/0e97e37))
+* **containers:** rename LinkItemComponent -> LinkItem ([2b33eac](https://github.com/Metnew/suicrux/commit/2b33eac))
+* **eslint:** disable "jsx-a11y/label-has-for" rule ([5e5c950](https://github.com/Metnew/suicrux/commit/5e5c950))
+* **manifest:** add correct start_url property ([59da7fb](https://github.com/Metnew/suicrux/commit/59da7fb))
+* **reducers:** don't handle LOGIN_AUTH_PENDING ([ca39340](https://github.com/Metnew/suicrux/commit/ca39340))
+* **reducers:** fix tests ([b260685](https://github.com/Metnew/suicrux/commit/b260685))
+* **reducers:** in links fix GET_LINKS_FAIL ([4a5f6bb](https://github.com/Metnew/suicrux/commit/4a5f6bb))
+* merge master ([5528074](https://github.com/Metnew/suicrux/commit/5528074))
+* **server:** remove safeStringifiedState from HTMLComponent ([106fef0](https://github.com/Metnew/suicrux/commit/106fef0))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+* **webpack_config:** GA_ID/sentr to global conf, add BASE_API_SSR var ([c836e7c](https://github.com/Metnew/suicrux/commit/c836e7c))
+* **webpack_config:** remove unused alias from webpack.isomorphic ([d30c0f8](https://github.com/Metnew/suicrux/commit/d30c0f8))
+
+
+### Features
+
+* **server:** use API_PREFIX env var for api prefix ([00ff85c](https://github.com/Metnew/suicrux/commit/00ff85c))
+* make Sidebar and Header autonomous containers ([9b8192a](https://github.com/Metnew/suicrux/commit/9b8192a))
+* **actions:** layout - OPEN/CLOSE_SIDEBAR -> TOGGLE_SIDEBAR ([fbcfc67](https://github.com/Metnew/suicrux/commit/fbcfc67))
+* **actions:** pass `meta` to LOGIN_AUTH_SUCCESS ([e2de72f](https://github.com/Metnew/suicrux/commit/e2de72f))
+* **components:** in header add getLayoutMobileStatuses ([3cd0ce1](https://github.com/Metnew/suicrux/commit/3cd0ce1))
+* **containers:** rewrite Login using redux-form ([ba56d6d](https://github.com/Metnew/suicrux/commit/ba56d6d))
+* **containers:** simplify Links container, add data fetching ([a303334](https://github.com/Metnew/suicrux/commit/a303334))
+* **reducers:** add `metarouter` reducer ([eaeffed](https://github.com/Metnew/suicrux/commit/eaeffed))
+* **reducers:** simplify redurecers, remove metarouter ([7bc8676](https://github.com/Metnew/suicrux/commit/7bc8676))
+* **routing:** add getMetaRoutes func ([44732f4](https://github.com/Metnew/suicrux/commit/44732f4))
+* **selectors:** fix getAuthState, add getLayoutMobileStatuses selector ([757c302](https://github.com/Metnew/suicrux/commit/757c302))
+
+
+
+
+# [1.5.0](https://github.com/Metnew/suicrux/compare/v1.3.3...v1.5.0) (2017-12-03)
+
+
+### Bug Fixes
+
+* **actions:** fix Awral configuration ([7344e04](https://github.com/Metnew/suicrux/commit/7344e04))
+* **api/utils:** fix FormData reqs, add fetch `mode` ([0ce99be](https://github.com/Metnew/suicrux/commit/0ce99be))
+* **client:** disable react-hot-loader warnings ([46fb13e](https://github.com/Metnew/suicrux/commit/46fb13e))
+* **containers:** fix sticky footer on FF ([77f37ca](https://github.com/Metnew/suicrux/commit/77f37ca))
+* **package:** move pseudossl to optinalDeps ([c6c2146](https://github.com/Metnew/suicrux/commit/c6c2146))
+* **package:** remove awral ([9952102](https://github.com/Metnew/suicrux/commit/9952102))
+* **package:** update packages ([05bb1c6](https://github.com/Metnew/suicrux/commit/05bb1c6))
+* **package:** update semantic-ui-react to version 0.77.0 ([a4dc873](https://github.com/Metnew/suicrux/commit/a4dc873))
+* **package:** update versions ([b11348c](https://github.com/Metnew/suicrux/commit/b11348c))
+* **package:** use [@commitlint](https://github.com/commitlint)/config-(angular -> conventional) ([b3a80d9](https://github.com/Metnew/suicrux/commit/b3a80d9))
+* **package:** use config-(angular -> conventional) ([4e0c96c](https://github.com/Metnew/suicrux/commit/4e0c96c))
+* **webpack_config:** add publicPath in webpack server config ([bb91d69](https://github.com/Metnew/suicrux/commit/bb91d69))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+
+
+### Features
+
+* **actions:** add Awral directly to project ([9e34091](https://github.com/Metnew/suicrux/commit/9e34091))
+* **containers:** add data fetching in Links ([2e653e9](https://github.com/Metnew/suicrux/commit/2e653e9))
+* **webpack_config:** default BASE_API is not relative ([e6ef3ca](https://github.com/Metnew/suicrux/commit/e6ef3ca))
+
+
+
+
+# [1.4.0](https://github.com/Metnew/suicrux/compare/v1.3.3...v1.4.0) (2017-12-03)
+
+
+### Bug Fixes
+
+* **actions:** fix Awral configuration ([7344e04](https://github.com/Metnew/suicrux/commit/7344e04))
+* **api/utils:** fix FormData reqs, add fetch `mode` ([0ce99be](https://github.com/Metnew/suicrux/commit/0ce99be))
+* **client:** disable react-hot-loader warnings ([46fb13e](https://github.com/Metnew/suicrux/commit/46fb13e))
+* **containers:** fix sticky footer on FF ([77f37ca](https://github.com/Metnew/suicrux/commit/77f37ca))
+* **package:** move pseudossl to optinalDeps ([c6c2146](https://github.com/Metnew/suicrux/commit/c6c2146))
+* **package:** remove awral ([9952102](https://github.com/Metnew/suicrux/commit/9952102))
+* **package:** update packages ([05bb1c6](https://github.com/Metnew/suicrux/commit/05bb1c6))
+* **package:** update semantic-ui-react to version 0.77.0 ([a4dc873](https://github.com/Metnew/suicrux/commit/a4dc873))
+* **package:** use [@commitlint](https://github.com/commitlint)/config-(angular -> conventional) ([b3a80d9](https://github.com/Metnew/suicrux/commit/b3a80d9))
+* **package:** use config-(angular -> conventional) ([4e0c96c](https://github.com/Metnew/suicrux/commit/4e0c96c))
+* **webpack_config:** add publicPath in webpack server config ([bb91d69](https://github.com/Metnew/suicrux/commit/bb91d69))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+
+
+### Features
+
+* **actions:** add Awral directly to project ([9e34091](https://github.com/Metnew/suicrux/commit/9e34091))
+* **containers:** add data fetching in Links ([2e653e9](https://github.com/Metnew/suicrux/commit/2e653e9))
+* **webpack_config:** default BASE_API is not relative ([e6ef3ca](https://github.com/Metnew/suicrux/commit/e6ef3ca))
+
+
+
+
+## [1.3.7](https://github.com/Metnew/suicrux/compare/v1.3.3...v1.3.7) (2017-11-30)
+
+
+### Bug Fixes
+
+* **containers:** fix sticky footer on FF ([77f37ca](https://github.com/Metnew/suicrux/commit/77f37ca))
+* **package:** move pseudossl to optinalDeps ([c6c2146](https://github.com/Metnew/suicrux/commit/c6c2146))
+* **package:** update packages ([05bb1c6](https://github.com/Metnew/suicrux/commit/05bb1c6))
+* **package:** update semantic-ui-react to version 0.77.0 ([a4dc873](https://github.com/Metnew/suicrux/commit/a4dc873))
+* **package:** use [@commitlint](https://github.com/commitlint)/config-(angular -> conventional) ([b3a80d9](https://github.com/Metnew/suicrux/commit/b3a80d9))
+* **package:** use config-(angular -> conventional) ([4e0c96c](https://github.com/Metnew/suicrux/commit/4e0c96c))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+
+
+
+
+## [1.3.6](https://github.com/Metnew/suicrux/compare/v1.3.3...v1.3.6) (2017-11-30)
+
+
+### Bug Fixes
+
+* **containers:** fix sticky footer on FF ([77f37ca](https://github.com/Metnew/suicrux/commit/77f37ca))
+* **package:** move pseudossl to optinalDeps ([c6c2146](https://github.com/Metnew/suicrux/commit/c6c2146))
+* **package:** update packages ([05bb1c6](https://github.com/Metnew/suicrux/commit/05bb1c6))
+* **package:** update semantic-ui-react to version 0.77.0 ([a4dc873](https://github.com/Metnew/suicrux/commit/a4dc873))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+
+
+
+
+## [1.3.5](https://github.com/Metnew/suicrux/compare/v1.3.3...v1.3.5) (2017-11-30)
+
+
+### Bug Fixes
+
+* **containers:** fix sticky footer on FF ([77f37ca](https://github.com/Metnew/suicrux/commit/77f37ca))
+* **package:** update packages ([05bb1c6](https://github.com/Metnew/suicrux/commit/05bb1c6))
+* **package:** update semantic-ui-react to version 0.77.0 ([a4dc873](https://github.com/Metnew/suicrux/commit/a4dc873))
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+
+
+
+
+## [1.3.4](https://github.com/Metnew/suicrux/compare/v1.3.3...v1.3.4) (2017-11-10)
+
+
+### Bug Fixes
+
+* **webpack_config:** clean autodll libraries list ([e289153](https://github.com/Metnew/suicrux/commit/e289153))
+
+
+
+
+## [1.3.3](https://github.com/Metnew/suicrux/compare/v1.3.2...v1.3.3) (2017-11-10)
+
+
+### Bug Fixes
+
+* **containers:** fix App styles ([56baaa0](https://github.com/Metnew/suicrux/commit/56baaa0))
+* **containers:** fix Login height ([e379234](https://github.com/Metnew/suicrux/commit/e379234))
+* **containers:** fix NotFound height ([e81d2de](https://github.com/Metnew/suicrux/commit/e81d2de))
+* **containers:** NotFoundLayout height ([635eb9e](https://github.com/Metnew/suicrux/commit/635eb9e))
+
+
+
+
+## [1.3.2](https://github.com/Metnew/suicrux/compare/v1.3.1...v1.3.2) (2017-11-10)
+
+
+### Features
+
+* **package:** remove "precommit" hook, add cross-env ([875ab6a](https://github.com/Metnew/suicrux/commit/875ab6a))
+
+
+
+
+## [1.3.1](https://github.com/Metnew/suicrux/compare/v1.3.0...v1.3.1) (2017-11-10)
+
+
+
+
+# [1.3.0](https://github.com/Metnew/suicrux/compare/v1.2.5...v1.3.0) (2017-11-10)
+
+
+### Bug Fixes
+
+* **.babelrc:** add ie11 to supported browsers ([b91b0e4](https://github.com/Metnew/suicrux/commit/b91b0e4))
+* **.babelrc:** remove transform-runtime, add ie11 in env ([e3cab45](https://github.com/Metnew/suicrux/commit/e3cab45))
+* **client:** remove statistic.css, add babyl-polyfill ([f22d0a2](https://github.com/Metnew/suicrux/commit/f22d0a2))
+* **components:** make footer smaller [height] ([8b7fb7f](https://github.com/Metnew/suicrux/commit/8b7fb7f))
+* **containers:** App styles formatting, remove unused code ([7ec19b8](https://github.com/Metnew/suicrux/commit/7ec19b8))
+* **containers:** fix SidebarSemanticPusherStyled max-width from SSR ([b2e136b](https://github.com/Metnew/suicrux/commit/b2e136b))
+* **containers:** make footer sticky in App/style ([1c7522a](https://github.com/Metnew/suicrux/commit/1c7522a))
+* **server:** add babel-polyfill in production ([8df5ff4](https://github.com/Metnew/suicrux/commit/8df5ff4))
+* **server:** default port in dev ([e9d22eb](https://github.com/Metnew/suicrux/commit/e9d22eb))
+* **server:** remove express-useragent ([fe054c3](https://github.com/Metnew/suicrux/commit/fe054c3))
+* **server:** remove useragent, layoutState, move getStats in req ([64c7ff6](https://github.com/Metnew/suicrux/commit/64c7ff6))
+* **styles:** make primaryColorText: white ([824d548](https://github.com/Metnew/suicrux/commit/824d548))
+* **styles:** remove unused .pushable styles ([307027e](https://github.com/Metnew/suicrux/commit/307027e))
+* **styles:** remove unused code for media ([9302da2](https://github.com/Metnew/suicrux/commit/9302da2))
+* **xhr_wrapper:** remove `getLocalToken` because we use cookies ([033c886](https://github.com/Metnew/suicrux/commit/033c886))
+
+
+
+## [1.2.4](https://github.com/Metnew/suicrux/compare/v1.2.3...v1.2.4) (2017-11-07)
+
+
+
+
+## [1.2.3](https://github.com/Metnew/suicrux/compare/v1.2.2...v1.2.3) (2017-11-07)
+
+
+### Bug Fixes
+
+* **server/api:** fix mistakes/links/typos inside links.json ([1749e54](https://github.com/Metnew/suicrux/commit/1749e54))
+
+
+
+
+## [1.2.2](https://github.com/Metnew/suicrux/compare/v1.2.1...v1.2.2) (2017-11-07)
+
+
+
+
+## [1.2.1](https://github.com/Metnew/suicrux/compare/v1.2.0...v1.2.1) (2017-11-07)
+
+
+
+
+# [1.2.0](https://github.com/Metnew/suicrux/compare/v1.1.3...v1.2.0) (2017-11-07)
+
+
+### Bug Fixes
+
+* move query-string to optional deps ([4535628](https://github.com/Metnew/suicrux/commit/4535628))
+* **package:** move store2 to optional deps ([65df8fa](https://github.com/Metnew/suicrux/commit/65df8fa))
+
+
+### Features
+
+* **package:** remove validate-commit-msg, install commitlint ([d27b81d](https://github.com/Metnew/suicrux/commit/d27b81d))
+
+
+
+
+## [1.1.3](https://github.com/Metnew/suicrux/compare/v1.1.2...v1.1.3) (2017-11-07)
+
+
+### Bug Fixes
+
+* remove store2 from project ([c3658e7](https://github.com/Metnew/suicrux/commit/c3658e7))
+
+
+
+
+## [1.1.2](https://github.com/Metnew/suicrux/compare/v1.1.1...v1.1.2) (2017-11-07)
+
+
+### Bug Fixes
+
+* **webpack_config:** remove url-loader duplication in server and client configs ([7cea591](https://github.com/Metnew/suicrux/commit/7cea591))
+
+
+
+
+## [1.1.1](https://github.com/Metnew/suicrux/compare/v1.1.0...v1.1.1) (2017-11-06)
+
+
+### Bug Fixes
+
+* **.babelrc:** add "dynamic-import-node" in production ([17060b7](https://github.com/Metnew/suicrux/commit/17060b7))
+* **webpack_config/client:** different chunkFilename in prod/dev ([3e32c02](https://github.com/Metnew/suicrux/commit/3e32c02))
+* **webpack_config/server:** remove unused aliases, different chunkFilename in prod/dev ([9ce7a7a](https://github.com/Metnew/suicrux/commit/9ce7a7a))
+
+
+
+
+# [1.1.0](https://github.com/Metnew/suicrux/compare/v1.0.1...v1.1.0) (2017-11-06)
+
+
+### Bug Fixes
+
+* **package:** update semantic-ui-react to version 0.76.0 ([eff0262](https://github.com/Metnew/suicrux/commit/eff0262))
+* **server:** remove console.log ([d82f045](https://github.com/Metnew/suicrux/commit/d82f045))
+* **webpack_config:** clean `dist/client` dir on run ([b5b8ff3](https://github.com/Metnew/suicrux/commit/b5b8ff3))
+
+
+### Features
+
+* **server:** get webpack stats using `fs` ([5221391](https://github.com/Metnew/suicrux/commit/5221391))
+* **server:** resolve assets and faviconsAssets async using `getStats()` ([ca8ae99](https://github.com/Metnew/suicrux/commit/ca8ae99))
+* **server/ssr:** wait for stats file before reading it using chokidar ([a968954](https://github.com/Metnew/suicrux/commit/a968954))
+
+
+
+
+## [1.0.1](https://github.com/Metnew/suicrux/compare/v1.0.0...v1.0.1) (2017-11-04)
+
+
+
+# [1.0.0](https://github.com/Metnew/suicrux/compare/v0.4.0...v1.0.0) (2017-11-04)
+
+
+
+
+# [0.4.0](https://github.com/Metnew/suicrux/compare/v0.3.0...v0.4.0) (2017-11-04)
+
+
+### Bug Fixes
+
+* **App:** add `getSidebarRoutes` instead of direct filtering inside component ([75d5bf0](https://github.com/Metnew/suicrux/commit/75d5bf0))
+* **client/index:** remove devtools for R15, add isomorphic-fetch ([cefba8c](https://github.com/Metnew/suicrux/commit/cefba8c))
+* **containers/App:** uncomment Sentry code ([a58db5e](https://github.com/Metnew/suicrux/commit/a58db5e))
+* **Footer:** add min-height for Footer ([be521a8](https://github.com/Metnew/suicrux/commit/be521a8))
+* **Header:** fixed height for header ([027ed0a](https://github.com/Metnew/suicrux/commit/027ed0a))
+* **jest_config:** add scss|sass as extensions to mock by jest ([210fb1b](https://github.com/Metnew/suicrux/commit/210fb1b))
+* **Links:** use isLinksLoading instead of isLinksLoaded ([143e5a4](https://github.com/Metnew/suicrux/commit/143e5a4))
+* **locals:** update ru locals ([e41ea18](https://github.com/Metnew/suicrux/commit/e41ea18))
+* **Login:** add 100% height for Login component ([6b247e2](https://github.com/Metnew/suicrux/commit/6b247e2))
+* **reducers/links:** fix tests (payload should be array) ([8fbd57c](https://github.com/Metnew/suicrux/commit/8fbd57c))
+* **Root:** use `getRouterRoutes()` as routes for RoutingWrapper ([f539033](https://github.com/Metnew/suicrux/commit/f539033))
+* **routing:** fix detection of routerRoutes ([f1224b9](https://github.com/Metnew/suicrux/commit/f1224b9))
+* **routing:** use only direct imports (no LL) ([53c479d](https://github.com/Metnew/suicrux/commit/53c479d))
+* **server:** add FormData for server ([80b6071](https://github.com/Metnew/suicrux/commit/80b6071))
+* **server:** return correct status code if path matched ([a2c637f](https://github.com/Metnew/suicrux/commit/a2c637f))
+* **server/api:** fix links to repo in links.json ([58c7f7d](https://github.com/Metnew/suicrux/commit/58c7f7d))
+* **Sidebar:** fix shapshot ([e09c965](https://github.com/Metnew/suicrux/commit/e09c965))
+* **webpack_config:** es6ify code ([de3de45](https://github.com/Metnew/suicrux/commit/de3de45))
+* **webpack_config:** fix logo import path ([609d241](https://github.com/Metnew/suicrux/commit/609d241))
+* **webpack_config:** PORT -> HTTP_PORT, remove `ssl` alias ([89c5d80](https://github.com/Metnew/suicrux/commit/89c5d80))
+* **webpack_config:** remove lazy-containers chunk ([d01676f](https://github.com/Metnew/suicrux/commit/d01676f))
+* **webpack_config:** remove UglifyJSPlugin ([1e8d061](https://github.com/Metnew/suicrux/commit/1e8d061))
+* **webpack_config:** SENTRY_DSN_PUBLIC -> SENTRY_PUBLIC_DSN ([a8ca4b1](https://github.com/Metnew/suicrux/commit/a8ca4b1))
+* **webpack_config/devServer:** add dummy check for `serverSideCode` ([ae38d2e](https://github.com/Metnew/suicrux/commit/ae38d2e))
+* fix `routes` import in app ([a862358](https://github.com/Metnew/suicrux/commit/a862358))
+* formatting, small design fixes ([9d921a4](https://github.com/Metnew/suicrux/commit/9d921a4))
+* make all lazy routes ([cce4088](https://github.com/Metnew/suicrux/commit/cce4088))
+* move tests in own describe block ([1a61c67](https://github.com/Metnew/suicrux/commit/1a61c67))
+* remove ShakePlugin ([c1e01f9](https://github.com/Metnew/suicrux/commit/c1e01f9))
+* use only plain dynamic imports with no comments ([b09e40c](https://github.com/Metnew/suicrux/commit/b09e40c))
+
+
+### Features
+
+* **addons/LazyLoad:** remove LazyLoad component ([01bf70e](https://github.com/Metnew/suicrux/commit/01bf70e))
+* **addons/RoutingWrapper:** remove mentions about `lazy` ([2dcaa6e](https://github.com/Metnew/suicrux/commit/2dcaa6e))
+* **app:** use `getRoutes()` instead of `routes` ([3c09b54](https://github.com/Metnew/suicrux/commit/3c09b54))
+* **App:** add `max-height: 100% - 72px` for MainLayout ([a0c03ab](https://github.com/Metnew/suicrux/commit/a0c03ab))
+* **client:** add async-component and async-bootstrapper ([db5ef11](https://github.com/Metnew/suicrux/commit/db5ef11))
+* **Links:** add isLinksLoaded, get links only if links aren't loaded ([969bcf0](https://github.com/Metnew/suicrux/commit/969bcf0))
+* **NotFound:** add NotFound container (404 error) ([2070c0a](https://github.com/Metnew/suicrux/commit/2070c0a))
+* **package:** install form-data ([50c8160](https://github.com/Metnew/suicrux/commit/50c8160))
+* **package.json:** install react-async-component and react-async-bootstrapper ([a3e8fc8](https://github.com/Metnew/suicrux/commit/a3e8fc8))
+* **package.json:** update deps ([5961bde](https://github.com/Metnew/suicrux/commit/5961bde))
+* **reducers/links:** add count property ([7399f8e](https://github.com/Metnew/suicrux/commit/7399f8e))
+* **redux-persist:** v5 integration ([1c439eb](https://github.com/Metnew/suicrux/commit/1c439eb))
+* **routing:** add `asyncComponent` from `react-async-component` ([4d9ec26](https://github.com/Metnew/suicrux/commit/4d9ec26))
+* **routing:** add asyncComponent, routingFnCreator, ([c742eb4](https://github.com/Metnew/suicrux/commit/c742eb4))
+* **routing:** export `get*()` funcs from `routes` ([57bb4c3](https://github.com/Metnew/suicrux/commit/57bb4c3))
+* **routing:** make all routes lazy ([d0a19c6](https://github.com/Metnew/suicrux/commit/d0a19c6))
+* **RoutingWrapper:** use `getRouterRoutes()` instead of routes ([64c4f30](https://github.com/Metnew/suicrux/commit/64c4f30))
+* **server:** add Raven, disable x-powered-by ([4c3ed6f](https://github.com/Metnew/suicrux/commit/4c3ed6f))
+* **server:** remove HTTPS server and config, remove spdy, remove `genssl` script ([0d8ddb5](https://github.com/Metnew/suicrux/commit/0d8ddb5))
+* remove redux-persist from project ([86d781e](https://github.com/Metnew/suicrux/commit/86d781e))
+* **server:** remove server_push code ([2eba2fe](https://github.com/Metnew/suicrux/commit/2eba2fe))
+* **server/ssr:** add , Html -> HTML ([8fa5ca8](https://github.com/Metnew/suicrux/commit/8fa5ca8))
+* **server/ssr:** add async-component, async-bootstrapper ([64dc579](https://github.com/Metnew/suicrux/commit/64dc579))
+* **server/ssr:** add Lazy loading with SSR ([ff0d42d](https://github.com/Metnew/suicrux/commit/ff0d42d))
+* **styles:** duplicate some styles to make SSR result nicer ([862d8c4](https://github.com/Metnew/suicrux/commit/862d8c4))
+
+
+
+
+# [0.3.0](https://github.com/Metnew/react-semantic.ui-starter/compare/v0.2.0...v0.3.0) (2017-10-19)
+
+
+### Bug Fixes
+
+* **actions/utils:** fix awral import ([4ee2c9a](https://github.com/Metnew/react-semantic.ui-starter/commit/4ee2c9a))
+* **actions/utils:** fix comments about awral disabling ([f12aa33](https://github.com/Metnew/react-semantic.ui-starter/commit/f12aa33))
+* **containers/Login:** fix input fields onChange ([486601e](https://github.com/Metnew/react-semantic.ui-starter/commit/486601e))
+* **jest_config:** add process.env.BASE_API ([bfff20b](https://github.com/Metnew/react-semantic.ui-starter/commit/bfff20b))
+* **jest_config:** remove BASE_API assign in test mode ([651e370](https://github.com/Metnew/react-semantic.ui-starter/commit/651e370))
+* **package:** update jsonwebtoken to version 8.0.0 ([c2aad78](https://github.com/Metnew/react-semantic.ui-starter/commit/c2aad78))
+* **package:** update react to version 16.0.0 ([ace78b4](https://github.com/Metnew/react-semantic.ui-starter/commit/ace78b4))
+* **package:** update react-dom to version 16.0.0 ([54089cc](https://github.com/Metnew/react-semantic.ui-starter/commit/54089cc))
+* **package:** update semantic-ui-react to version 0.72.0 ([a914351](https://github.com/Metnew/react-semantic.ui-starter/commit/a914351))
+* **package:** update semantic-ui-react to version 0.73.0 ([1f1adf8](https://github.com/Metnew/react-semantic.ui-starter/commit/1f1adf8))
+* **package:** update semantic-ui-react to version 0.74.0 ([9707aec](https://github.com/Metnew/react-semantic.ui-starter/commit/9707aec))
+* **package:** update semantic-ui-react to version 0.75.0 ([1a8b3e7](https://github.com/Metnew/react-semantic.ui-starter/commit/1a8b3e7))
+* **package.json:** remove babel-preset-es2015 ([f341308](https://github.com/Metnew/react-semantic.ui-starter/commit/f341308))
+* **package.json:** remove uglify-js ([b6d3980](https://github.com/Metnew/react-semantic.ui-starter/commit/b6d3980))
+* **reducers/layout:** remove APPLICATION_INIT ([f615586](https://github.com/Metnew/react-semantic.ui-starter/commit/f615586))
+* **webpack_config:** use rimraf instead of rm rf ([18ba44f](https://github.com/Metnew/react-semantic.ui-starter/commit/18ba44f))
+* **webpack_config:** use webpack's uglifyjs instead of uglifyjs plugin ([5ebcc3c](https://github.com/Metnew/react-semantic.ui-starter/commit/5ebcc3c))
+* **webpack_config/:** fix UglifyJS plugin, use rimraf ([c720fc8](https://github.com/Metnew/react-semantic.ui-starter/commit/c720fc8))
+* **xhr_wrapper:** add status in response, use 'options' and 'cb' ([a52318a](https://github.com/Metnew/react-semantic.ui-starter/commit/a52318a))
+
+
+### Features
+
+* **actons/auth:** add nock in tests ([7cef458](https://github.com/Metnew/react-semantic.ui-starter/commit/7cef458))
+* **actons/auth:** add nock in tests, fix tests ([17e9b55](https://github.com/Metnew/react-semantic.ui-starter/commit/17e9b55))
+* **actons/utils:** disable "FINALLY", "BEFORE_PENDING" in awral ([3558336](https://github.com/Metnew/react-semantic.ui-starter/commit/3558336))
+* **api/LocalStorateCookiesSvc:** remove store2, add comments ([a056b6c](https://github.com/Metnew/react-semantic.ui-starter/commit/a056b6c))
+* **components/Header:** make Header stateless ([c657cc8](https://github.com/Metnew/react-semantic.ui-starter/commit/c657cc8))
+* **components/Logo:** add test file ([de4d758](https://github.com/Metnew/react-semantic.ui-starter/commit/de4d758))
+* **components/RouteAuth:** add RouteAuth tests ([c824599](https://github.com/Metnew/react-semantic.ui-starter/commit/c824599))
+* **package.json:** install "sinon" in dev deps ([3dfa763](https://github.com/Metnew/react-semantic.ui-starter/commit/3dfa763))
+* **package.json:** install awral[@1](https://github.com/1).2.0 ([6e5716c](https://github.com/Metnew/react-semantic.ui-starter/commit/6e5716c))
+
+
+
+
+# [0.2.0](https://github.com/Metnew/react-semantic.ui-starter/compare/v0.1.1...v0.2.0) (2017-10-16)
+
+
+### Bug Fixes
+
+* **reducers:** fix reducers layout/links/auth tests ([94d82fd](https://github.com/Metnew/react-semantic.ui-starter/commit/94d82fd))
+
+
+### Features
+
+* **.babelrc:** add "selectors" folder to module-resolver in .babelrc ([7ec78eb](https://github.com/Metnew/react-semantic.ui-starter/commit/7ec78eb))
+* **jest_config:** add enzyme adapter configuration ([f8adc27](https://github.com/Metnew/react-semantic.ui-starter/commit/f8adc27))
+* **package.json:** add snapshot_update script, update deps ([283e9a8](https://github.com/Metnew/react-semantic.ui-starter/commit/283e9a8))
+* update jest snapshots ([e39d11d](https://github.com/Metnew/react-semantic.ui-starter/commit/e39d11d))
+
+
+
+
+# [0.1.0](https://github.com/Metnew/react-semantic.ui-starter/compare/v0.1.0-alpha.0...v0.1.0) (2017-10-16)
+
+
+### Bug Fixes
+
+* **.babelrc:** remove preprocess option from babel-plugin-styled-components ([2b35f35](https://github.com/Metnew/react-semantic.ui-starter/commit/2b35f35))
+* **.eslintrc:** throw warning for "no-unused-vars" ([fc9e36b](https://github.com/Metnew/react-semantic.ui-starter/commit/fc9e36b))
+* **actions/common:** fix flow type of APPLICATION_INIT ([cf0a540](https://github.com/Metnew/react-semantic.ui-starter/commit/cf0a540))
+* **api/UsersSvc:** getUsersApi - use few args instead of one object-arg ([25e555d](https://github.com/Metnew/react-semantic.ui-starter/commit/25e555d))
+* **App:** bigger margin-top for MainContainer ([c04bb3c](https://github.com/Metnew/react-semantic.ui-starter/commit/c04bb3c))
+* **App:** export getWindowInnerWidth from selectors ([7dccc03](https://github.com/Metnew/react-semantic.ui-starter/commit/7dccc03))
+* **App/style:** fix App styles for better adoption of react-headroom ([d5dcef9](https://github.com/Metnew/react-semantic.ui-starter/commit/d5dcef9))
+* **App/style:** grids inside App don't have 100% height ([14cdf48](https://github.com/Metnew/react-semantic.ui-starter/commit/14cdf48))
+* **common/routing:** fix lazyLoadComponent function ([8651c23](https://github.com/Metnew/react-semantic.ui-starter/commit/8651c23))
+* **containers/App:** make sidebar pusher overflow visible ([7b19e87](https://github.com/Metnew/react-semantic.ui-starter/commit/7b19e87))
+* **containers/Links:** UI fix ([6289132](https://github.com/Metnew/react-semantic.ui-starter/commit/6289132))
+* **containers/Login:** fix mapDispatchToProps.login ([4c61b2e](https://github.com/Metnew/react-semantic.ui-starter/commit/4c61b2e))
+* **containers/Login:** remove stage-0 "::" bind ([037ba73](https://github.com/Metnew/react-semantic.ui-starter/commit/037ba73))
+* **Dashboard:** remove DashboardCardComponent ([85bd58d](https://github.com/Metnew/react-semantic.ui-starter/commit/85bd58d))
+* **devServer:** use HTTP_PORT instead of PORT ([c05dc83](https://github.com/Metnew/react-semantic.ui-starter/commit/c05dc83))
+* **Footer:** fix text in footer ([b0cd19e](https://github.com/Metnew/react-semantic.ui-starter/commit/b0cd19e))
+* **Footer/style:** remove useless margin-top: 30px on lg screen ([4063871](https://github.com/Metnew/react-semantic.ui-starter/commit/4063871))
+* **Login:** vars names ([f94c47b](https://github.com/Metnew/react-semantic.ui-starter/commit/f94c47b))
+* **Logo:** fix logo import path ([95794d1](https://github.com/Metnew/react-semantic.ui-starter/commit/95794d1))
+* **reducers/layout:** remove APPLICATION_INIT_TYPE ([3c76706](https://github.com/Metnew/react-semantic.ui-starter/commit/3c76706))
+* **server:** fix config import path in dev mode ([ebfee5d](https://github.com/Metnew/react-semantic.ui-starter/commit/ebfee5d))
+* **server/api:** remove i18n stuff from /auth api ([a759826](https://github.com/Metnew/react-semantic.ui-starter/commit/a759826))
+* **server/i18n:** move summaryLocaleData to inner func ([34a5f91](https://github.com/Metnew/react-semantic.ui-starter/commit/34a5f91))
+* **server/index.dev:** fix port numbers ([3960490](https://github.com/Metnew/react-semantic.ui-starter/commit/3960490))
+* **Sidebar:** use styled(Item) instead of Item.extend ([15e094f](https://github.com/Metnew/react-semantic.ui-starter/commit/15e094f))
+* **src/client:** remove use SUI dropdown, flag, use hydrate from react 16 ([45c3b2b](https://github.com/Metnew/react-semantic.ui-starter/commit/45c3b2b))
+* **UserItem:** use logo as default img ([c2e8cce](https://github.com/Metnew/react-semantic.ui-starter/commit/c2e8cce))
+* fix eslint warnings ([4c8e0ad](https://github.com/Metnew/react-semantic.ui-starter/commit/4c8e0ad))
+* remove eslint warnings (unused-vars) ([58de337](https://github.com/Metnew/react-semantic.ui-starter/commit/58de337))
+* remove prefer-const rule ([82f7bd2](https://github.com/Metnew/react-semantic.ui-starter/commit/82f7bd2))
+* **webpack_config:** devtool 'eval' ([c73a8bb](https://github.com/Metnew/react-semantic.ui-starter/commit/c73a8bb))
+* **webpack_config:** import ANALYZE_BUNDLE from config ([7a19f41](https://github.com/Metnew/react-semantic.ui-starter/commit/7a19f41))
+* **webpack_config:** remove isProduction from client/webpack.dev ([f3253b1](https://github.com/Metnew/react-semantic.ui-starter/commit/f3253b1))
+* **webpack_config:** remove pug-loader ([a41cdcd](https://github.com/Metnew/react-semantic.ui-starter/commit/a41cdcd))
+* **webpack_config/client:** eslint fixes ([4080878](https://github.com/Metnew/react-semantic.ui-starter/commit/4080878))
+* **webpack_config/client:** fix favicons plugin, low url-loader limit ([a512c8a](https://github.com/Metnew/react-semantic.ui-starter/commit/a512c8a))
+
+
+### Features
+
+* **.babelrc:** add env preset, remove SUIR from lodash plugin ([b84c0d9](https://github.com/Metnew/react-semantic.ui-starter/commit/b84c0d9))
+* **.babelrc:** remove es2015 preset, add babel-polyfill: true ([e223f2e](https://github.com/Metnew/react-semantic.ui-starter/commit/e223f2e))
+* **.eslintrc:** add "prefer-const" rule ([5da5c3d](https://github.com/Metnew/react-semantic.ui-starter/commit/5da5c3d))
+* **actions:** rewrite actions using awral ([468949c](https://github.com/Metnew/react-semantic.ui-starter/commit/468949c))
+* **actions/links:** add actions for links ([9ab21ab](https://github.com/Metnew/react-semantic.ui-starter/commit/9ab21ab))
+* **actions/links:** add tests for links ([73d3da6](https://github.com/Metnew/react-semantic.ui-starter/commit/73d3da6))
+* **actions/posts:** remove posts actions ([bcd5a17](https://github.com/Metnew/react-semantic.ui-starter/commit/bcd5a17))
+* **actions/posts:** remove tests for posts actions ([87a1e75](https://github.com/Metnew/react-semantic.ui-starter/commit/87a1e75))
+* **actions/users:** remove actions for users ([711ca1d](https://github.com/Metnew/react-semantic.ui-starter/commit/711ca1d))
+* **actions/utils:** add base awral ([6cba7c3](https://github.com/Metnew/react-semantic.ui-starter/commit/6cba7c3))
+* **api:** remove services for users/posts ([14404e0](https://github.com/Metnew/react-semantic.ui-starter/commit/14404e0))
+* **api/links.json:** fix links desc ([7c91334](https://github.com/Metnew/react-semantic.ui-starter/commit/7c91334))
+* **api/LinksSvc:** add service for links ([aba120f](https://github.com/Metnew/react-semantic.ui-starter/commit/aba120f))
+* **api/utils:** remove export of normalization ([5475db8](https://github.com/Metnew/react-semantic.ui-starter/commit/5475db8))
+* **api/utils/xhr_wrapper:** move to ponyfill from polyfill ([c76addb](https://github.com/Metnew/react-semantic.ui-starter/commit/c76addb))
+* **App:** init handleWindowResize on App willMount ([7d41107](https://github.com/Metnew/react-semantic.ui-starter/commit/7d41107))
+* **client:** remove item.css, add list.css ([2a41841](https://github.com/Metnew/react-semantic.ui-starter/commit/2a41841))
+* **client/index:** use direct imports for SUI css, add [@flow](https://github.com/flow) ([72d2f13](https://github.com/Metnew/react-semantic.ui-starter/commit/72d2f13))
+* **components/Header:** add react-headroom, add i18n menu ([c8cc890](https://github.com/Metnew/react-semantic.ui-starter/commit/c8cc890))
+* **containers:** add Links container ([e813450](https://github.com/Metnew/react-semantic.ui-starter/commit/e813450))
+* **containers:** remove containers/Users ([a7d7397](https://github.com/Metnew/react-semantic.ui-starter/commit/a7d7397))
+* **containers/App:** replace custom GA with react-ga ([6d53628](https://github.com/Metnew/react-semantic.ui-starter/commit/6d53628))
+* **containers/Dashboard:** add i18n for Dashboard component ([42e6166](https://github.com/Metnew/react-semantic.ui-starter/commit/42e6166))
+* **containers/Links:** add LinksItemComponent ([0c830ab](https://github.com/Metnew/react-semantic.ui-starter/commit/0c830ab))
+* **containers/UserItem:** remove UserItem component ([ec859d0](https://github.com/Metnew/react-semantic.ui-starter/commit/ec859d0))
+* **containers/UserItem:** remove UserItem container ([09ee2b3](https://github.com/Metnew/react-semantic.ui-starter/commit/09ee2b3))
+* **Dashboard:** remove old redux stuff from Dashboard container ([7c31517](https://github.com/Metnew/react-semantic.ui-starter/commit/7c31517))
+* **Header:** remove language selection button ([964c82f](https://github.com/Metnew/react-semantic.ui-starter/commit/964c82f))
+* **jest_config:** add 'jest-styled-components' package ([e3ac0a1](https://github.com/Metnew/react-semantic.ui-starter/commit/e3ac0a1))
+* **Lnks:** add Links component ([fba2240](https://github.com/Metnew/react-semantic.ui-starter/commit/fba2240))
+* **locals:** add basic locals ([66e6cb8](https://github.com/Metnew/react-semantic.ui-starter/commit/66e6cb8))
+* **locals:** add basic text for dashboard ([d0dd619](https://github.com/Metnew/react-semantic.ui-starter/commit/d0dd619))
+* **LocalStorageCookiesSvc:** add `getInfoFromJWT ` ([bea8213](https://github.com/Metnew/react-semantic.ui-starter/commit/bea8213))
+* **Login:** remove TextCenter wrapper, make styles for LoginButton simple ([01875c4](https://github.com/Metnew/react-semantic.ui-starter/commit/01875c4))
+* **package.json:** add rapscallion ([c408f9d](https://github.com/Metnew/react-semantic.ui-starter/commit/c408f9d))
+* **package.json:** add raven, reselect, nock ([89e6964](https://github.com/Metnew/react-semantic.ui-starter/commit/89e6964))
+* **package.json:** install chokidar ([9eef237](https://github.com/Metnew/react-semantic.ui-starter/commit/9eef237))
+* **package.json:** install new deps ([ef265d2](https://github.com/Metnew/react-semantic.ui-starter/commit/ef265d2))
+* **package.json:** update deps, install awral ([50e6d22](https://github.com/Metnew/react-semantic.ui-starter/commit/50e6d22))
+* **parts/Header/style:** remove position:fixed from Header ([f927162](https://github.com/Metnew/react-semantic.ui-starter/commit/f927162))
+* **reducers:** remove posts, users reducers from `combineReducers` ([d9867bd](https://github.com/Metnew/react-semantic.ui-starter/commit/d9867bd))
+* **reducers/auth:** remove jwt token from state.me.auth ([1e23aea](https://github.com/Metnew/react-semantic.ui-starter/commit/1e23aea))
+* **reducers/layout:** remove APPLICATION_INIT handling ([be37230](https://github.com/Metnew/react-semantic.ui-starter/commit/be37230))
+* **reducers/links:** add tests for links reducer ([06c2a2a](https://github.com/Metnew/react-semantic.ui-starter/commit/06c2a2a))
+* **reducers/links:** add tests for links reducer ([23372a4](https://github.com/Metnew/react-semantic.ui-starter/commit/23372a4))
+* **reducers/posts:** remove posts reducer ([fa41df8](https://github.com/Metnew/react-semantic.ui-starter/commit/fa41df8))
+* **reducers/posts:** remove tests for posts reducer ([0d3df5b](https://github.com/Metnew/react-semantic.ui-starter/commit/0d3df5b))
+* **Root:** add more flow typesm fix APP_INIT dispatch ([8dc70ef](https://github.com/Metnew/react-semantic.ui-starter/commit/8dc70ef))
+* **routing:** temporarily remove lazy loading ([d19bcb6](https://github.com/Metnew/react-semantic.ui-starter/commit/d19bcb6))
+* **routing:** use "lazy" instead of "lazy-once" for lazy loading in browser env ([a08a070](https://github.com/Metnew/react-semantic.ui-starter/commit/a08a070))
+* **selectors:** remove posts/users selector, add links selector, remove /const ([235b122](https://github.com/Metnew/react-semantic.ui-starter/commit/235b122))
+* **server:** add both https and http server in dev mode ([9c24f66](https://github.com/Metnew/react-semantic.ui-starter/commit/9c24f66))
+* **server:** add useragent middleware ([44a51fd](https://github.com/Metnew/react-semantic.ui-starter/commit/44a51fd))
+* **server:** rename HtmlComponent, remove unused vars ([e4116c2](https://github.com/Metnew/react-semantic.ui-starter/commit/e4116c2))
+* **server:** use HTTP(S)_PORT env vars instead of PORT ([f3d9a31](https://github.com/Metnew/react-semantic.ui-starter/commit/f3d9a31))
+* **server:** use process.env.BASE_API instead of /api/v1 for API ([bdd3dcf](https://github.com/Metnew/react-semantic.ui-starter/commit/bdd3dcf))
+* **server/api:** server send links.json on /links req ([9d5d4c5](https://github.com/Metnew/react-semantic.ui-starter/commit/9d5d4c5))
+* **server/config:** add default ssl ([86fe771](https://github.com/Metnew/react-semantic.ui-starter/commit/86fe771))
+* **server/i18n:** add flow types (i18nConfigObject) ([3904e56](https://github.com/Metnew/react-semantic.ui-starter/commit/3904e56))
+* **server/i18n:** move i18n to own folder ([ae47826](https://github.com/Metnew/react-semantic.ui-starter/commit/ae47826))
+* **server/i18n:** watch locals dir for updates in development ([4cafcb5](https://github.com/Metnew/react-semantic.ui-starter/commit/4cafcb5))
+* **server/index.dev:** add both http and https servers in prod ([a33c3e9](https://github.com/Metnew/react-semantic.ui-starter/commit/a33c3e9))
+* **server/middlewares:** add i18n stuff to auth middleware ([9db4b9e](https://github.com/Metnew/react-semantic.ui-starter/commit/9db4b9e))
+* **server/ssr:** add rapscallion instead of react-dom/server renderToString ([4a6146b](https://github.com/Metnew/react-semantic.ui-starter/commit/4a6146b))
+* **server/ssr:** move i18n stuff to i18n, fix state creation ([13dec07](https://github.com/Metnew/react-semantic.ui-starter/commit/13dec07))
+* **server/ssr:** move server push code to own file ([37b7e2e](https://github.com/Metnew/react-semantic.ui-starter/commit/37b7e2e))
+* **server/ssr:** move to react 16 ([a3b2010](https://github.com/Metnew/react-semantic.ui-starter/commit/a3b2010))
+* **server/ssr:** React 16 streaming ([ed419d1](https://github.com/Metnew/react-semantic.ui-starter/commit/ed419d1))
+* **server/ssr:** React 16 streaming, remove rapscallion ([1b76528](https://github.com/Metnew/react-semantic.ui-starter/commit/1b76528))
+* **server/ssr:** use `template` func from rapscallion in HtmlComponen ([dab06eb](https://github.com/Metnew/react-semantic.ui-starter/commit/dab06eb))
+* **ssr/HtmlComponent:** use serialize-javascript instead of JSON.stringify ([e203edf](https://github.com/Metnew/react-semantic.ui-starter/commit/e203edf))
+* **styles:** add more comments in /utils.jsx ([4696bb7](https://github.com/Metnew/react-semantic.ui-starter/commit/4696bb7))
+* **styles:** remove unused styled-components ([acb04b5](https://github.com/Metnew/react-semantic.ui-starter/commit/acb04b5))
+* **types:** add i18nConfigObject ([c997f45](https://github.com/Metnew/react-semantic.ui-starter/commit/c997f45))
+* **types:** add LinkItem type, remove old types ([f7f4be9](https://github.com/Metnew/react-semantic.ui-starter/commit/f7f4be9))
+* **webpack_config:** add ANALYZE_BUNDLE to main config file ([95e92e6](https://github.com/Metnew/react-semantic.ui-starter/commit/95e92e6))
+* **webpack_config:** use HTTPS/HTTP ports instead of PORT ([d08d743](https://github.com/Metnew/react-semantic.ui-starter/commit/d08d743))
+
+
+
+
+# [0.1.0-alpha.0](https://github.com/Metnew/react-semantic.ui-starter/compare/v3.0.0...v0.1.0-alpha.0) (2017-09-12)
+
+
+### Bug Fixes
+
+* **.eslintrc:** add jest env for eslint ([7ddfeab](https://github.com/Metnew/react-semantic.ui-starter/commit/7ddfeab))
+* **actions/auth:** fix tests, comment "untestable" stuff ([7c2905a](https://github.com/Metnew/react-semantic.ui-starter/commit/7c2905a))
+* **actions/layout:** fix layout's actions tests ([b0d2ede](https://github.com/Metnew/react-semantic.ui-starter/commit/b0d2ede))
+* **actions/layout:** fix tests ([6357142](https://github.com/Metnew/react-semantic.ui-starter/commit/6357142))
+* **actions/posts:** fix tests ([249f4e2](https://github.com/Metnew/react-semantic.ui-starter/commit/249f4e2))
+* **actions/users:** fix tests ([91aa905](https://github.com/Metnew/react-semantic.ui-starter/commit/91aa905))
+* **api.utils:** don't remove ok property in resultOK, remove old comments ([21409ec](https://github.com/Metnew/react-semantic.ui-starter/commit/21409ec))
+* **api/PostsSvc:** fix query string creation ([3798d75](https://github.com/Metnew/react-semantic.ui-starter/commit/3798d75))
+* **api/utils:** fix resultOK(), add flow, export wrapped request creators ([f219b2d](https://github.com/Metnew/react-semantic.ui-starter/commit/f219b2d))
+* **app/configure_app:** add flow, fix arg ([a8d2ded](https://github.com/Metnew/react-semantic.ui-starter/commit/a8d2ded))
+* **app/configure_root:** add flow, add fix for hmr for reducer ([234c817](https://github.com/Metnew/react-semantic.ui-starter/commit/234c817))
+* **client/index:** fix arg ([21174b6](https://github.com/Metnew/react-semantic.ui-starter/commit/21174b6))
+* **component:** fix exports (from /views to /parts) ([eaafde3](https://github.com/Metnew/react-semantic.ui-starter/commit/eaafde3))
+* **components:** remove export * from parts and addons folders ([a596e02](https://github.com/Metnew/react-semantic.ui-starter/commit/a596e02))
+* **components/parts:** fix flow applying for components ([e7699c0](https://github.com/Metnew/react-semantic.ui-starter/commit/e7699c0))
+* **containers:** use componentDidMount instead of componentWillMount ([d891cd3](https://github.com/Metnew/react-semantic.ui-starter/commit/d891cd3))
+* **DashboardCardComponent:** fix a11y issues ([1b512c5](https://github.com/Metnew/react-semantic.ui-starter/commit/1b512c5))
+* **Header:** remove (date: Date.now) from formattedMessage ([39a3358](https://github.com/Metnew/react-semantic.ui-starter/commit/39a3358))
+* **locals:** make locals minimalistic ([c726e00](https://github.com/Metnew/react-semantic.ui-starter/commit/c726e00))
+* **reducers/auth:** fix tests for auth reducer ([44a1965](https://github.com/Metnew/react-semantic.ui-starter/commit/44a1965))
+* **reducers/layout:** fix import path of APPLICATION_INIT ([7e8bf15](https://github.com/Metnew/react-semantic.ui-starter/commit/7e8bf15))
+* **reducers/layout:** fix tests for layout reducer ([81884a8](https://github.com/Metnew/react-semantic.ui-starter/commit/81884a8))
+* **reducers/layout:** fix tests for reducer ([a7aa430](https://github.com/Metnew/react-semantic.ui-starter/commit/a7aa430))
+* **reducers/posts:** fix tests for posts reducer ([9ab67f9](https://github.com/Metnew/react-semantic.ui-starter/commit/9ab67f9))
+* **reducers/users:** fix tests for users reducer ([64a3a51](https://github.com/Metnew/react-semantic.ui-starter/commit/64a3a51))
+* **routing:** add more types, use absolute imports for containers ([55b2699](https://github.com/Metnew/react-semantic.ui-starter/commit/55b2699))
+* **server:** remove `import keys`, we don't have https ([36e5e36](https://github.com/Metnew/react-semantic.ui-starter/commit/36e5e36))
+* **server/index:** add more flow types ([b6a1a59](https://github.com/Metnew/react-semantic.ui-starter/commit/b6a1a59))
+* **server/middlewares/auth:** set req.user's values to false instead of empty ([00cfbaf](https://github.com/Metnew/react-semantic.ui-starter/commit/00cfbaf))
+* **Sidebar:** add flow ([6c5fd30](https://github.com/Metnew/react-semantic.ui-starter/commit/6c5fd30))
+* **Sidebar:** create SidebarLogo based on Logo component ([d4c4b85](https://github.com/Metnew/react-semantic.ui-starter/commit/d4c4b85))
+* **ssr/IndexHTMLComponent:** return string instead of component ([af7aca6](https://github.com/Metnew/react-semantic.ui-starter/commit/af7aca6))
+* **UserItemComponent:** fix a11y issues ([be0bb13](https://github.com/Metnew/react-semantic.ui-starter/commit/be0bb13))
+* **webpack_config:** remove i18n from alias ([d0a1d5f](https://github.com/Metnew/react-semantic.ui-starter/commit/d0a1d5f))
+* **webpack_config/config:** make CLIENT_DIST_PATH non env ([8bd737b](https://github.com/Metnew/react-semantic.ui-starter/commit/8bd737b))
+* **webpack_config/server:** fix name of webpackGetCodeOnDone, ([b0394c1](https://github.com/Metnew/react-semantic.ui-starter/commit/b0394c1))
+* **webpack_config/server:** fix syntax error ([7bfe31a](https://github.com/Metnew/react-semantic.ui-starter/commit/7bfe31a))
+* **webpack.isomorphic:** eslint fixes, add const, selectors, types aliases ([c3b163a](https://github.com/Metnew/react-semantic.ui-starter/commit/c3b163a))
+* eslint fixes, small design fixes ([6089114](https://github.com/Metnew/react-semantic.ui-starter/commit/6089114))
+* eslint fixes, small design fixes ([7765814](https://github.com/Metnew/react-semantic.ui-starter/commit/7765814))
+* fix links to repo ([753848e](https://github.com/Metnew/react-semantic.ui-starter/commit/753848e))
+* fix RouteItem type import path ([850f3ca](https://github.com/Metnew/react-semantic.ui-starter/commit/850f3ca))
+* formatting, small fixes ([2f41c9b](https://github.com/Metnew/react-semantic.ui-starter/commit/2f41c9b))
+* remove "index.js"s which exports all content from folder ([d1b5009](https://github.com/Metnew/react-semantic.ui-starter/commit/d1b5009))
+* remove emotion from project ([99f4c95](https://github.com/Metnew/react-semantic.ui-starter/commit/99f4c95))
+
+
+### Features
+
+* **.babelrc:** add "flow" preset ([34334ba](https://github.com/Metnew/react-semantic.ui-starter/commit/34334ba))
+* **.babelrc:** add babel-plugin-webpack-alias in test and development ([fd0a898](https://github.com/Metnew/react-semantic.ui-starter/commit/fd0a898))
+* **.babelrc:** add styles and images alias in test env ([0937c73](https://github.com/Metnew/react-semantic.ui-starter/commit/0937c73))
+* **.babelrc:** remove plugin-webpack-alias from dev, add module-resolver for test ([30c0685](https://github.com/Metnew/react-semantic.ui-starter/commit/30c0685))
+* **.eslintrc:** add react-a11y plugin for eslint ([762fae9](https://github.com/Metnew/react-semantic.ui-starter/commit/762fae9))
+* **.eslintrc.json:** add flow plugin for eslnit ([cf421f4](https://github.com/Metnew/react-semantic.ui-starter/commit/cf421f4))
+* **actions:** rewrite actions with Flow and redux-thunk ([1b14cc3](https://github.com/Metnew/react-semantic.ui-starter/commit/1b14cc3))
+* **actions/auth:** add test to handle LOGIN_AUTH_FAIL, fix LOGIN_AUTH_SUCCESS test ([2185e6e](https://github.com/Metnew/react-semantic.ui-starter/commit/2185e6e))
+* **actions/posts:** add userId as param to GET_POSTS ([f9e6724](https://github.com/Metnew/react-semantic.ui-starter/commit/f9e6724))
+* **actions/utils:** add Awral prototype ([152a68f](https://github.com/Metnew/react-semantic.ui-starter/commit/152a68f))
+* **addons/RouteAuth:** add tests for RouteAuth ([cdb5d80](https://github.com/Metnew/react-semantic.ui-starter/commit/cdb5d80))
+* **api:** add flow for /api files ([ab09fe8](https://github.com/Metnew/react-semantic.ui-starter/commit/ab09fe8))
+* **client/prod:** remove favicons/preload/babili/sri/html plugins ([1f2815e](https://github.com/Metnew/react-semantic.ui-starter/commit/1f2815e))
+* **client/webpack.base:** use favicons and assets plugin in base mode ([952b6e6](https://github.com/Metnew/react-semantic.ui-starter/commit/952b6e6))
+* **component/addons:** add flow for components/addons ([350b1fa](https://github.com/Metnew/react-semantic.ui-starter/commit/350b1fa))
+* **components/RouteAuth:** use functional component, add flow types ([fe3204f](https://github.com/Metnew/react-semantic.ui-starter/commit/fe3204f))
+* **components/RoutingWrapper:** add flow types ([18871c3](https://github.com/Metnew/react-semantic.ui-starter/commit/18871c3))
+* **configure_root:** add i18n as props for Root ([04dfa0d](https://github.com/Metnew/react-semantic.ui-starter/commit/04dfa0d))
+* **const:** add /const folder which stores project's constants ([9afc58f](https://github.com/Metnew/react-semantic.ui-starter/commit/9afc58f))
+* **containers:** rewrite containers using thunked actions and flow ([a8e9543](https://github.com/Metnew/react-semantic.ui-starter/commit/a8e9543))
+* **containers/App:** rewrite with flow, fix export of component ([f282fa3](https://github.com/Metnew/react-semantic.ui-starter/commit/f282fa3))
+* **containers/components:** rewrite "dummy" components using flow ([51bdd5e](https://github.com/Metnew/react-semantic.ui-starter/commit/51bdd5e))
+* **containers/Users:** use componentDidMount, add flow types ([d4c7018](https://github.com/Metnew/react-semantic.ui-starter/commit/d4c7018))
+* **Footer:** add basic test ([1577664](https://github.com/Metnew/react-semantic.ui-starter/commit/1577664))
+* **Header:** add basic test ([9da0ee7](https://github.com/Metnew/react-semantic.ui-starter/commit/9da0ee7))
+* **Header:** add FormattedMessage ([61915c6](https://github.com/Metnew/react-semantic.ui-starter/commit/61915c6))
+* **indexHTMLComponent:** add i18n stuff ([456ebb7](https://github.com/Metnew/react-semantic.ui-starter/commit/456ebb7))
+* **jest:** add process.env.BROWSER=false ([28bb1f2](https://github.com/Metnew/react-semantic.ui-starter/commit/28bb1f2))
+* **jest:** use isomorphic-fetch instead of node-fetch ([cb44eed](https://github.com/Metnew/react-semantic.ui-starter/commit/cb44eed))
+* **jest_config:** add __mocks__ dir with mocks for styles/imgs ([0aad133](https://github.com/Metnew/react-semantic.ui-starter/commit/0aad133))
+* **jest_config:** add mocks and disable coverage of styles ([06e09bb](https://github.com/Metnew/react-semantic.ui-starter/commit/06e09bb))
+* **Login:** use navigator language as lang in auth request ([cf9eb74](https://github.com/Metnew/react-semantic.ui-starter/commit/cf9eb74))
+* **Logo:** create Logo element ([40246c1](https://github.com/Metnew/react-semantic.ui-starter/commit/40246c1))
+* **package.json:** fix desc, add/remove deps, fix start command ([0d25462](https://github.com/Metnew/react-semantic.ui-starter/commit/0d25462))
+* **package.json:** install new deps, remove unused ([19ed13f](https://github.com/Metnew/react-semantic.ui-starter/commit/19ed13f))
+* **package.json:** update deps, add new deps, remove old deps, update scripts ([4badb14](https://github.com/Metnew/react-semantic.ui-starter/commit/4badb14))
+* **package.json:** update deps, install react-intl, remove i18next ([d64b57b](https://github.com/Metnew/react-semantic.ui-starter/commit/d64b57b))
+* **package.json:** update scripts, deps, add new deps ([1eaea14](https://github.com/Metnew/react-semantic.ui-starter/commit/1eaea14))
+* **parts/Root:** add getWindowInnerWidth, RouteItem type ([a6971ad](https://github.com/Metnew/react-semantic.ui-starter/commit/a6971ad))
+* **parts/Root:** add IntlProvider ([bda6b45](https://github.com/Metnew/react-semantic.ui-starter/commit/bda6b45))
+* **reducers:** create GlobalState type ([208cd57](https://github.com/Metnew/react-semantic.ui-starter/commit/208cd57))
+* **reducers:** rewrite reducers using flow, fix object properties ([54a5b4c](https://github.com/Metnew/react-semantic.ui-starter/commit/54a5b4c))
+* **reducers/posts/test:** add test to handle location change to own path ([48d8221](https://github.com/Metnew/react-semantic.ui-starter/commit/48d8221))
+* **reducers/users/test:** add test to handle location change to other paths except /users ([dc8849b](https://github.com/Metnew/react-semantic.ui-starter/commit/dc8849b))
+* **routing:** add RouteItem type ([709e242](https://github.com/Metnew/react-semantic.ui-starter/commit/709e242))
+* **routing:** make all containers lazy, simplify code ([a1231ec](https://github.com/Metnew/react-semantic.ui-starter/commit/a1231ec))
+* **selectors:** create /selectors with selectors for states ([f9b4c5c](https://github.com/Metnew/react-semantic.ui-starter/commit/f9b4c5c))
+* **server:** add /config folder, add serverOptions for server (spdy options) ([4e72d73](https://github.com/Metnew/react-semantic.ui-starter/commit/4e72d73))
+* **server:** add default ssl, split development and prod server config ([78f3b14](https://github.com/Metnew/react-semantic.ui-starter/commit/78f3b14))
+* **server:** add server entry file ([039df01](https://github.com/Metnew/react-semantic.ui-starter/commit/039df01))
+* **server/api/auth:** get lang from req, add lang to jwt ([6cb9b16](https://github.com/Metnew/react-semantic.ui-starter/commit/6cb9b16))
+* **server/middlewares:** init app express middlewares using function and `this` context ([59c2a30](https://github.com/Metnew/react-semantic.ui-starter/commit/59c2a30))
+* **server/middlewares/auth:** add default language ([441a4ff](https://github.com/Metnew/react-semantic.ui-starter/commit/441a4ff))
+* **server/ssr:** add translation in SSR ([ff0370e](https://github.com/Metnew/react-semantic.ui-starter/commit/ff0370e))
+* **server/ssr:** rewrite ssr, add HTML component, use stats instead of hadrcoded html ([f4744c3](https://github.com/Metnew/react-semantic.ui-starter/commit/f4744c3))
+* **server/webpack.base:** add 'webpack-assets' and 'favicons-assets' to aliases ([4dd5fd4](https://github.com/Metnew/react-semantic.ui-starter/commit/4dd5fd4))
+* **Sidebar:** add basic test ([37e8071](https://github.com/Metnew/react-semantic.ui-starter/commit/37e8071))
+* **Sidebar:** use SidebarLogo based on Logo component ([2664663](https://github.com/Metnew/react-semantic.ui-starter/commit/2664663))
+* **src/client:** add react-a11y, fix export of main configuration scripts(configureRoot, configureA ([0277ac4](https://github.com/Metnew/react-semantic.ui-starter/commit/0277ac4))
+* **src/common/app:** configure store and root moves to own files in /app ([259eb43](https://github.com/Metnew/react-semantic.ui-starter/commit/259eb43))
+* **src/server:** add `server.js` which mounts middlewares, ssr, api ([54204cf](https://github.com/Metnew/react-semantic.ui-starter/commit/54204cf))
+* **src/server:** add flow types and some comments in server middlewares ([b4366a3](https://github.com/Metnew/react-semantic.ui-starter/commit/b4366a3))
+* **src/server:** rewrite SSR with flow types, use stats.json instead of index.html ([cbe8819](https://github.com/Metnew/react-semantic.ui-starter/commit/cbe8819))
+* **ssr:** add translation from server in SSR ([403ae4e](https://github.com/Metnew/react-semantic.ui-starter/commit/403ae4e))
+* **ssr:** add translations for ssr ([8a923d3](https://github.com/Metnew/react-semantic.ui-starter/commit/8a923d3))
+* working on locals for react-intl ([2492a20](https://github.com/Metnew/react-semantic.ui-starter/commit/2492a20))
+* **types:** create /types folder with core types ([83a9f2d](https://github.com/Metnew/react-semantic.ui-starter/commit/83a9f2d))
+* **utils/normalize:** add flow ([c195867](https://github.com/Metnew/react-semantic.ui-starter/commit/c195867))
+* **webpack_config/client:** add AutoDLLPlugin, compute hints/devtool/filename/isProduction ([fe9db2f](https://github.com/Metnew/react-semantic.ui-starter/commit/fe9db2f))
+* **webpack_config/client:** remove unused plugins, add WriteFilePlugin ([6832969](https://github.com/Metnew/react-semantic.ui-starter/commit/6832969))
+* **webpack_config/config:** add vendor and polyfills arrays for AutoDLLPlugin, style fixes ([3900d63](https://github.com/Metnew/react-semantic.ui-starter/commit/3900d63))
+* **webpack_config/config:** compute isProduction inside config.js ([6151dc9](https://github.com/Metnew/react-semantic.ui-starter/commit/6151dc9))
+* **webpack_config/server:** add experimental ssr in development ([0d4886e](https://github.com/Metnew/react-semantic.ui-starter/commit/0d4886e))
+* **webpack_config/server:** add locals dir to alias ([77a386e](https://github.com/Metnew/react-semantic.ui-starter/commit/77a386e))
+* **webpack_config/server:** add ssl alias ([054a80f](https://github.com/Metnew/react-semantic.ui-starter/commit/054a80f))
+* **webpack_config/server:** add webpackHotMiddleware ([13f5414](https://github.com/Metnew/react-semantic.ui-starter/commit/13f5414))
+* **webpack_config/server:** remove plugins from development config ([4e97a6d](https://github.com/Metnew/react-semantic.ui-starter/commit/4e97a6d))
+* **webpack.isomorphic:** add i18n folder to aliases ([4e3f6a1](https://github.com/Metnew/react-semantic.ui-starter/commit/4e3f6a1))
+* add emotion/babel plugin to .babelrc ([c48eb2a](https://github.com/Metnew/react-semantic.ui-starter/commit/c48eb2a))
+* add redux-persist ([8bc96ea](https://github.com/Metnew/react-semantic.ui-starter/commit/8bc96ea))
+* **xhr_wrapper:** rewrite xhr_wrapper, add more comments ([4d4388c](https://github.com/Metnew/react-semantic.ui-starter/commit/4d4388c))
+* add shapshots for Footer, Header, Sidebar ([5b9bd47](https://github.com/Metnew/react-semantic.ui-starter/commit/5b9bd47))
+* install emotion ([ae74670](https://github.com/Metnew/react-semantic.ui-starter/commit/ae74670))
+
+
+
+
+# [3.0.0](https://github.com/Metnew/react-semantic.ui-starter/compare/v1.0.1...v3.0.0) (2017-08-12)
+
+
+### Bug Fixes
+
+* **.babelrc:** move plugins from ssr.env to main plugins ([07d1896](https://github.com/Metnew/react-semantic.ui-starter/commit/07d1896))
+* **.babelrc:** remove unused babel plugin: transform-react-jsx-img-import ([033cc2a](https://github.com/Metnew/react-semantic.ui-starter/commit/033cc2a))
+* **.gitignore:** add yarn.lock to repo ([6d99cf9](https://github.com/Metnew/react-semantic.ui-starter/commit/6d99cf9))
+* **.travis:** run npm run server_dev instead of npm run test on travis build ([9cf0c8a](https://github.com/Metnew/react-semantic.ui-starter/commit/9cf0c8a))
+* **:** fix eslint errors ([fc54fea](https://github.com/Metnew/react-semantic.ui-starter/commit/fc54fea))
+* **actions/auth:** fix setLocalToken argument ([14c3dca](https://github.com/Metnew/react-semantic.ui-starter/commit/14c3dca))
+* **actions/auth:** fix setLocalToken argument ([4c41c6d](https://github.com/Metnew/react-semantic.ui-starter/commit/4c41c6d))
+* **api/AuthSvc:** export JWT_TOKEN ([047c760](https://github.com/Metnew/react-semantic.ui-starter/commit/047c760))
+* **common/index.ejs:** uncomment link to manifest.json ([78906e2](https://github.com/Metnew/react-semantic.ui-starter/commit/78906e2))
+* **containers/App:** fix Sidebar/Header/Footer imports ([65c9195](https://github.com/Metnew/react-semantic.ui-starter/commit/65c9195))
+* **i18n:** fix eslint issues ([2749ec4](https://github.com/Metnew/react-semantic.ui-starter/commit/2749ec4))
+* **jest_config/jest.config:** fix ^routing to "^routing$ ([a09d102](https://github.com/Metnew/react-semantic.ui-starter/commit/a09d102))
+* **package.json:** fix npm run serve_dist command, add APP_LANGUAGE param to this ([6049f8a](https://github.com/Metnew/react-semantic.ui-starter/commit/6049f8a))
+* **package.json:** fix npm start script ([8aa8c4c](https://github.com/Metnew/react-semantic.ui-starter/commit/8aa8c4c))
+* **package.json:** move lqip-loader to optional deps, finish merge ([a7a793b](https://github.com/Metnew/react-semantic.ui-starter/commit/a7a793b))
+* **routing:** use IS_SSR instead of BABEL_ENV in createHistory ([f41d258](https://github.com/Metnew/react-semantic.ui-starter/commit/f41d258))
+* **RoutingWrapper:** remove unused console.log ([2ac1030](https://github.com/Metnew/react-semantic.ui-starter/commit/2ac1030))
+* **src/client/index:** use isomorphic-fetch instead of whatwg-fetch, add es6-promise polyfill, configureRootComponent arg fix ([275d37f](https://github.com/Metnew/react-semantic.ui-starter/commit/275d37f))
+* **src/client/index:** use whatwg-fetch instead of isomorphic ([b602134](https://github.com/Metnew/react-semantic.ui-starter/commit/b602134))
+* **src/common/api/AuthSvc:** export JWT_TOKEN from file ([eec3ec2](https://github.com/Metnew/react-semantic.ui-starter/commit/eec3ec2))
+* **src/common/api/utils/xhr_wrapper.js:** fix import ([c27d246](https://github.com/Metnew/react-semantic.ui-starter/commit/c27d246))
+* **src/common/containers/App:** formatting, add GA and Raven lazy loading after component was mounted ([cdfaf58](https://github.com/Metnew/react-semantic.ui-starter/commit/cdfaf58))
+* **src/common/containers/App/style:** fix main scrollbar visibility ([0349f40](https://github.com/Metnew/react-semantic.ui-starter/commit/0349f40))
+* **src/common/index:** fix configuration of Root component in SSR ([c5a3dba](https://github.com/Metnew/react-semantic.ui-starter/commit/c5a3dba))
+* **src/common/index:** remove unnecessary comment ([ce10e04](https://github.com/Metnew/react-semantic.ui-starter/commit/ce10e04))
+* **src/common/index.ejs:** remove GA from index.html file ([c0f4533](https://github.com/Metnew/react-semantic.ui-starter/commit/c0f4533))
+* **src/common/reducers/layout:** computeMobileStatuses() - screen size for SSR is 1024px by default ([042e2c0](https://github.com/Metnew/react-semantic.ui-starter/commit/042e2c0))
+* **src/common/routing:** fix dynamic require according to webpack code-splitting docs ([d046a6b](https://github.com/Metnew/react-semantic.ui-starter/commit/d046a6b))
+* **src/common/RoutingWrapper:** remove unnecessary console.log ([47ccb05](https://github.com/Metnew/react-semantic.ui-starter/commit/47ccb05))
+* **src/common/styles/global:** comment styles that hides scrollbars on page ([481944e](https://github.com/Metnew/react-semantic.ui-starter/commit/481944e))
+* **src/Login:** fix typo ([2a9d7a1](https://github.com/Metnew/react-semantic.ui-starter/commit/2a9d7a1))
+* **src/server/api/auth:** fix eslint issues ([4cc4978](https://github.com/Metnew/react-semantic.ui-starter/commit/4cc4978))
+* **src/server/index:** use node-fetch instead of isomorphic ([39d6231](https://github.com/Metnew/react-semantic.ui-starter/commit/39d6231))
+* **src/server/server:** fix variable name ([3f948fb](https://github.com/Metnew/react-semantic.ui-starter/commit/3f948fb))
+* **webpac_config/client:** fix process.env ([3f93d75](https://github.com/Metnew/react-semantic.ui-starter/commit/3f93d75))
+* **webpack_config:** fix eslint issues (indent) ([fe61956](https://github.com/Metnew/react-semantic.ui-starter/commit/fe61956))
+* **webpack_config:** fix some typos in webpack_config ([0d7b8f0](https://github.com/Metnew/react-semantic.ui-starter/commit/0d7b8f0))
+* **webpack_config/client:** comment OfflinePlugin options ([5defd8d](https://github.com/Metnew/react-semantic.ui-starter/commit/5defd8d))
+* **webpack_config/client.webpack.prod:** remove safeToUseOptionalCaches from OfflinePlugin ([b99b987](https://github.com/Metnew/react-semantic.ui-starter/commit/b99b987))
+* **webpack_config/client/webpack_config.prod:** fix eslint issues ([7d19a58](https://github.com/Metnew/react-semantic.ui-starter/commit/7d19a58))
+* **webpack_config/client/webpack.prod.babel.js:** fix output path, add safeToUseOptionalCaches for OfflinePlugin ([68db4c4](https://github.com/Metnew/react-semantic.ui-starter/commit/68db4c4))
+* **webpack_config/client/webpack.prod.babel.js:** remove OfflinePlugin cache of root path ([27ff0da](https://github.com/Metnew/react-semantic.ui-starter/commit/27ff0da))
+* **webpack_config/config:** fix merge ([c014cd9](https://github.com/Metnew/react-semantic.ui-starter/commit/c014cd9))
+* **webpack_config/config:** fix path to icons that are generated by FaviconsWebpack ([c4359ff](https://github.com/Metnew/react-semantic.ui-starter/commit/c4359ff))
+* **webpack_config/server:** add BASE_API default fallback ([fc93613](https://github.com/Metnew/react-semantic.ui-starter/commit/fc93613))
+* dev version ([53718e3](https://github.com/Metnew/react-semantic.ui-starter/commit/53718e3))
+* fix commented OfflinePlugin ([adf2967](https://github.com/Metnew/react-semantic.ui-starter/commit/adf2967))
+* fix eslint error ([860dbf4](https://github.com/Metnew/react-semantic.ui-starter/commit/860dbf4))
+* fix eslint indent ([ac950a5](https://github.com/Metnew/react-semantic.ui-starter/commit/ac950a5))
+* fix eslint issue ([c5fce67](https://github.com/Metnew/react-semantic.ui-starter/commit/c5fce67))
+* fix eslint issues ([e43f7c1](https://github.com/Metnew/react-semantic.ui-starter/commit/e43f7c1))
+* fix eslint issues (indentation) ([c4cb097](https://github.com/Metnew/react-semantic.ui-starter/commit/c4cb097))
+* fix indentation ([2895b4e](https://github.com/Metnew/react-semantic.ui-starter/commit/2895b4e))
+* fix lint issues ([5ff7275](https://github.com/Metnew/react-semantic.ui-starter/commit/5ff7275))
+* fix state.me.auth "loggedIn" property to "isLoggedIn" ([e6932ac](https://github.com/Metnew/react-semantic.ui-starter/commit/e6932ac))
+* remove ads ([5c0acba](https://github.com/Metnew/react-semantic.ui-starter/commit/5c0acba))
+* small fixes ([f407a1e](https://github.com/Metnew/react-semantic.ui-starter/commit/f407a1e))
+* uncomment "require(common/pwa)" ([2db21bb](https://github.com/Metnew/react-semantic.ui-starter/commit/2db21bb))
+* **webpack_config/webpack.base.js:** fix default BASE_API path, fix ignore of i18n in development ([a9b83f8](https://github.com/Metnew/react-semantic.ui-starter/commit/a9b83f8))
+* **webpack_config/webpack.prod.js:** uncomment moduleconcatenation, fix some typos ([869a8e1](https://github.com/Metnew/react-semantic.ui-starter/commit/869a8e1))
+* **webpack.base:** fix i18n ignore ([39e4df2](https://github.com/Metnew/react-semantic.ui-starter/commit/39e4df2))
+* **webpack.prod.js:** comment moduleconcatenationplugin, small fixes ([7cfa1de](https://github.com/Metnew/react-semantic.ui-starter/commit/7cfa1de))
+
+
+### Features
+
+* **.babelrc:** add decorators support ([3b34ff8](https://github.com/Metnew/react-semantic.ui-starter/commit/3b34ff8))
+* **.babelrc:** remove babel-plugin-webpack-alias, remove dynamic-import node, use react-hot-loader only in development ([2c0b22b](https://github.com/Metnew/react-semantic.ui-starter/commit/2c0b22b))
+* **.eslintrc:** use tabs ([023c9e7](https://github.com/Metnew/react-semantic.ui-starter/commit/023c9e7))
+* **.eslintrc.json:** add Raven and ga to globals ([54b097b](https://github.com/Metnew/react-semantic.ui-starter/commit/54b097b))
+* **.gitignore:** add built server code to ignored files ([7090f2f](https://github.com/Metnew/react-semantic.ui-starter/commit/7090f2f))
+* **common/components/addons/RouteAuth:** add logging ([4f54e9e](https://github.com/Metnew/react-semantic.ui-starter/commit/4f54e9e))
+* **common/containers/App/index.jsx:** App gets routes from props ([970a3b7](https://github.com/Metnew/react-semantic.ui-starter/commit/970a3b7))
+* **jest_config/setupJest:** use isomorphic-fetch instead of node-fetch ([8dfaa54](https://github.com/Metnew/react-semantic.ui-starter/commit/8dfaa54))
+* **merge:** merge local dev branch into remote dev ([a524885](https://github.com/Metnew/react-semantic.ui-starter/commit/a524885))
+* **merge:** merge local dev branch into remote dev ([3d2a29b](https://github.com/Metnew/react-semantic.ui-starter/commit/3d2a29b))
+* **package.json:** add build_server script, remove BABEL_ENV, add IS_SSR, fix build script ([ef4243b](https://github.com/Metnew/react-semantic.ui-starter/commit/ef4243b))
+* **package.json:** add npm start command that is equal to npm run dev ([339f7ca](https://github.com/Metnew/react-semantic.ui-starter/commit/339f7ca))
+* **package.json:** add server_build/server_dev/frontend_dev/frontend_build/build/start scripts, update deps ([993ec63](https://github.com/Metnew/react-semantic.ui-starter/commit/993ec63))
+* **package.json:** add styles for "concurrently" in npm run dev ([d2a8a87](https://github.com/Metnew/react-semantic.ui-starter/commit/d2a8a87))
+* **server/express/index:** add auth middleware, add morgan ([c228820](https://github.com/Metnew/react-semantic.ui-starter/commit/c228820))
+* **src/client/index:** allow to run whyDidYouUpdate ([78a4b29](https://github.com/Metnew/react-semantic.ui-starter/commit/78a4b29))
+* **src/common:** require images with url-loader ([679cdf0](https://github.com/Metnew/react-semantic.ui-starter/commit/679cdf0))
+* **src/common/api/index.js:** export LocalStorageCookiesSvc from `api` ([2356ea0](https://github.com/Metnew/react-semantic.ui-starter/commit/2356ea0))
+* **src/common/components/addons:** add exports of LazyLoad and RoutingWrapper ([fae04b4](https://github.com/Metnew/react-semantic.ui-starter/commit/fae04b4))
+* **src/common/components/addons/LazyLoad:** implement LazyLoad addon component ([9503508](https://github.com/Metnew/react-semantic.ui-starter/commit/9503508))
+* **src/common/components/addons/RouteAuth:** remove handling on lazy loading from RouteAuth ([75e53ae](https://github.com/Metnew/react-semantic.ui-starter/commit/75e53ae))
+* **src/common/components/addons/RoutingWrapper:** Implement RoutingWrapper component that renders routes ([bf2921c](https://github.com/Metnew/react-semantic.ui-starter/commit/bf2921c))
+* **src/common/components/views/Root:** pass routes as prop to ([9c3c755](https://github.com/Metnew/react-semantic.ui-starter/commit/9c3c755))
+* **src/common/reducers/users/index.test:** add /* eslint-disable */ ([0a50cf0](https://github.com/Metnew/react-semantic.ui-starter/commit/0a50cf0))
+* **src/common/routing/index.jsx:** use /* webpackMode: "eager" for server-side code ([b7af6fb](https://github.com/Metnew/react-semantic.ui-starter/commit/b7af6fb))
+* **src/server:** formatting + add expiresIn for JWT ([d1fc014](https://github.com/Metnew/react-semantic.ui-starter/commit/d1fc014))
+* **src/server:** install bodyParser ([8ae6d8d](https://github.com/Metnew/react-semantic.ui-starter/commit/8ae6d8d))
+* **src/server:** remove env vars defaults, remove global.window patch, remove babel-core/register ([8a360a2](https://github.com/Metnew/react-semantic.ui-starter/commit/8a360a2))
+* **src/server/api/auth:** add auth route for server ([e860567](https://github.com/Metnew/react-semantic.ui-starter/commit/e860567))
+* **src/server/index:** use process env vars BASE_API and PORT for server ([2611c0e](https://github.com/Metnew/react-semantic.ui-starter/commit/2611c0e))
+* **src/server/server:** add chalk, fix SSR express's handling ([cbcb966](https://github.com/Metnew/react-semantic.ui-starter/commit/cbcb966))
+* **src/server/server:** server use env vars PORT and BASE_API ([1d50a6f](https://github.com/Metnew/react-semantic.ui-starter/commit/1d50a6f))
+* **src/server/ssr:** use auth middleware, some comments ([5b6bab0](https://github.com/Metnew/react-semantic.ui-starter/commit/5b6bab0))
+* **webpac_config/client/prod:** remove comments from css files ([a724beb](https://github.com/Metnew/react-semantic.ui-starter/commit/a724beb))
+* **webpack_config:** add SENTRY_PUBLIC_DSN and SENTRY_DSN to config ([fef60c3](https://github.com/Metnew/react-semantic.ui-starter/commit/fef60c3))
+* **webpack_config:** use naming module for client and server webpack_configs ([9a7784c](https://github.com/Metnew/react-semantic.ui-starter/commit/9a7784c))
+* **webpack_config/client:** add to index.html independent of FaviconsPlugin ([6822200](https://github.com/Metnew/react-semantic.ui-starter/commit/6822200))
+* **webpack_config/client:** uncomment moduleconcatenationplugin ([c7b80eb](https://github.com/Metnew/react-semantic.ui-starter/commit/c7b80eb))
+* **webpack_config/client:** use {analyzerMode: 'static'} for BundleAnalyzerPlugin ([f8df477](https://github.com/Metnew/react-semantic.ui-starter/commit/f8df477))
+* **webpack_config/client/webpack.base:** add GA_ID to env vars ([acca41d](https://github.com/Metnew/react-semantic.ui-starter/commit/acca41d))
+* **webpack_config/client/webpack.base.js:** add more style extension to resolve ([25eaced](https://github.com/Metnew/react-semantic.ui-starter/commit/25eaced))
+* **webpack_config/client/webpack.prod:** add optimized OfflinePlugin config ([1a1bd57](https://github.com/Metnew/react-semantic.ui-starter/commit/1a1bd57))
+* **webpack_config/client/webpack.prod:** clean only dist/client/ dir, not all dist/client ([8e42ddf](https://github.com/Metnew/react-semantic.ui-starter/commit/8e42ddf))
+* **webpack_config/server:** add http-proxy to proxy request to server ([a836862](https://github.com/Metnew/react-semantic.ui-starter/commit/a836862))
+* **webpack_config/server:** add NormalModuleReplacementPlugin to server ([904feec](https://github.com/Metnew/react-semantic.ui-starter/commit/904feec))
+* **webpack_config/server/webpack.base:** add code for lqip-loader, add url-loader, remove replacement plugin ([d7f71c2](https://github.com/Metnew/react-semantic.ui-starter/commit/d7f71c2))
+* **webpack_config/webpack.base.js:** use url-loader, add img-loader, remove copywebpackplugin, add aliases for static dirs ([fb5ccf5](https://github.com/Metnew/react-semantic.ui-starter/commit/fb5ccf5))
+* **webpack_config/webpack.isomorphic:** add circular dependency plugin ([fcab055](https://github.com/Metnew/react-semantic.ui-starter/commit/fcab055))
+* **webpack_config/webpack.isomorphic:** add commonly used rules/plugins to a separate file ([9f4372b](https://github.com/Metnew/react-semantic.ui-starter/commit/9f4372b))
+* **webpack.prod.js:** add webpack-sri, replace babili-webpack with uglifyjs, uncomment preloadWebpackPlugin, add ShakePlugin ([350b681](https://github.com/Metnew/react-semantic.ui-starter/commit/350b681))
diff --git a/LICENSE b/LICENSE
index 6a2601df..a7864682 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,21 +1,201 @@
-MIT License
-
-Copyright (c) 2017 Vladimir Metnev
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "{}"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright 2017 Vladimir Metnew
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/README.md b/README.md
index 46207c70..9fde9fc7 100644
--- a/README.md
+++ b/README.md
@@ -1,165 +1,202 @@
-# React-Semantic.UI-Starter
+# Suicrux :smiling_imp:
+
+Ultimate **universal** starter with **lazy-loading**, **SSR** and **i18n**.
+
+> [Previous release](https://github.com/Metnew/suicrux/tree/previous)
+
+
+[![Greenkeeper badge](https://badges.greenkeeper.io/Metnew/suicrux.svg)](https://greenkeeper.io/)
+[![Codacy Badge](https://api.codacy.com/project/badge/Grade/fd637f7c63e74da199cec17f3f0e3fd9)](https://www.codacy.com/app/Metnew/suicrux?utm_source=github.com&utm_medium=referral&utm_content=Metnew/suicrux&utm_campaign=badger)
+
+
+
+
- {routes}
-
-
- Logout
-
-
- )
- }
+const mapStateToProps = state => {
+ const {sidebarOpened} = getLayoutState(state)
+ return {
+ sidebarOpened
+ }
}
+
+const mapDispatchToProps = dispatch => ({})
+// re-update current active link in sidebar on location change
+export default withRouter(connect(mapStateToProps, mapDispatchToProps)(SidebarComponent))
diff --git a/src/common/components/Sidebar/style.jsx b/src/common/components/Sidebar/style.jsx
new file mode 100644
index 00000000..ba9ad3b3
--- /dev/null
+++ b/src/common/components/Sidebar/style.jsx
@@ -0,0 +1,20 @@
+import {Sidebar} from 'semantic-ui-react'
+import styled from 'styled-components'
+
+export const StyledSidebar = styled(Sidebar)`
+ z-index: 111 !important;
+ display: flex !important;
+ border: none !important;
+ position: fixed !important;
+
+ .logo-container {
+ background-color: ${props => props.theme.black};
+ box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
+ padding: 20px;
+ text-align: center;
+
+ img {
+ filter: invert(1);
+ }
+ }
+`
diff --git a/src/common/components/common/InputComponent.jsx b/src/common/components/common/InputComponent.jsx
deleted file mode 100644
index 4eb79122..00000000
--- a/src/common/components/common/InputComponent.jsx
+++ /dev/null
@@ -1,115 +0,0 @@
-import React, {Component} from 'react'
-import PropTypes from 'prop-types'
-import {Input, Form, Label} from 'semantic-ui-react'
-import {omit} from 'lodash'
-
-//
-export default class InputComponent extends Component {
- constructor (props) {
- super(props)
- this.state = {
- value: this.props.value
- }
- }
-
- static propTypes = {
- validate: PropTypes.func,
- connectToParent: PropTypes.func,
- value: PropTypes.any,
- error: PropTypes.string,
- labelText: PropTypes.string,
- label: PropTypes.string,
- placeholder: PropTypes.string,
- name: PropTypes.string,
- type: PropTypes.string,
- as: PropTypes.node,
- action: PropTypes.any
- }
-
- handleChange (event) {
- let state = {
- value: event.target.value
- }
- let {validate, name} = this.props
- if (validate) {
- state.error = validate(state.value, name) // if valid, then false!
- this.props.connectToParent({name, ...state})
- }
- this.setState(state)
- }
-
- // We have similar code in `handleChange()`
- componentWillMount () {
- let {validate, value, name} = this.props
- let error
- if (validate) {
- error = validate(value, name)
- }
-
- this.setState({...this.state, error, value})
- }
-
- componentWillReceiveProps () {
- // PROPS ERROR TO STATE ERROR
- let {error} = this.props
- if (error && error[0]) {
- this.setState({
- error: error || null
- })
- }
- }
-
- render () {
- // STATE ERROR
- const {error, value} = this.state
- const {as} = this.props
- // prop `as`
- const propsToOmit = ['validate', 'error', 'connectToParent', 'as']
-
- let propsForInput = {
- ...this.props,
- onChange: this.handleChange.bind(this),
- value
- }
-
- let RenderComponentAsProp
- let propAsElemExists = false
-
- if (as) {
- propAsElemExists = true
- RenderComponentAsProp = as
- }
-
- let propsForField
- if (error) {
- propsForField = {error: true}
- }
- propsForInput = omit(propsForInput, propsToOmit)
-
- // labelText(custom) - is a TEXT label
- // label - is a BUTTON label
- // check semantic-react docs
- let labelTextComponent = null
- if (propsForInput.labelText) {
- labelTextComponent =
- delete propsForInput.labelText
- }
-
- return (
- // in semantic if input is a part of form, we can make it error-visible
- // only throught the Form.Field error
- (
-
- {labelTextComponent}
-
- {propAsElemExists
- ?
- : }
-
- {/* display tooltip with error */}
- {error && }
-
- )
- )
- }
-}
diff --git a/src/common/components/index.js b/src/common/components/index.js
deleted file mode 100644
index a9dc1ec0..00000000
--- a/src/common/components/index.js
+++ /dev/null
@@ -1,5 +0,0 @@
-export SidebarComponent from './Sidebar'
-export Header from './Header'
-export Footer from './Footer'
-export Root from './Root'
-export RouteAuth from './RouteAuth'
diff --git a/src/common/config/base.js b/src/common/config/base.js
deleted file mode 100644
index 35127281..00000000
--- a/src/common/config/base.js
+++ /dev/null
@@ -1,3 +0,0 @@
-// Settings configured here will be merged into the final config object.
-export default {
-}
diff --git a/src/common/config/dev.js b/src/common/config/dev.js
deleted file mode 100644
index e394a9e2..00000000
--- a/src/common/config/dev.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import baseConfig from './base'
-
-let config = {
- BASE_API: 'http://localhost:4000/api/v1'
-}
-
-export default Object.freeze(Object.assign({}, baseConfig, config))
diff --git a/src/common/config/dist.js b/src/common/config/dist.js
deleted file mode 100644
index f86e761a..00000000
--- a/src/common/config/dist.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import baseConfig from './base'
-
-let config = {
- BASE_API: 'http://localhost:4000/api/v1' /// your base api for XHR
-}
-
-export default Object.freeze(Object.assign({}, baseConfig, config))
diff --git a/src/common/config/index.js b/src/common/config/index.js
deleted file mode 100644
index 39d551fe..00000000
--- a/src/common/config/index.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default {
- BASE_API: 'http://localhost:4000/api/v1'
-}
diff --git a/src/common/config/test.js b/src/common/config/test.js
deleted file mode 100644
index 30002684..00000000
--- a/src/common/config/test.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import baseConfig from './base'
-
-let config = {
- appEnv: 'test' // don't remove the appEnv property here
-}
-
-export default Object.freeze(Object.assign(baseConfig, config))
diff --git a/src/common/containers/App/App.scss b/src/common/containers/App/App.scss
index 816621ab..0761916f 100644
--- a/src/common/containers/App/App.scss
+++ b/src/common/containers/App/App.scss
@@ -1,63 +1,5 @@
-@import '~scss_vars';
-// Application's layout
-#app {
- color: #333;
- background-color: #f7f7f7;
- width: 100%;
- height: 100%;
-
- .page-layout {
- height: 100%;
- // patch Semantic-UI .pusher
- .pusher {
- height: 100%;
- overflow: scroll;
- }
-
- .pushable > .dimmer {
- cursor: pointer;
- }
-
- main {
- display: flex;
- flex-direction: column;
- min-height: 100%;
- }
-
- // limit max-width of the .pusher class -> main is limited too
- .ui.visible.thin.left.sidebar ~ .pusher {
- @include respond-to('lg') {
- max-width: calc(100% - #{$sidebar-size})
- }
- @include respond-to('only-sm', 'only-md', 'xs'){
- overflow: hidden;
- }
- }
-
- .main-content {
- display: flex;
- flex-grow: 1;
- padding-top: 100px;
- padding-left: 1rem;
- padding-right: 1rem;
-
- .ui.container {
-
- @include respond-to('xs') {
- // margin - just to fill exmpty space
- margin: 0 auto!important;
- }
-
- @include respond-to('sm', 'xs') {
- width: 100%!important;
- }
-
- .grid {
- position: relative;
- min-width: 100%;
- min-height: 100%;
- }
- }
- }
- }
+// Scss is written as a case study and a proof of CSS support
+#page-dimmer {
+ z-index: 55 !important;
+ cursor: pointer;
}
diff --git a/src/common/containers/App/index.jsx b/src/common/containers/App/index.jsx
index 5d9b2459..e1c2efb4 100644
--- a/src/common/containers/App/index.jsx
+++ b/src/common/containers/App/index.jsx
@@ -1,197 +1,126 @@
+/**
+ * @flow
+ */
import React, {Component} from 'react'
import {connect} from 'react-redux'
-import {withRouter, matchPath} from 'react-router'
-// import {Helmet} from 'react-helmet'
-// Accessing PropTypes via the main React package is deprecated.
-// Use the prop-types package from npm instead.
-import PropTypes from 'prop-types'
-import {push} from 'react-router-redux'
-import {Dimmer, Sidebar, Container} from 'semantic-ui-react'
-import {Header, SidebarComponent, Footer} from 'components'
-import {CLOSE_SIDEBAR, OPEN_SIDEBAR, WINDOW_RESIZE} from 'actions/layout'
-import {LOGOUT_AUTH} from 'actions/auth'
-import {appRouting} from 'routing'
+import {withRouter} from 'react-router'
+// Import main views
+import Sidebar from 'components/Sidebar'
+import Footer from 'components/Footer'
+import Header from 'components/Header'
+// Import actions
+import {TOGGLE_SIDEBAR, WINDOW_RESIZE} from 'actions/layout'
+import {getLayoutState, getLayoutMobileStatuses} from 'selectors'
+import ReactGA from 'react-ga'
+// Import styled components
+import {PageLayout, SidebarSemanticPusherStyled, SidebarSemanticPushable} from './style'
+import {Container, Dimmer} from 'semantic-ui-react'
+import _ from 'lodash'
+// Scss is written as a case study and a proof of CSS support
import './App.scss'
-class App extends Component {
- static propTypes = {
- children: PropTypes.node.isRequired,
- // react-router `withRouter` props
- location: PropTypes.object,
- history: PropTypes.object,
-
- // sidebarOpened can force component to re-render
- sidebarOpened: PropTypes.bool,
- closeSidebar: PropTypes.func,
- // isLoggedIn can force component to re-render
- isLoggedIn: PropTypes.bool,
- handleWindowResize: PropTypes.func,
- logout: PropTypes.func,
- checkAuthLogic: PropTypes.func,
- toggleSidebar: PropTypes.func,
- // isMobile can force component to re-render
- isMobile: PropTypes.bool
- }
-
- // XXX: must be fixed.
- // shouldComponentUpdate(nextProps) {
- // let {match, isMobile, isLoggedIn, sidebarOpened} = this.props
- // let matchSame = _.isEqual(nextProps.match, match)
- // let isMobileSame = _.isEqual(nextProps.isMobile, isMobile)
- // let isLoggedInSame = _.isEqual(nextProps.isLoggedIn, isLoggedIn)
- // let sidebarOpenedSame = _.isEqual(nextProps.sidebarOpened, sidebarOpened)
- // // return props that can force us aren't the same
- // return !(matchSame && isMobileSame && isLoggedInSame && sidebarOpenedSame)
- // }
-
- componentWillMount () {
- let {handleWindowResize, isLoggedIn} = this.props
- if (process.env.BROWSER) {
- window.addEventListener('resize', handleWindowResize)
- }
- this.checkAppAuthLogic(isLoggedIn)
- }
-
- /**
- * Check that user is allowed to visit route
- * @param {Bool} loggedIn state.auth.loggedIn, current prop
- * @return {Null} Nothing
- */
- checkAppAuthLogic (loggedIn) {
- const {location, checkAuthLogic} = this.props
- const path = location.pathname
- checkAuthLogic(path, loggedIn)
- }
-
- componentWillReceiveProps (nextProps) {
- this.checkAppAuthLogic(nextProps.isLoggedIn)
- }
-
- getSidebarRouting () {
- // routing for sidebar menu
- const sidebarRouting = appRouting.filter(a => a.sidebarVisible).map(a => {
- const {path, name, icon, external, strict, exact} = a
- const b = {path, name, icon, external, strict, exact}
- return b
- })
- return sidebarRouting
- }
-
- /**
- * returns title for header
- * @param {String} pathname - location.pathname
- * @return {String} page title
- */
- getPageTitle (pathname) {
- const matchedRoutes = appRouting.filter(a => matchPath(pathname, a))
- const currentRoute = matchedRoutes[0] || {}
- const title = currentRoute.name || '404'
- return title
- }
-
- render () {
- const {
- children,
- sidebarOpened,
- closeSidebar,
- isLoggedIn,
- logout,
- toggleSidebar,
- location,
- isMobile
- } = this.props
-
- // routing for sidebar menu
- const sidebarRouting = this.getSidebarRouting()
- const title = this.getPageTitle(location.pathname)
-
- const sidebarProps = {
- isMobile,
- logout,
- open: sidebarOpened,
- routing: sidebarRouting
- }
-
- const headerProps = {
- toggleSidebar,
- title,
- isLoggedIn
- }
-
- const dimmerProps = {
- active: true,
- onClick: closeSidebar
- }
-
- return (
-
-
- {isLoggedIn && }
-
- {/* Semantic ui currently(16.04.16) doesn't have closeDimmerOnClick or smth else
- So, instead of it, we can use simple component */}
- {/* */}
-
-
-