Tom Hacohen
e58ddf8545
Implement shallow compare for the journal reducer.
...
The reason why we need it is that we don't have a concept of etag for
journal fetching, which means we were setting the store on each fetch
causing everything that depends on the journals to invalidate.
This triggers a bug that causes the entries not to refresh if the
journals haven't changed.
2017-12-16 21:53:12 +00:00
Tom Hacohen
2aa92f15e7
Reducer: don't reset the store when fetching.
...
There were a couple of bugs there:
1. The store was reset while fetching/error because the payload was
empty/error.
2. The error status wasn't reset after for successful fetches that
follow failed ones.
2017-12-16 21:33:40 +00:00
Tom Hacohen
b876a90a5a
Fix the calendar component to avoid re-rendering.
2017-12-16 20:59:08 +00:00
Tom Hacohen
8186055537
Syncgate: don't create the router aware components on each render.
2017-12-16 20:55:37 +00:00
Tom Hacohen
4613a65365
Don't recreate the persistant calendar component on each render.
2017-12-16 20:54:25 +00:00
Tom Hacohen
331d85d3a2
history persistor: follow the recommended HOC guidelines.
2017-12-16 20:29:50 +00:00
Tom Hacohen
5a1b3af9b0
Calendar: fix the unnecessary recration of closures.
2017-12-16 20:23:22 +00:00
Tom Hacohen
0d6ecfdbdf
Calendar: remove the unneccesary events sort.
2017-12-16 20:21:50 +00:00
Tom Hacohen
e085c0c40a
Side menu journals: don't trigger recalcs on route changes.
2017-12-16 20:10:23 +00:00
Tom Hacohen
a77e9077bf
Address book: make a component out of the list item.
2017-12-16 19:46:38 +00:00
Tom Hacohen
cec318f41f
Api: rename tsx files to ts.
2017-12-16 18:14:22 +00:00
Tom Hacohen
0ee6bbd340
Bring back list margin and remove the explicit contact padding
2017-12-16 18:11:36 +00:00
Tom Hacohen
98686f197a
Move all of the side menu items to one place.
2017-12-16 18:08:26 +00:00
Tom Hacohen
1da58da23e
Move all of the Pim related files to one dir.
2017-12-16 18:08:26 +00:00
Tom Hacohen
62dbc4b08d
Move all of the Journal related files to one dir.
2017-12-16 18:08:26 +00:00
Tom Hacohen
441549f41d
Move LoginForm to the component dir.
2017-12-16 17:54:31 +00:00
Tom Hacohen
e710e89200
Remove server url awareness from LoginForm making it a cleaner component.
2017-12-16 17:53:08 +00:00
Tom Hacohen
9f5da61dfb
Remove the hack we used for React.Fragment.
2017-12-16 17:46:00 +00:00
Tom Hacohen
6a586ac38f
Rename the Root to LoginGate because that's all it does.
2017-12-16 16:30:59 +00:00
Tom Hacohen
5ee24d054d
Move all of the view-only components to their own directory.
2017-12-16 16:30:59 +00:00
Tom Hacohen
85f5f91f36
Move the constants to their own module.
2017-12-16 16:30:59 +00:00
Tom Hacohen
4722207308
Change the suffix of helpers from .tsx to .ts.
...
They are not jsx files.
2017-12-16 16:30:59 +00:00
Tom Hacohen
d06b7610cd
Move the basic widgets to their own directory.
2017-12-16 16:05:21 +00:00
Tom Hacohen
9029d365bc
Move types to their own directory.
2017-12-16 15:57:09 +00:00
Tom Hacohen
48cd22b464
Move the store into its own module and split it up.
2017-12-16 15:52:46 +00:00
Tom Hacohen
e9db374206
Contact: fix virtual artefact with dividers.
2017-12-16 13:57:54 +00:00
Tom Hacohen
b93049f7a0
List: filter some of the props.
2017-12-16 13:57:19 +00:00
Tom Hacohen
b76ac00d78
Fix the ListDivider to be a list item.
2017-12-16 12:51:47 +00:00
Tom Hacohen
87e670ac97
Use the new MUI-like List API.
...
We had to change away from MUI because the list efficiency was abysmal.
Everything is an order of magnitude faster now.
2017-12-16 12:17:29 +00:00
Tom Hacohen
fdaef3a9f7
Make our List widget more like the mui one.
2017-12-16 12:15:12 +00:00
Tom Hacohen
3bb6d92be7
Add very basic error handling.
2017-12-16 00:19:20 +00:00
Tom Hacohen
2f96977646
Store fetching: fix the return record to include the error and fetching status.
2017-12-16 00:10:58 +00:00
Tom Hacohen
d3ad5b7080
Move @types/recompose to dev deps.
2017-12-15 23:39:22 +00:00
Tom Hacohen
7b7c96719d
Optimise PIM page a bit more.
2017-12-15 18:31:51 +00:00
Tom Hacohen
95c8bff9be
Cache the Pim related calculations.
...
No need to recalc everything if the input is the same.
2017-12-15 18:24:59 +00:00
Tom Hacohen
58eedd1c37
Cache the SyncGate calculations.
...
This was taking quite a lot of time and caching this significantly
improves performance.
We only need it because of the react-redux-router bug, but good to have
it in the meanwhile.
2017-12-15 18:11:08 +00:00
Tom Hacohen
360a6ad826
Create our own dedicated avatar widget.
2017-12-15 16:57:29 +00:00
Tom Hacohen
1a1bdc77af
Add our own list widget.
...
The material ui one is extremely inefficient and was causing noticeable
delays.
2017-12-15 16:50:51 +00:00
Tom Hacohen
08022994f2
Add recompose as a dep.
2017-12-15 16:49:59 +00:00
Tom Hacohen
97eaa756fe
Add FIXMEs for the withRouter workaround
...
Because of: https://github.com/ReactTraining/react-router/issues/5795
We have to use withRouter which triggers a lot of extra renderings.
This means that until the bug is fixed we have to use withRouter and
some memoization to make sure we don't recalc everything all the time.
2017-12-15 12:52:22 +00:00
Tom Hacohen
50a9094a8b
Explicitly include react-router as a dep.
2017-12-15 12:43:58 +00:00
Tom Hacohen
264145eb72
Pim: no longer pass the match object.
2017-12-14 14:35:29 +00:00
Tom Hacohen
9f396173b0
Move etsync decryption logic to sync gate.
...
This shares more of the code, and also lets us be more efficient because
we now do these calculations less.
2017-12-14 14:31:17 +00:00
Tom Hacohen
6c4f077d0f
Add missing new for records.
2017-12-14 12:06:12 +00:00
Tom Hacohen
4f88ff6364
Adjust code to work with es5 as a target.
2017-12-14 11:13:01 +00:00
Tom Hacohen
a6ad199023
Make all of the React.Components Pure.
2017-12-14 10:58:25 +00:00
Tom Hacohen
c3e686002e
Move the store to immutable.js
...
This significantly helps with reducing the number of copies we do,
because in most cases a refresh will not change a journal.
2017-12-14 10:58:25 +00:00
Tom Hacohen
6d09ea1ac6
Add immutable.js.
2017-12-14 10:58:25 +00:00
Tom Hacohen
ce71c5422f
Pim: cleanup the syncenttry and journals processing..
2017-12-14 10:58:25 +00:00
Tom Hacohen
cabd82b382
Journal: remove accidental ; in content.
2017-12-13 15:56:41 +00:00