All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Use staging API for Heroku review apps (#138)
- Rename Heroku production app in README.md (#139)
- Rename API service in Docker Compose file (#141)
0.21.0 - 2019-07-21
- Fix wrong button caption when artist creation dialog is closed. (#123)
- Replace obsolete
@babel/polyfill
import. (#124) - Fix broken peer dependency of
eslint-config-airbnb
. (#125)
- Add test for
Spinner
component. (#126) - Add dependencies:
- core-js 3.1.4
- regenerator-runtime 0.13.3
- Add dev dependencies:
- @testing-library/jest-dom
- Increase width of artist dialogs. (#120)
- Submit artist dialog when Enter key is pressed. (#127)
- Use icon button to close artist dialog. (#129)
- Downgrade dev dependencies:
- eslint 5.3.0
- eslint-plugin-flowtype 3.9.1
- Upgrade dev dependencies (#122)
- css-loader 3.1.0
- eslint-plugin-import 2.18.2
- flow-bin 0.103.0
- Do not display message when artists are created, updated, or deleted. (#128)
- Remove dependencies:
- @babel/polyfill
0.20.0 - 2019-07-19
- Do not invoke
webpack-dev-server
in production mode. - Fix invalid generated URLs in webpack output.
- Refactor layout components (#115):
- Move Paper from SignUp to SignUpLayout.
- Move Header out of main in SignUpLayout.
- Eliminate Header component in layouts.
- Refactor artist components (#111):
- Incorporate FetchingArtistList in ArtistList.
- Move Artist button to separate component.
- Decouple ArtistList and ArtistDialog.
- Decouple ArtistList and ArtistButton.
- Refactor Redux:
- Fix invalid state after user creation (unused).
- Simplify state tree.
- Add parameter types for reducers.
- Remove obsolete field in message State type.
- Refactor webpack configuration.
- Clean up package.json.
- Upgrade dependencies:
- @material-ui/core 4.2.1
- @material-ui/styles 4.2.1
- typeface-roboto 0.0.75
- Upgrade dev dependencies:
- @babel/cli 7.5.5
- @babel/core 7.5.5
- @babel/node 7.5.5
- @babel/plugin-proposal-class-properties 7.5.5
- @babel/plugin-proposal-object-rest-spread 7.5.5
- @babel/preset-env 7.5.5
- eslint-plugin-compat 3.3.0
- flow-typed 2.6.0
- webpack 4.36.1
- webpack-cli 3.3.6
- Remove textual loading indicator from Artists page.
0.19.2 - 2019-07-13
- Fix crash on sign in page due to an undefined prop in
SignIn
component.
0.19.1 - 2019-07-13
- Complete test coverage.
- Refactor some reducer tests.
0.19.0 - 2019-07-13
- Add directory
components/app
for top-level components. - Add directory
components/pages
for page components. - Add directory
components/layouts
for layout components and their constituents. - Add directory
components/hooks
for React hooks. - Add directory
components/FEATURE
for each feature:artist
user
- Add directory
components/utils
for helper components. - Add components:
ArtistPage
SignInLayout
SignUpLayout
SignUpPage
SignInPage
WelcomePage
Routes
- Organize components in subdirectories (see above).
- Collocate container and component in the same module.
- Pure components are exported by name.
- Connected components are the default export.
- Collocate tests with subjects using
*.spec.js
suffix. - Disable eslint rule import/no-named-as-default in component files.
- Rename components:
server/ServerRoot
→components/app/Server
client/ClientRoot
→components/app/Client
Index
→pages/FrontPage
- Move modules:
client/index
→client
- Move directories:
test
→utils/test
hooks
→components/hooks
- Remove subdirectory
containers
and its modules. - Remove
__tests__
subdirectories.
0.18.0 - 2019-07-13
- Add
redux
directory. - Add types (in
redux/types
):Store
StoreCreator
Dispatch
- Add function
createStore
(inredux/store
). - Add module
api/types
. - Add dependencies:
- reselect 4.0.0
- Organize Redux modules by feature, under
redux
:artist
dialog
message
navigation
noop
token
user
- Organize each feature subdirectory by type:
actions
constants
operations
reducers
selectors
types
- Organize top-level modules in
redux
:reducers
selectors
types
store
(subdirectory)
- Rename selectors:
getDialogArtist
→dialogArtist
getDialogType
→dialogType
getMessage
→message
getToken
→token
getUser
→user
isFetchingArtists
→artistsPending
isNavigationOpen
→navigationOpen
- Rename reducers:
artist.isFetching
→artist.pending
dialog.open
→dialog.type
- Rename props:
isLoading
→pending
, inArtistList
onClose
→closeNavigation
, inNavigation
onMenuClick
→openNavigation
, inMenuButton
onSubmit
→createUser
, inSignUp
onSubmit
→fetchToken
, inSignIn
- Rename types:
api.FetchError
→api.Error
foo.FooAction
→foo.Action
.
- Normalize action payloads, introducing a
payload
attribute. - Minor changes:
- Use
createSelector
for selectors. - Use
createStructuredSelector
for containers. - Use
State
in reducer types, instead of genericObject
. - Use arrow functions for reducers.
- Rename private selectors to omit prefixes.
- Move event handler
onClose
to component inMessage
- Use
- Remove constant
initialState
from reducer modules. - Remove selectors:
getArtistsError
getTokenError
getUserError
isCreateDialogOpen
isCreatingUser
isFetchingToken
isMessageOpen
isUpdateDialogOpen
- Remove reducers:
artist.error
message.open
user.error
user.isCreating
- Remove props:
open
inMessage
- Fix missing user actions in
Action
type.
0.17.1 - 2019-07-13
- Bump lodash from 4.17.11 to 4.17.14
- Update dependencies:
- @material-ui/core 4.2.0
- @material-ui/styles 4.2.0
- redux 4.0.4
- universal-cookie 4.0.2
- Update dev dependencies:
- @babel/core 7.5.4
- @babel/plugin-proposal-object-rest-spread 7.5.4
- @babel/preset-env 7.5.4
- @testing-library/react 8.0.5
- coveralls 3.0.5
- webpack 4.35.3
0.17.0 - 2019-07-05
- Refactor artist dialog.
0.16.0 - 2019-07-05
- Refactor tests:
- Use render helper functions.
- Use route constants.
0.15.1 - 2019-07-05
- [SignIn] Fix style of sign up link.
- [eslint] Fix invalid overrides property.
- Update dependencies:
- @material-ui/core 4.1.2
- @material-ui/icons 4.2.1
- @material-ui/styles 4.1.2
- universal-cookie 4.0.1
- universal-cookie-express 4.0.1
- Update dev dependencies:
- @babel/cli 7.5.0
- @babel/core 7.5.0
- @babel/node 7.5.0
- @babel/plugin-proposal-class-properties 7.5.0
- @babel/plugin-proposal-object-rest-spread 7.5.0
- @babel/preset-env 7.5.0
- @testing-library/react 8.0.4
- eslint 6.0.1
- eslint-config-airbnb 17.1.1
- eslint-config-prettier 6.0.0
- eslint-plugin-compat 3.2.0
- eslint-plugin-flowtype 3.11.1
- eslint-plugin-import 2.18.0
- eslint-plugin-jsx-a11y 6.2.3
- eslint-plugin-react 7.14.2
- eslint-plugin-react-hooks 1.6.1
- flow-bin 0.102.0
- webpack 4.35.2
- webpack-cli 3.3.5
- webpack-dev-server 3.7.2
0.15.0 - 2019-06-20
- Fix stale name field in create artist dialog.
- Add dependencies:
- @material-ui/styles 4.1.1
- Update dependencies:
- @material-ui/core 4.1.1
- @material-ui/icons 4.2.0
- Remove dependencies:
- jss
- react-jss
0.14.0 - 2019-06-18
- Normalize state shape.
- Use testing-library instead of enzyme.
- Refactor utils.
- Update dependencies:
- react-redux 7.1.0
- Update dev dependencies:
- babel-eslint 10.0.2
- coveralls 3.0.4
- css-loader 3.0.0
- eslint-config-prettier 5.0.0
- eslint-plugin-compat 3.1.2
- eslint-plugin-flowtype 3.10.3
- flow-bin 0.102.0-rc
- prettier 1.18.2
- webpack 4.34.0
- webpack-cli 3.3.4
- webpack-dev-server 3.7.1
- Remove dev dependencies:
- enzyme
- enzyme-adapter-react-16
- enzyme-to-json
- jest-environment-enzyme
- jest-enzyme
0.13.1 - 2019-06-05
- Update dependencies:
- handlebars 4.1.2 (security advisory)
- Update dev dependencies:
- webpack-dev-server 3.6.0
0.13.0 - 2019-06-05
- Add button to edit artists.
- Add dev dependency:
- @testing-library/react 8.0.1
- Update dependencies:
- axios 0.19.0
- express 4.17.1
- react-router-dom 5.0.1
- Update dev dependencies:
- @babel/core 7.4.5
- @babel/node 7.4.5
- @babel/preset-env 7.4.5
- enzyme 3.10.0
- enzyme-adapter-react-16 1.14.0
- eslint-plugin-flowtype 3.9.1
- eslint-plugin-import 2.17.3
- flow-bin 0.100.0
- nodemon 1.19.1
- webpack 4.33.0
- webpack-dev-server 3.5.1
- Remove dev dependency:
- react-testing-library (renamed to @testing-library/react)
0.12.0 - 2019-05-17
- Add button to remove artists.
- Fix missing --env option for webpack-dev-server.
- Update dependencies:
- express 4.17.0
- Update dev dependencies:
- flow-typed 2.5.2
- eslint-plugin-flowtype 3.9.0
- eslint-config-prettier 4.3.0
0.11.0 - 2019-05-13
- Add dialog for creating artists.
- Remove placeholder message in artist list.
- Update dev dependencies:
- babel-loader 8.0.6
- enzyme-adapter-react-16 1.13.0
- eslint-plugin-flowtype 3.8.2
- eslint-plugin-prettier 3.1.0
- prettier 1.17.1
- webpack 4.31.0
0.10.0 - 2019-05-08
- Add Dockerfile.
- Add Docker Compose file.
- Add
INTERNAL_API_URL
setting.
- Use server environment for API_URL.
- Do not use dotenv for webpack configuration.
- Refactor webpack configuration.
- Separate server-only constants.
0.9.2 - 2019-05-08
- Update dependencies:
- @babel/polyfill 7.4.4
- dotenv 8.0.0
- react-redux 7.0.3
- universal-cookie 4.0.0
- universal-cookie-express 4.0.0
- Update dev dependencies:
- @babel/cli 7.4.4
- @babel/core 7.4.4
- @babel/plugin-proposal-class-properties 7.4.4
- @babel/plugin-proposal-object-rest-spread 7.4.4
- @babel/preset-env 7.4.4
- babel-jest 24.8.0
- eslint-config-prettier 4.2.0
- eslint-plugin-flowtype 3.8.1
- eslint-plugin-react 7.13.0
- flow-bin 0.98.1
- jest 24.8.0
- nodemon 1.19.0
- react-testing-library 7.0.0
- webpack-cli 3.3.2
0.9.1 - 2019-04-18
- Update dependencies:
- @babel/cli 7.4.3
- @babel/core 7.4.3
- @babel/plugin-proposal-class-properties 7.4.0
- @babel/plugin-proposal-object-rest-spread 7.4.3
- @babel/polyfill 7.4.3
- @babel/preset-env 7.4.3
- @material-ui/core 3.9.3
- compression 1.7.4
- dotenv 7.0.0
- history 4.9.0
- react 16.8.6
- react-dom 16.8.6
- react-redux 7.0.2
- react-router-dom 5.0.0
- universal-cookie 3.1.0
- universal-cookie-express 3.1.0
- Update dev dependencies:
- babel-jest 24.7.1
- enzyme-adapter-react-16 1.12.1
- eslint 5.16.0
- eslint-plugin-compat 3.1.1
- eslint-plugin-flowtype 3.6.1
- eslint-plugin-import 2.17.2
- eslint-plugin-react-hooks 1.6.0
- flow-bin 0.97.0
- jest 24.7.1
- nodemon 1.18.11
- prettier 1.17.0
- react-test-renderer 16.8.6
- react-testing-library 6.1.2
- supertest 4.0.2
- webpack 4.30.0
- webpack-cli 3.3.0
- webpack-dev-server 3.3.1
0.9.0 - 2019-03-10
- Add button for sign up.
- UI cleanup.
- Update dependencies:
- react 16.8.4
- react-dom 16.8.4
- react-test-renderer 16.8.4
- Update dev dependencies:
- babel-jest 24.3.1
- css-loader 2.1.1
- eslint 5.15.1
- eslint-plugin-react-hooks 1.5.0
- jest 24.3.1
- jest-environment-enzyme 7.0.2
- jest-enzyme 7.0.2
0.8.1 - 2019-03-04
- Update dev dependencies:
- @babel/core 7.3.4
- @babel/preset-env 7.3.4
- @babel/plugin-proposal-class-properties 7.3.4
- @babel/plugin-proposal-object-rest-spread 7.3.4
- enzyme-adapter-react-16 1.10.0
- eslint 5.15.0
- eslint-config-prettier 4.1.0
- eslint-plugin-react-hooks 1.4.0
- webpack 4.29.6
- webpack-dev-server 3.2.1
0.8.0 - 2019-02-25
- Fix redirect from /login to referrer.
- Add button for sign out.
- Add dev dependencies:
- yarn-run-all 3.1.1
- On authorization failure, redirect to /login and remove cookie.
- Remove app bar from /login page.
- Refactor:
- Rework package script API.
- Rename actions/fetchToken to actions/token.
- Rename actions/fetchArtists to actions/artist.
- Rename api/user to api/token.
- Add api/error.
- Update dev dependencies:
- react-testing-library 6.0.0
0.7.2 - 2019-02-23
- Use React Hooks.
- Use react-testing-library.
- Add dev dependencies:
- eslint-plugin-react-hooks 1.2.0
- history 4.7.2
- react-testing-library 5.9.0
0.7.1 - 2019-02-22
- Add typings for Redux.
- Update dependencies:
- react 16.8.3
- react-dom 16.8.3
- react-test-renderer 16.8.3
- react-redux 6.0.1
- Update dev dependencies:
- coveralls 3.0.3
- webpack-dev-server 3.2.0
0.7.0 - 2019-02-19
- Use Redux state management library.
- Add dependencies:
- react-redux 6.0.0
- redux 4.0.1
- redux-logger 3.0.6
- redux-thunk 2.3.0
- universal-cookie 3.0.7
- Add dev dependencies:
- @babel/plugin-proposal-object-rest-spread 7.3.2
- redux-mock-store 1.5.3
- Split into pure components and stateful containers.
- Split
FetchingArtistList
offArtistList
. - Replace
withAuth
byPrivateRoute
. - Wrap
ArtistList
inPaper
. - Move
Message
intoApp
. - Use Redux enhancer to persist token to cookie.
- Refactor:
- Use default exports.
- Add
ServerRoot
andClientRoot
components. - Add
RemoveElement
component. - Add
theme
module. - Add various sub-modules to
server
. - Various typing improvements.
- Rename
services
toapi
. - Remove
Base
suffix from components. - Use
Pure
prefix for exported components.
- Upgrade dependencies:
- react 16.8.2
- react-dom 16.8.2
- Upgrade dev dependencies:
- @babel/core 7.3.3
- @babel/plugin-proposal-class-properties 7.3.3
- enzyme 3.9.0
- eslint 5.14.1
- eslint-plugin-flowtype 3.4.2
- flow-bin 0.93.0
- react-test-renderer 16.8.2
- webpack 4.29.5
- Drop
react-cookie
foruniversal-cookie
. - Remove
withAuth
higher-order component.
0.6.1 - 2019-02-10
- Fix missing stylesheet in server-side rendered page.
0.6.0 - 2019-02-09
- Use Material-UI React UI framework.
- Upgrade dev dependencies:
- nodemon 1.18.10
0.5.3 - 2019-02-08
- Fix ReferenceError
localStorage is not defined
when reloading /artists.
- Upgrade dependencies:
- react 16.8.1
- react-dom 16.8.1
- react-test-renderer 16.8.1
- Upgrade dev dependencies:
- babel-jest 24.1.0
- enzyme-adapter-react-16 1.9.1
- eslint 5.13.0
- eslint-plugin-compat 2.7.0
- eslint-plugin-import 2.16.0
- eslint-plugin-jsx-a11y 6.2.1
- flow-bin 0.92.1
- jest 24.1.0
- prettier 1.16.4
- webpack 4.29.3
- webpack-cli 3.2.3
0.5.2 - 2019-01-30
- Prevent
LoginForm
from performing GET request on submit.
0.5.1 - 2019-01-29
- Fix ReferenceError
regeneratorRuntime is not defined
.
0.5.0 - 2019-01-29
- Add server-side rendering.
- Use async and await.
- Upgrade dev dependencies:
- @babel/plugin-proposal-class-properties 7.3.0
- @babel/preset-env 7.3.1
- babel-jest 24.0.0
- dotenv-webpack 1.7.0
- enzyme-adapter-react-16 1.8.0
- eslint 5.12.1
- eslint-config-prettier 4.0.0
- eslint-plugin-import 2.15.0
- eslint-plugin-jsx-a11y 6.2.0
- eslint-plugin-react 7.12.4
- flow-bin 0.91.0
- jest 24.0.0
- prettier 1.16.1
- supertest 3.4.2
- webpack 4.29.0
0.4.0 - 2019-01-15
- Add login page.
- Add user service.
- Add client-side routing.
- Add yarn script to update Jest snapshots.
- Use React Router.
- Support class properties.
- Use .js extension for JSX.
- Upgrade dev dependencies:
- flow-bin 0.90.0
- eslint-config-prettier 3.4.0
- Remove
API_USER
andAPI_PASSWORD
settings.
- Fix message when no artists are found.
- Do not compile test modules.
0.3.0 - 2019-01-12
- Use React framework.
- Use Enzyme testing utility.
- Use Prettier code formatter.
- Use axios HTTP client library.
- Upgrade dev dependencies:
- babel-loader 8.0.5
- eslint 5.12.0
- eslint-plugin-flowtype 3.2.1
- webpack 4.28.4
- webpack-cli 3.2.1
- Do not use Fetch API.
- Fix deprecation warnings on Travis CI due to outdated yarn.
0.2.0 - 2019-01-02
- Client retrieves list of artists and displays it.
- Use nodemon app runner.
- Use webpack module bundler.
- Load env files using dotenv and dotenv-webpack.
- Enable polyfills in client code.
- Enable browser environment for eslint.
- Typecheck tests.
- Add libdefs from flow-typed.
- Drop "maintained node versions" from browserslist.