UNPKG

3.4 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8
9var _templateObject = _taggedTemplateLiteral(['\n ', ' {\n ', '\n }\n position: relative;\n outline: 0;\n border: 2px solid ', ';\n'], ['\n ', ' {\n ', '\n }\n position: relative;\n outline: 0;\n border: 2px solid ', ';\n']),
10 _templateObject2 = _taggedTemplateLiteral(['\n display: block;\n max-width: 100%;\n height: auto;\n'], ['\n display: block;\n max-width: 100%;\n height: auto;\n']),
11 _templateObject3 = _taggedTemplateLiteral(['\n query resource($id: ID!) {\n resource(id: $id) {\n id, path\n }\n }\n'], ['\n query resource($id: ID!) {\n resource(id: $id) {\n id, path\n }\n }\n']);
12
13var _graphqlTag = require('graphql-tag');
14
15var _graphqlTag2 = _interopRequireDefault(_graphqlTag);
16
17var _reactApollo = require('react-apollo');
18
19var _styledComponents = require('styled-components');
20
21var _styledComponents2 = _interopRequireDefault(_styledComponents);
22
23var _react = require('react');
24
25var _react2 = _interopRequireDefault(_react);
26
27var _media = require('../../library/media');
28
29function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
30
31function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
32
33function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
34
35var displayBig = function displayBig() {
36 return function (props) {
37 return props.display === 'big' ? 'width: 120%; left: -10%' : null;
38 };
39};
40
41var Container = _styledComponents2.default.div(_templateObject, (0, _media.mediaQuery)('medium'), displayBig(), function (props) {
42 return props.focus ? props.theme.secondary : 'transparent';
43});
44
45var Image = _styledComponents2.default.img(_templateObject2);
46
47var ImageBlock = function ImageBlock(_ref) {
48 var data = _ref.data,
49 graphData = _ref.graphData,
50 other = _objectWithoutProperties(_ref, ['data', 'graphData']);
51
52 return _react2.default.createElement(
53 Container,
54 _extends({}, data, other),
55 graphData.loading && _react2.default.createElement(
56 'span',
57 null,
58 'Loading...'
59 ),
60 graphData.error && _react2.default.createElement(
61 'span',
62 null,
63 'Could not fetch the image'
64 ),
65 graphData.resource && _react2.default.createElement(Image, {
66 src: graphData.resource.path + '?w=1280',
67 alt: graphData.resource.description
68 })
69 );
70};
71
72ImageBlock.propTypes = {
73 data: _react.PropTypes.shape().isRequired,
74 graphData: _react.PropTypes.shape({
75 loading: _react.PropTypes.bool,
76 node: _react.PropTypes.object
77 }).isRequired
78};
79
80var ResourceQuery = (0, _graphqlTag2.default)(_templateObject3);
81
82exports.default = (0, _reactApollo.graphql)(ResourceQuery, {
83 name: 'graphData',
84 options: function options(_ref2) {
85 var data = _ref2.data;
86 return { variables: { id: data.resource.id } };
87 }
88})(ImageBlock);
\No newline at end of file