diff --git a/src/component-index.js b/src/component-index.js index 819420f8eac..e9cce7f7dea 100644 --- a/src/component-index.js +++ b/src/component-index.js @@ -52,4 +52,5 @@ module.exports.components['views.rooms.RoomDNDView'] = require('./components/vie module.exports.components['views.rooms.RoomDropTarget'] = require('./components/views/rooms/RoomDropTarget'); module.exports.components['views.rooms.RoomTooltip'] = require('./components/views/rooms/RoomTooltip'); module.exports.components['views.rooms.SearchBar'] = require('./components/views/rooms/SearchBar'); +module.exports.components['views.settings.IntegrationsManager'] = require('./components/views/settings/IntegrationsManager'); module.exports.components['views.settings.Notifications'] = require('./components/views/settings/Notifications'); diff --git a/src/components/structures/RoomDirectory.js b/src/components/structures/RoomDirectory.js index e3519b9ea98..e4a8524b904 100644 --- a/src/components/structures/RoomDirectory.js +++ b/src/components/structures/RoomDirectory.js @@ -21,7 +21,7 @@ var React = require('react'); var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg'); var ContentRepo = require("matrix-js-sdk").ContentRepo; var Modal = require('matrix-react-sdk/lib/Modal'); -var sdk = require('matrix-react-sdk') +var sdk = require('matrix-react-sdk'); var dis = require('matrix-react-sdk/lib/dispatcher'); var GeminiScrollbar = require('react-gemini-scrollbar'); diff --git a/src/components/views/settings/IntegrationsManager.js b/src/components/views/settings/IntegrationsManager.js new file mode 100644 index 00000000000..8db010a2b01 --- /dev/null +++ b/src/components/views/settings/IntegrationsManager.js @@ -0,0 +1,56 @@ +/* +Copyright 2015, 2016 OpenMarket 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. +*/ + +'use strict'; + +var React = require('react'); +var sdk = require('matrix-react-sdk'); +var MatrixClientPeg = require('matrix-react-sdk/lib/MatrixClientPeg'); + +module.exports = React.createClass({ + displayName: 'IntegrationsManager', + + propTypes: { + src: React.PropTypes.string.isRequired, // the source of the integration manager being embedded + onFinished: React.PropTypes.func.isRequired, // callback when the lightbox is dismissed + }, + + // XXX: keyboard shortcuts for managing dialogs should be done by the modal + // dialog base class somehow, surely... + componentDidMount: function() { + document.addEventListener("keydown", this.onKeyDown); + }, + + componentWillUnmount: function() { + document.removeEventListener("keydown", this.onKeyDown); + }, + + onKeyDown: function(ev) { + if (ev.keyCode == 27) { // escape + ev.stopPropagation(); + ev.preventDefault(); + this.props.onFinished(); + } + }, + + render: function() { + return ( +
+ +
+ ); + } +}); diff --git a/src/skins/vector/css/matrix-react-sdk/views/settings/IntegrationsManager.css b/src/skins/vector/css/matrix-react-sdk/views/settings/IntegrationsManager.css new file mode 100644 index 00000000000..0fa40fe1efe --- /dev/null +++ b/src/skins/vector/css/matrix-react-sdk/views/settings/IntegrationsManager.css @@ -0,0 +1,33 @@ +/* +Copyright 2015, 2016 OpenMarket 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. +*/ + +.mx_IntegrationsManager { + display: -webkit-flex; + display: flex; + width: 100%; + height: 100%; + -webkit-align-items: center; + align-items: center; + justify-content: center; + -webkit-justify-content: center; +} + +.mx_IntegrationsManager iframe { + background-color: #fff; + border: 0px; + width: 720px; + height: 512px; +}