Commit graph

108 commits

Author SHA1 Message Date
Bruno Windels
f103e60d1d fix lint - bis 2019-01-28 15:22:05 +01:00
Bruno Windels
d08216e857 fix lint 2019-01-28 14:56:14 +01:00
Bruno Windels
bfb1031a6b unify heights stored by id and index, to avoid them getting out of sync
effectively get rid of _originalHeights and calculate the array
from the dictionary when needed
2019-01-28 14:52:40 +01:00
Bruno Windels
0a5e8e6cfe WIP on persisting height across collapse/expand 2019-01-28 14:35:04 +01:00
Bruno Windels
8ffeee6a98 add matthews new resize algo 2019-01-25 18:47:34 +01:00
Bruno Windels
4eb2555fc1 initial support for collapsing 2019-01-24 18:18:10 +01:00
Bruno Windels
b230e65e74 prevent height doubling when resizing
caused by mixing up absolute height with incremental height
2019-01-24 16:44:36 +01:00
Bruno Windels
1092244bbf more fixes for updates/resizing 2019-01-24 15:43:23 +01:00
Bruno Windels
5bddf62d54 WIP to port prototype code 2019-01-23 18:30:51 +01:00
Bruno Windels
313bbaaeaa remove obsolete comments 2019-01-16 11:33:41 +01:00
Travis Ralston
fed256cbaa
Update src/resizer/distributors/roomsublist.js
Co-Authored-By: bwindels <bruno@windels.cloud>
2019-01-16 10:29:30 +00:00
Travis Ralston
98aa657052
Update src/resizer/distributors/collapse.js
Co-Authored-By: bwindels <bruno@windels.cloud>
2019-01-16 10:29:22 +00:00
Travis Ralston
2bd65e14b7
Update src/resizer/distributors/fixed.js
Co-Authored-By: bwindels <bruno@windels.cloud>
2019-01-16 10:29:15 +00:00
Travis Ralston
a5424f32a5
Update src/resizer/item.js
Co-Authored-By: bwindels <bruno@windels.cloud>
2019-01-16 10:29:05 +00:00
Bruno Windels
3c7bed97ac size all items to rendered height when starting drag operation
before, we'd only normalize the sublists that had already been
sized manually. As non-sized items still have flex-basis: auto,
they would claim all the space, and mixing sized and unsized items
would be badly broken.

Now, on the first click, all items are sized to their rendered size
which means they won't flex anymore, but at least the resizing works
this way

Another downside is that when resizing while a sublist is
collapsed, it's reverted to 100px and if a size had been set before,
it's forgotten. No way around this with this approach I'm afraid.
2019-01-15 12:56:48 +01:00
Bruno Windels
aa90e9591a fix min & max size for empty sublists 2019-01-15 12:56:33 +01:00
Bruno Windels
7e395f0fb6 cleanup - part II
reshuffle file structure to make more sense
2019-01-14 20:33:33 +01:00
Bruno Windels
9ecb23ce71 cleanup
- move some methods to ResizeItem subclass
- allow distributor to instanciate sizer and resizeitem it needs
  through static factory methods, instead of passing in another ctor
  a distributor can only function with the right item and sizer anyways.
- use consistent import/export style
- remove obsolete code
2019-01-14 20:24:54 +01:00
Bruno Windels
136dd4a556 stop resize operation when cursor leaves viewport
as mouseup can't be detected outside of viewport
2019-01-11 18:20:34 +01:00
Bruno Windels
a413f358f7 normalize sizes when starting drag operation 2019-01-11 17:17:58 +01:00
Bruno Windels
9456fc040d fix typo 2019-01-11 16:10:35 +01:00
Bruno Windels
92b9a8cc1f persist cleared size sublists 2019-01-10 18:40:26 +01:00
Bruno Windels
a130c44803 try clear next item size when resizing so there is always one unsized item 2019-01-10 14:12:05 +01:00
Bruno Windels
68afadd83b try flex-basis for resizing 2019-01-10 14:03:17 +01:00
Bruno Windels
51376c5c07 draft room sub list item api 2019-01-09 15:53:04 +01:00
Bruno Windels
b82e19b1f7 size header explicitly for content size
otherwise it just grows with max-height
2019-01-09 15:45:47 +01:00
Bruno Windels
0803ea9158 support collapsed items 2019-01-08 18:17:34 +01:00
Bruno Windels
8352d8c6bd not sure we need this, but adding the padding in _offset container 2019-01-08 18:17:00 +01:00
Bruno Windels
b4197059a0 change min size to exactly one room tile + header 2019-01-08 18:16:09 +01:00
Bruno Windels
4bd6ce8e2c WIP2 for making smart resizer work, sort of works now but shows big scrollbar 2019-01-08 16:47:47 +01:00
Bruno Windels
d558ea1dbf WIP 2018-12-19 23:51:19 +01:00
Bruno Windels
3ddc8baed1 fix resizing sometimes not working (and selecting text)
Last friday a child <div> was added inside the ResizeHandle component,
which made the parentElement/classList checks fail on the event.target
here. This would only fail (and select all the text) when dragging exactly on
the grey line (the div), not the transparent margin around it.

