X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Factions%2FPanelResizeAction.js;fp=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Factions%2FPanelResizeAction.js;h=d721391c2bceee273ebab92df410763e6d1320fb;hb=e29efc315df33d546237e270470916e26df391d6;hp=0000000000000000000000000000000000000000;hpb=9c5e457509ba5a1822c316635c6308874e61b4b9;p=osm%2FUI.git diff --git a/skyquake/plugins/composer/src/src/actions/PanelResizeAction.js b/skyquake/plugins/composer/src/src/actions/PanelResizeAction.js new file mode 100644 index 000000000..d721391c2 --- /dev/null +++ b/skyquake/plugins/composer/src/src/actions/PanelResizeAction.js @@ -0,0 +1,70 @@ + +/* + * + * Copyright 2016 RIFT.IO Inc + * + * 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. + * + */ +/** + * Created by onvelocity on 8/11/15. + */ +import alt from '../alt'; +import changeCase from 'change-case' + +/* + This class manages Composer Layout State + */ + +const cleanNameRegExp = /(-is-tray-open|panel-)/i; + +class PanelResizeAction { + + resize(e) { + + /* we expect two types of resize events: + * window resize - invoked by window + * resize-manager resize - invoked by ResizeManager + * + * normalize the data needed by the Composer Layout or ignore invalid ones + * + * */ + + if (!e) { + return false; + } + + if (e.detail && e.detail.side) { + // a ResizeManager event + this.dispatch(PanelResizeAction.buildResizeManagerInfo(e)) + } else { + // a window event + this.dispatch(PanelResizeAction.buildWindowResizeInfo(e)); + } + + } + + static buildWindowResizeInfo(e) { + return e; + } + + static buildResizeManagerInfo(e) { + const info = Object.assign({originalEvent: e}, e.detail); + const name = changeCase.paramCase(info.target.className.replace(cleanNameRegExp, '')); + info.type = 'resize-manager.resize.' + name; + return info; + } + +} + +export default alt.createActions(PanelResizeAction);