13 Commits

Author SHA1 Message Date
871018684b Extract store creation 2019-05-09 15:34:08 +12:00
279b859e7b Add TODO for SSR SEO 2019-05-08 11:44:45 +12:00
70c94c7c63 Add WaitMiddleware.ts 2019-05-08 09:57:33 +12:00
a81a68b6e2 Log actions in collapsed groups by default 2019-04-03 23:51:22 +08:00
3d85bb2106 Use console.group in ReduxLogger, enable via localStorage 2019-04-03 23:45:19 +08:00
1d582740a8 Add logging of statediff 2019-04-03 23:34:59 +08:00
580fb368e6 Simplify types for CRUDActions & CRUDReducer 2019-04-02 11:44:34 +08:00
8b6f90235e Use default action type and add status to async actions
Since TypeScript can infer types based on string types, it has became
easier to define a single constant of an action that returns a promise,
and then dispatch actions with different statuses: pending, resolved,
and/or rejected. This seems like more typing at first, but in the long
run it will become easier to write generic reducer methods, and the
names of reduced types will not have to be repeated every time.

For example, previously we had to write:

    type MyActionTypes =
      IAsyncAction<IUser, 'LOGIN_PENDING', 'LOGIN_RESOLVED', 'LOGIN_REJECTED'>
      | ...

And now we can write:

    type MyActionTypes =
      IAsyncAction<IUser, 'LOGIN'>
      | ...
2019-04-01 15:20:42 +08:00
8f8c3b6c9c Refactor action definitions to type less 2019-03-22 13:26:58 +08:00
6ee5077c88 Add documentation 2019-01-20 22:47:15 +01:00
bdf0aa57be Add TestUtils and a generic way to isolate connected components 2019-01-20 18:11:18 +01:00
26f106fcae Create LoginForm 2019-01-19 19:21:56 +01:00
c1d21350a8 Add PromiseMiddleware 2019-01-19 17:30:15 +01:00