115 Commits

Author SHA1 Message Date
a20ac8cbbc Add HTTPClientMock.mockAddTyped 2019-06-04 15:11:54 +10:00
45f0cb76d3 Fix return type of withJSX (used to be any) 2019-06-04 14:58:41 +10:00
4b601f93cb Fix linting error 2019-05-21 22:44:22 +12:00
3017a17b9c Export test-utils 2019-05-21 22:44:01 +12:00
a52f0186b3 Remove console.log statements 2019-05-21 18:56:28 +12:00
e63b2b1c03 WIP: Use react-ssr-prepass to fetchData
TODO: State does not update correctly. Need to figure out why.
2019-05-19 20:14:35 +12:00
f59b58f833 Fix invalid csrf token 2019-05-19 17:55:40 +12:00
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
798c4987f8 Extract http into separate parameter 2019-05-08 10:54:05 +12:00
c44d605890 Fix failing React tests for Login/Register 2019-05-08 10:12:53 +12:00
70c94c7c63 Add WaitMiddleware.ts 2019-05-08 09:57:33 +12:00
18fef76807 Add ability to login from embedded site 2019-04-15 00:13:51 +12:00
7c1b6973ae Add ReturnHere.tsx 2019-04-14 23:12:05 +12:00
3ffd391cb0 Add user prop to CommentEditor 2019-04-14 22:09:00 +12:00
0fb6c8a6c2 Reduce bundle size by 100kb by removing date-fns 2019-04-11 12:23:17 +08:00
9d282b278d Build ESM client-side modules to enable tree shaking
TypeScript compiler needs to be configured to output ES6 module by
setting --module es6 or the equivalent tsconfig.json compilerOptions
parameter.

Since tsc --build does not accept compiler options flags, we need to
duplicate some of the configuration:

- specify separate output folder for ES6 module files (new
  tsconfig.esm.json file)
- add "module" field for ES6 module (esm) output files to package.json

Hence, a script `scripts/sync-esm-config.js` was added to automate this
process.
2019-04-11 11:40:07 +08:00
6605034e1e Export props from Link.tsx 2019-04-08 19:26:40 +08:00
65f1703089 Add ability to load user votes on frontend 2019-04-08 13:34:19 +08:00
582d36de02 Add Link to Stories from Sites 2019-04-06 14:11:55 +08:00
e18fa89b26 Add /teams/:teamId/sites/:siteId/stories client-side 2019-04-06 14:01:16 +08:00
00dd9326ba Use Heading instead of Label in forms
I realize <label> tags should be used instead, but this looks nicer and
I don't have the time to style it.
2019-04-04 11:43:06 +08:00
3660540451 Add HistoryCrumbs.tsx 2019-04-04 10:50:33 +08:00
b3924fa8d3 Fix CRUDForm not updating text 2019-04-04 00:00:43 +08:00
ce68048f9e Display CRUD form even when item is undefined 2019-04-03 23:54:32 +08:00
fcd7a9f56a Fix SSR bug when using window.localStorage 2019-04-03 23:54:19 +08:00
363b84699f Fix CRUDReducer bug when retrieving item that already exists 2019-04-03 23:51:38 +08:00
a81a68b6e2 Log actions in collapsed groups by default 2019-04-03 23:51:22 +08:00
83861cc5be Add &nbsp; to TeamList New 2019-04-03 23:45:38 +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
1a47e3e8a6 Fix test failure in TeamConnector 2019-04-03 20:36:19 +08:00
da6143d1aa Add ListButtons to TeamList.tsx 2019-04-03 20:34:14 +08:00
bc64a9bfa7 Load site on edit 2019-04-03 19:42:48 +08:00
b68a0c0380 Make item optional 2019-04-03 19:27:02 +08:00
6b3b1ef7d0 Make array readonly 2019-04-03 19:07:40 +08:00
b5c5ea81a9 Add Site to Application.tsx (untested) 2019-04-03 19:01:33 +08:00
91f47653bf Fix SiteForm properties 2019-04-03 17:50:27 +08:00
0b1cd203c3 Add sync actions to CRUDActions 2019-04-03 11:41:54 +08:00
71f7687ab9 Add Link (ContextLink) 2019-04-02 23:33:06 +08:00
d5cb6b92b6 Remove onUpdateTeam from TeamList 2019-04-02 19:35:39 +08:00
0f0ba81795 Add CRUDList.tsx 2019-04-02 17:24:04 +08:00
264f5aba60 Add T prefix for all type defs 2019-04-02 16:22:38 +08:00
db96b95522 Add SiteList.tsx 2019-04-02 15:32:40 +08:00
0630260628 Add space-within-parens rule 2019-04-02 15:09:47 +08:00
adfa7a069a Add common tslint.json configuration 2019-04-02 14:46:40 +08:00
b8ff27128b Make query optional 2019-04-02 14:38:11 +08:00
2f17418753 Simplify CRUDReducer methods 2019-04-02 12:03:38 +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