197 Commits

Author SHA1 Message Date
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
37164a719f Add scripts/unpack.js script for analyzing bundle file size 2019-04-08 19:29:41 +08:00
0a1bd4dc87 Add build clean target 2019-04-08 19:28:36 +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
e509c32f79 Add ability to load votes by id
Use createDate and updateDate as strings
2019-04-08 13:33:58 +08:00
17d67900c1 Add safe Markdown parsing to CommentService 2019-04-07 13:44:35 +08:00
6418cd64b6 Add @rondo/common Markdown 2019-04-07 13:16:18 +08:00
e727687ec8 Refactor CommentActions, add skeleton for Reducer 2019-04-07 00:23:01 +08:00
bbf18ed27a Add ability to specify middleware in AsyncRouter 2019-04-06 21:32:20 +08:00
364972c97f Update TODO.md 2019-04-06 14:41:05 +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
89af2f0845 Add StringUtils 2019-04-06 13:58:20 +08:00
42439ee422 Add TODO.md 2019-04-05 00:32:21 +08:00
eb46f8ccb3 Add OpenGraphScraper.ts 2019-04-04 19:54:28 +08:00
7d841182d3 Add open-graph-scraper 2019-04-04 11:44:28 +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
831001a9c5 Add createFilterProps 2019-04-03 18:02:36 +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
0a9648c392 Add packages/common/src/types.ts 2019-04-02 14:38:01 +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
61e7e8db4f Fix test in HTTPClientMock.test.ts 2019-04-01 14:24:47 +08:00
31bb2aa5ee Make CRUDActions method bound 2019-04-01 13:11:43 +08:00