diff --git a/src/components/views/rooms/RoomList.js b/src/components/views/rooms/RoomList.js index 79b608ac95..cb3cb49cd4 100644 --- a/src/components/views/rooms/RoomList.js +++ b/src/components/views/rooms/RoomList.js @@ -36,7 +36,7 @@ import GroupStore from '../../../stores/GroupStore'; import RoomSubList from '../../structures/RoomSubList'; import ResizeHandle from '../elements/ResizeHandle'; -import {Resizer, RoomDistributor, RoomSizer} from '../../../resizer' +import {Resizer, RoomSubListDistributor} from '../../../resizer' const HIDE_CONFERENCE_CHANS = true; const STANDARD_TAGS_REGEX = /^(m\.(favourite|lowpriority|server_notice)|im\.vector\.fake\.(invite|recent|direct|archived))$/; @@ -167,7 +167,7 @@ module.exports = React.createClass({ const cfg = { onResized: this._onSubListResize, }; - this.resizer = new Resizer(this.resizeContainer, RoomDistributor, cfg); + this.resizer = new Resizer(this.resizeContainer, RoomSubListDistributor, cfg); this.resizer.setClassNames({ handle: "mx_ResizeHandle", vertical: "mx_ResizeHandle_vertical", diff --git a/src/resizer/distributors/collapse.js b/src/resizer/distributors/collapse.js new file mode 100644 index 0000000000..d9d596299d --- /dev/null +++ b/src/resizer/distributors/collapse.js @@ -0,0 +1,53 @@ +/* +Copyright 2018 New Vector Ltd + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +import FixedDistributor from "./fixed"; +import ResizeItem from "../item"; + +class CollapseItem extends ResizeItem { + notifyCollapsed(collapsed) { + const callback = this.resizer.config.onCollapsed; + if (callback) { + callback(collapsed, this.id, this.domNode); + } + } +} + +export default class CollapseDistributor extends FixedDistributor { + static createItem(resizeHandle, resizer, sizer) { + return new CollapseItem(resizeHandle, resizer, sizer); + } + + constructor(item, config) { + super(item); + this.toggleSize = config && config.toggleSize; + this.isCollapsed = false; + } + + resize(newSize) { + const isCollapsedSize = newSize < this.toggleSize; + if (isCollapsedSize && !this.isCollapsed) { + this.isCollapsed = true; + this.item.notifyCollapsed(true); + } else if (!isCollapsedSize && this.isCollapsed) { + this.item.notifyCollapsed(false); + this.isCollapsed = false; + } + if (!isCollapsedSize) { + super.resize(newSize); + } + } +} diff --git a/src/resizer/distributors.js b/src/resizer/distributors/fixed.js similarity index 58% rename from src/resizer/distributors.js rename to src/resizer/distributors/fixed.js index d273f2782b..843d8367e0 100644 --- a/src/resizer/distributors.js +++ b/src/resizer/distributors/fixed.js @@ -14,8 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -import ResizeItem from "./item"; -import Sizer from "./sizer"; +import ResizeItem from "../item"; +import Sizer from "../sizer"; /** distributors translate a moving cursor into @@ -29,7 +29,7 @@ they have two methods: the offset from the container edge of where the mouse cursor is. */ -export class FixedDistributor { +export default class FixedDistributor { static createItem(resizeHandle, resizer, sizer) { return new ResizeItem(resizeHandle, resizer, sizer); } @@ -55,38 +55,3 @@ export class FixedDistributor { finish() {} } - -class CollapseItem extends ResizeItem { - notifyCollapsed(collapsed) { - const callback = this.resizer.config.onCollapsed; - if (callback) { - callback(collapsed, this.id, this.domNode); - } - } -} - -export class CollapseDistributor extends FixedDistributor { - static createItem(resizeHandle, resizer, sizer) { - return new CollapseItem(resizeHandle, resizer, sizer); - } - - constructor(item, config) { - super(item); - this.toggleSize = config && config.toggleSize; - this.isCollapsed = false; - } - - resize(newSize) { - const isCollapsedSize = newSize < this.toggleSize; - if (isCollapsedSize && !this.isCollapsed) { - this.isCollapsed = true; - this.item.notifyCollapsed(true); - } else if (!isCollapsedSize && this.isCollapsed) { - this.item.notifyCollapsed(false); - this.isCollapsed = false; - } - if (!isCollapsedSize) { - super.resize(newSize); - } - } -} diff --git a/src/resizer/room.js b/src/resizer/distributors/roomsublist.js similarity index 97% rename from src/resizer/room.js rename to src/resizer/distributors/roomsublist.js index e8c57b0450..1e5ce0fc92 100644 --- a/src/resizer/room.js +++ b/src/resizer/distributors/roomsublist.js @@ -14,8 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -import Sizer from "./sizer"; -import ResizeItem from "./item"; +import Sizer from "../sizer"; +import ResizeItem from "../item"; class RoomSizer extends Sizer { setItemSize(item, size) { @@ -50,7 +50,7 @@ class RoomSubListItem extends ResizeItem { } } -export default class RoomDistributor { +export default class RoomSubListDistributor { static createItem(resizeHandle, resizer, sizer) { return new RoomSubListItem(resizeHandle, resizer, sizer); } diff --git a/src/resizer/index.js b/src/resizer/index.js index 364d077037..bc4c8f388c 100644 --- a/src/resizer/index.js +++ b/src/resizer/index.js @@ -14,13 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -import {FixedDistributor, CollapseDistributor} from "./distributors"; +import FixedDistributor from "./distributors/fixed"; +import CollapseDistributor from "./distributors/collapse"; +import RoomSubListDistributor from "./distributors/roomsublist"; import Resizer from "./resizer"; -import RoomDistributor from "./room"; module.exports = { Resizer, FixedDistributor, CollapseDistributor, - RoomDistributor, + RoomSubListDistributor, };