diff --git a/skins/base/views/atoms/ImageView.js b/skins/base/views/atoms/ImageView.js new file mode 100644 index 000000000..8f4b08d2a --- /dev/null +++ b/skins/base/views/atoms/ImageView.js @@ -0,0 +1,56 @@ +/* +Copyright 2015 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 ImageViewController = require("../../../../src/controllers/atoms/ImageView"); + +module.exports = React.createClass({ + displayName: 'ImageView', + mixins: [ImageViewController], + + render: function() { + var width = this.props.width || 500; + var height = this.props.height || 500; + + var maxWidth = document.documentElement.clientWidth * 0.8; + var maxHeight = document.documentElement.clientHeight * 0.8; + + var widthFrac = width / maxWidth; + var heightFrac = height / maxHeight; + + var displayWidth; + var displayHeight; + if (widthFrac > heightFrac) { + displayWidth = Math.min(width, maxWidth); + displayHeight = (displayWidth / width) * height; + } else { + displayHeight = Math.min(height, maxHeight); + displayWidth = (displayHeight / height) * width; + } + + var style = { + width: displayWidth, + height: displayHeight + }; + + return ( + + ); + } +}); diff --git a/src/controllers/atoms/ImageView.js b/src/controllers/atoms/ImageView.js new file mode 100644 index 000000000..d0977e004 --- /dev/null +++ b/src/controllers/atoms/ImageView.js @@ -0,0 +1,20 @@ +/* +Copyright 2015 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'; + +module.exports = { +};