use closest to make sure we have the root element of the handle.
2018-12-18 14:27:10 +01:00
Bruno Windels
75925f6192 room sublist seems to get rendered w/o _scroll element
when loading the page from a community url
2018-12-10 16:51:32 +01:00
Bruno Windels
f7a37be6dd support associating an id with a resize item/handle 2018-11-26 16:46:27 +01:00
Bruno Windels
dae509d0eb introduce resizeFromContainerOffset method on distributor
up till now, resize received the offset of the resize handle
within the container upon resizing, and would then calculate
it's new size. For this first item in the container, this is
the same, and has therefor not been a problem yet.

Now however, we'll need to be able to programatically
(from localStorage) set the size of any roomsublist,
so need a method we can call with just the size and not an offset
within the container. The resizer calls the new method,
which subsequently calls resize.

This also has the nice side-effect that you can now easily
call super.resize after having transformed the new item size
2018-11-26 16:42:58 +01:00
Bruno Windels
3e496833fc remove unused PercentageDistributor
it's not used and we need to make some
api changes that don't work with it (resize will receive itemSize
which it doesn't really support)
2018-11-26 16:41:49 +01:00
Bruno Windels
8929ff9b5e use room resize classes 2018-11-26 14:42:01 +01:00
Bruno Windels
0939a40d3a adjust room distributor to roomsublist dom structure
also better classes to apply
2018-11-26 14:41:15 +01:00
Bruno Windels
4c5bd71114 fix lint 2018-11-01 17:56:08 +01:00
Bruno Windels
4d53e13a28 make manual resizing follow cursor more accurately
by clearing flex-grow that was set based on the list size,
you don't want it to grow anymore but be exactly the size
you are giving it.
2018-10-22 15:56:39 +02:00
Bruno Windels
73d9a71b29
Merge pull request #2226 from matrix-org/bwindels/resizeroomsublists
Redesign: 1st go at resizing room sublists
2018-10-19 13:33:28 +00:00
Bruno Windels
eb1ee1ca55 bind instead of second member var 2018-10-19 15:15:49 +02:00
Bruno Windels
44b92eb071 set sub list height with flex-basis to make it ... well, grow less 2018-10-18 16:58:17 +02:00
Bruno Windels
39ab3d86bd create sizer that sets item size with flex-basis
works with the flex-grow we set initially for the sub lists
2018-10-18 15:51:22 +02:00
Bruno Windels
a910f46c5b don't assume config 2018-10-18 15:51:01 +02:00
Bruno Windels
8d414d0986 more docs 2018-10-17 13:45:56 +02:00
Bruno Windels
d8ead8a8bb add some description to some classes 2018-10-17 13:42:30 +02:00
Bruno Windels
8d3347bcfb fix lint 2018-10-17 13:36:15 +02:00
Bruno Windels
6fdcebb876 add copyright headers 2018-10-17 11:38:25 +02:00
Bruno Windels
3a26f0fa12 only fire onCollapsed once when changing 2018-10-16 18:43:13 +02:00
Bruno Windels
28ec0f7462 onResized callback 2018-10-16 18:42:56 +02:00
Bruno Windels
bb184a4ae0 support programmatic access to a distributor (to set size from storage) 2018-10-16 17:22:12 +02:00
Bruno Windels
650e19ff77 don't expose direction, handleIndex to distributor ctor 2018-10-16 16:25:00 +02:00
Bruno Windels
30003d8f91 turn resizer into class to make programmatic interaction/cleanup easier 2018-10-16 15:16:10 +02:00
Bruno Windels
c095e30ae4 provide collapsed callback to also collapse on react side of things 2018-10-16 14:56:49 +02:00
Bruno Windels
c56975d93d dont base collapse toggle size on min-width, as it's not available in collapsed state 2018-10-16 12:26:08 +02:00
Bruno Windels
4f006b033e collapse left panel when 50px past min-width 2018-10-11 15:40:59 +02:00
Bruno Windels
928b6d47c8 add resize handles between 3 main app columns 2018-09-24 16:07:42 +01:00