sanity-plugin-asset-source-unsplash 0.1.1 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -1
- package/dist/lib/components/Photo.js +33 -10
- package/dist/lib/components/Photo.js.map +1 -1
- package/dist/lib/components/Photo.styled.js +21 -0
- package/dist/lib/components/Photo.styled.js.map +1 -0
- package/dist/lib/components/UnsplashAssetSource.js +64 -33
- package/dist/lib/components/UnsplashAssetSource.js.map +1 -1
- package/dist/lib/components/UnsplashAssetSource.styled.js +16 -0
- package/dist/lib/components/UnsplashAssetSource.styled.js.map +1 -0
- package/dist/lib/datastores/unsplash.js +14 -0
- package/dist/lib/datastores/unsplash.js.map +1 -1
- package/dist/sanity-plugin-asset-source-unsplash.es5.js +12387 -8773
- package/dist/sanity-plugin-asset-source-unsplash.es5.js.map +1 -1
- package/dist/sanity-plugin-asset-source-unsplash.umd.js +12398 -8783
- package/dist/sanity-plugin-asset-source-unsplash.umd.js.map +1 -1
- package/dist/types/components/Photo.d.ts +9 -3
- package/dist/types/components/Photo.styled.d.ts +4 -0
- package/dist/types/components/UnsplashAssetSource.d.ts +8 -3
- package/dist/types/components/UnsplashAssetSource.styled.d.ts +3 -0
- package/dist/types/datastores/unsplash.d.ts +2 -0
- package/dist/types/types.d.ts +8 -0
- package/package.json +21 -22
- package/dist/lib/components/Photo.css +0 -39
- package/dist/lib/components/Scroller.css +0 -7
- package/dist/lib/components/Scroller.js +0 -69
- package/dist/lib/components/Scroller.js.map +0 -1
- package/dist/lib/components/UnsplashAssetSource.css +0 -3
- package/dist/types/components/Scroller.d.ts +0 -23
package/README.md
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
# Sanity Asset Source: Unsplash
|
|
1
|
+
# Sanity Asset Source Plugin: Unsplash
|
|
2
|
+
Search for photos on Unsplash and add them to your project right inside of your Sanity Studio.
|
|
3
|
+
|
|
4
|
+
[](https://travis-ci.org/sanity-io/sanity-plugin-asset-source-unsplash)
|
|
2
5
|
|
|
3
6
|
## Installation
|
|
4
7
|
|
|
5
8
|
`sanity install asset-source-unsplash`
|
|
6
9
|
|
|
10
|
+
## Part name
|
|
11
|
+
|
|
12
|
+
If you need to do customize available asset sources, the plugin part name for this asset source is:
|
|
13
|
+
|
|
14
|
+
`part:sanity-plugin-asset-source-unsplash/image-asset-source`
|
|
15
|
+
|
|
7
16
|
## Developing on this module
|
|
8
17
|
|
|
9
18
|
To simulate using your development version as a real module inside a studio, you can do the following:
|
|
@@ -195,5 +204,7 @@ When you are done and have published your new version, you can run `npm unlink`
|
|
|
195
204
|
## Futher reading
|
|
196
205
|
|
|
197
206
|
* https://unsplash.com/documentation
|
|
207
|
+
* https://www.sanity.io/docs/custom-asset-sources
|
|
208
|
+
|
|
198
209
|
|
|
199
210
|
|
|
@@ -16,33 +16,56 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
17
17
|
};
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
var ui_1 = require("@sanity/ui");
|
|
19
20
|
var react_1 = __importDefault(require("react"));
|
|
20
|
-
var
|
|
21
|
+
var Photo_styled_1 = require("./Photo.styled");
|
|
22
|
+
var UTM_SOURCE = 'sanity-plugin-asset-source-unsplash';
|
|
21
23
|
var Photo = /** @class */ (function (_super) {
|
|
22
24
|
__extends(Photo, _super);
|
|
23
25
|
function Photo() {
|
|
24
26
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
27
|
+
_this.rootElm = react_1.default.createRef();
|
|
25
28
|
_this.handleClick = function (event) {
|
|
26
29
|
_this.props.onClick(_this.props.data);
|
|
27
30
|
};
|
|
28
31
|
_this.handleCreditLineClicked = function (event) {
|
|
29
32
|
event.stopPropagation();
|
|
30
|
-
var
|
|
31
|
-
var url = data.links.html + "?utm_source=" + encodeURIComponent(
|
|
32
|
-
window.open(url);
|
|
33
|
+
var data = _this.props.data;
|
|
34
|
+
var url = data.links.html + "?utm_source=" + encodeURIComponent(UTM_SOURCE) + "&utm_medium=referral";
|
|
35
|
+
window.open(url, data.id, 'noreferrer,noopener');
|
|
36
|
+
};
|
|
37
|
+
_this.handleKeyDown = function (event) {
|
|
38
|
+
var _a = _this.props, onKeyDown = _a.onKeyDown, data = _a.data;
|
|
39
|
+
onKeyDown(event);
|
|
40
|
+
if (event.keyCode === 13) {
|
|
41
|
+
_this.props.onClick(data);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
_this.handleMouseDown = function (event) {
|
|
45
|
+
_this.props.onFocus(_this.props.data);
|
|
33
46
|
};
|
|
34
47
|
return _this;
|
|
35
48
|
}
|
|
49
|
+
Photo.prototype.componentDidUpdate = function (prevProps) {
|
|
50
|
+
if (!prevProps.active && this.props.active && this.rootElm.current) {
|
|
51
|
+
this.rootElm.current.focus();
|
|
52
|
+
this.props.onFocus(this.props.data);
|
|
53
|
+
}
|
|
54
|
+
};
|
|
36
55
|
Photo.prototype.render = function () {
|
|
37
56
|
var _a = this.props, width = _a.width, height = _a.height, data = _a.data;
|
|
38
57
|
var src = data.urls.small;
|
|
39
58
|
var userName = data.user.name;
|
|
40
|
-
return (react_1.default.createElement(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
59
|
+
return (react_1.default.createElement(Photo_styled_1.Root, { ref: this.rootElm, title: "Select image by " + userName + " from Unsplash", tabIndex: 0, onKeyDown: this.handleKeyDown, onMouseDown: this.handleMouseDown, style: {
|
|
60
|
+
width: width + "px",
|
|
61
|
+
height: height + "px",
|
|
62
|
+
backgroundImage: "url(\"" + src + "\")"
|
|
63
|
+
}, onClick: this.handleClick },
|
|
64
|
+
react_1.default.createElement(Photo_styled_1.CreditLineLink, { onClick: this.handleCreditLineClicked },
|
|
65
|
+
react_1.default.createElement(Photo_styled_1.CreditLine, { padding: 2, radius: 2, margin: 2 },
|
|
66
|
+
react_1.default.createElement(ui_1.Text, { size: 1, title: "Open image by " + userName + " on Unsplash in new window" },
|
|
67
|
+
"By @",
|
|
68
|
+
data.user.username)))));
|
|
46
69
|
};
|
|
47
70
|
return Photo;
|
|
48
71
|
}(react_1.default.Component));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Photo.js","sourceRoot":"","sources":["../../../src/components/Photo.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Photo.js","sourceRoot":"","sources":["../../../src/components/Photo.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.CreditLine = exports.CreditLineLink = exports.Root = void 0;
|
|
11
|
+
var ui_1 = require("@sanity/ui");
|
|
12
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
13
|
+
exports.Root = styled_components_1.default.div(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n overflow: hidden;\n background-origin: content-box;\n background-repeat: no-repeat;\n background-clip: border-box;\n background-size: cover;\n position: relative;\n outline: none !important;\n border: 1px solid white;\n user-drag: none;\n\n &:hover {\n opacity: 0.85;\n }\n\n &:focus,\n &:active {\n border: 1px solid var(--input-border-color-focus);\n box-shadow: inset 0 0 0 3px var(--input-border-color-focus);\n }\n"], ["\n overflow: hidden;\n background-origin: content-box;\n background-repeat: no-repeat;\n background-clip: border-box;\n background-size: cover;\n position: relative;\n outline: none !important;\n border: 1px solid white;\n user-drag: none;\n\n &:hover {\n opacity: 0.85;\n }\n\n &:focus,\n &:active {\n border: 1px solid var(--input-border-color-focus);\n box-shadow: inset 0 0 0 3px var(--input-border-color-focus);\n }\n"])));
|
|
14
|
+
exports.CreditLineLink = styled_components_1.default.a(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n text-decoration: none;\n cursor: pointer;\n"], ["\n text-decoration: none;\n cursor: pointer;\n"])));
|
|
15
|
+
exports.CreditLine = styled_components_1.default(ui_1.Card)(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n ", ";\n user-drag: none;\n position: absolute;\n background-color: var(--creditline-bg);\n bottom: 0;\n\n [data-ui='Text'] {\n color: var(--creditline-fg);\n }\n"], ["\n ",
|
|
16
|
+
";\n user-drag: none;\n position: absolute;\n background-color: var(--creditline-bg);\n bottom: 0;\n\n [data-ui='Text'] {\n color: var(--creditline-fg);\n }\n"])), function (_a) {
|
|
17
|
+
var theme = _a.theme;
|
|
18
|
+
return "\n --creditline-fg: " + theme.sanity.color.base.bg + ";\n --creditline-bg: " + theme.sanity.color.base.fg + ";\n ";
|
|
19
|
+
});
|
|
20
|
+
var templateObject_1, templateObject_2, templateObject_3;
|
|
21
|
+
//# sourceMappingURL=Photo.styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Photo.styled.js","sourceRoot":"","sources":["../../../src/components/Photo.styled.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,iCAAiC;AACjC,wEAAsC;AAEzB,QAAA,IAAI,GAAG,2BAAM,CAAC,GAAG,kgBAAA,+bAoB7B,KAAA;AAEY,QAAA,cAAc,GAAG,2BAAM,CAAC,CAAC,qHAAA,kDAGrC,KAAA;AAEY,QAAA,UAAU,GAAG,2BAAM,CAAC,SAAI,CAAC,mPAAA,MAClC;IAGA,wKASH,KAZG,UAAC,EAAS;QAAP,KAAK,WAAA;IAAO,OAAA,6BACK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,iCAC1B,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,WAC9C;AAHe,CAGf,EASH"}
|
|
@@ -27,18 +27,19 @@ var react_1 = __importDefault(require("react"));
|
|
|
27
27
|
var react_photo_gallery_1 = __importDefault(require("react-photo-gallery"));
|
|
28
28
|
var lodash_1 = require("lodash");
|
|
29
29
|
var rxjs_1 = require("rxjs");
|
|
30
|
-
var fullscreen_1 = __importDefault(require("part:@sanity/components/dialogs/fullscreen"));
|
|
31
|
-
var search_1 = __importDefault(require("part:@sanity/components/textfields/search"));
|
|
32
|
-
var Scroller_1 = __importDefault(require("./Scroller"));
|
|
33
30
|
var Photo_1 = __importDefault(require("./Photo"));
|
|
34
|
-
var UnsplashAssetSource_css_1 = __importDefault(require("./UnsplashAssetSource.css"));
|
|
35
31
|
var unsplash_1 = require("../datastores/unsplash");
|
|
32
|
+
var ui_1 = require("@sanity/ui");
|
|
33
|
+
var UnsplashAssetSource_styled_1 = require("./UnsplashAssetSource.styled");
|
|
34
|
+
var react_infinite_scroll_component_1 = __importDefault(require("react-infinite-scroll-component"));
|
|
36
35
|
var RESULTS_PER_PAGE = 42;
|
|
36
|
+
var GALLERY_PHOTO_WIDTH = 400;
|
|
37
37
|
var UnsplashAssetSource = /** @class */ (function (_super) {
|
|
38
38
|
__extends(UnsplashAssetSource, _super);
|
|
39
39
|
function UnsplashAssetSource() {
|
|
40
40
|
var _this = _super !== null && _super.apply(this, arguments) || this;
|
|
41
41
|
_this.state = {
|
|
42
|
+
cursor: 0,
|
|
42
43
|
query: '',
|
|
43
44
|
page: 1,
|
|
44
45
|
searchResults: [[]],
|
|
@@ -48,26 +49,31 @@ var UnsplashAssetSource = /** @class */ (function (_super) {
|
|
|
48
49
|
_this.searchSubject$ = new rxjs_1.BehaviorSubject('');
|
|
49
50
|
_this.pageSubject$ = new rxjs_1.BehaviorSubject(1);
|
|
50
51
|
_this.handleSelect = function (photo) {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
52
|
+
_this.setState({ isLoading: true });
|
|
53
|
+
return unsplash_1.fetchDownloadUrl(photo).then(function (downloadUrl) {
|
|
54
|
+
var description = photo.description || undefined;
|
|
55
|
+
var asset = {
|
|
56
|
+
kind: 'url',
|
|
57
|
+
value: downloadUrl,
|
|
58
|
+
assetDocumentProps: {
|
|
59
|
+
source: {
|
|
60
|
+
name: 'unsplash',
|
|
61
|
+
id: photo.id,
|
|
62
|
+
url: photo.links.html
|
|
63
|
+
},
|
|
64
|
+
description: description,
|
|
65
|
+
creditLine: photo.user.name + " by Unsplash"
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
_this.props.onSelect([asset]);
|
|
69
|
+
});
|
|
64
70
|
};
|
|
65
71
|
_this.handleClose = function () {
|
|
66
72
|
_this.props.onClose();
|
|
67
73
|
};
|
|
68
74
|
_this.handleSearchTermChanged = function (event) {
|
|
69
75
|
var query = event.currentTarget.value;
|
|
70
|
-
_this.setState({ query: query, page: 1, searchResults: [[]], isLoading: true });
|
|
76
|
+
_this.setState({ query: query, page: 1, searchResults: [[]], isLoading: true, cursor: 0 });
|
|
71
77
|
_this.pageSubject$.next(1);
|
|
72
78
|
_this.searchSubject$.next(query);
|
|
73
79
|
};
|
|
@@ -77,9 +83,29 @@ var UnsplashAssetSource = /** @class */ (function (_super) {
|
|
|
77
83
|
_this.pageSubject$.next(nextPage);
|
|
78
84
|
_this.searchSubject$.next(_this.state.query);
|
|
79
85
|
};
|
|
86
|
+
_this.handleKeyDown = function (event) {
|
|
87
|
+
var cursor = _this.state.cursor;
|
|
88
|
+
if ((event.keyCode === 38 || event.keyCode === 37) && cursor > 0) {
|
|
89
|
+
_this.setState(function (prevState) { return ({
|
|
90
|
+
cursor: prevState.cursor - 1
|
|
91
|
+
}); });
|
|
92
|
+
}
|
|
93
|
+
else if ((event.keyCode === 40 || event.keyCode === 39) &&
|
|
94
|
+
cursor < _this.getPhotos().length - 1) {
|
|
95
|
+
_this.setState(function (prevState) { return ({
|
|
96
|
+
cursor: prevState.cursor + 1
|
|
97
|
+
}); });
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
_this.updateCursor = function (photo) {
|
|
101
|
+
var index = _this.getPhotos().findIndex(function (result) { return result.id === photo.id; });
|
|
102
|
+
_this.setState({ cursor: index });
|
|
103
|
+
};
|
|
80
104
|
_this.renderImage = function (props) {
|
|
81
105
|
var photo = props.photo;
|
|
82
|
-
|
|
106
|
+
var active = _this.getPhotos().findIndex(function (result) { return result.id === photo.data.id; }) ===
|
|
107
|
+
_this.state.cursor || false;
|
|
108
|
+
return (react_1.default.createElement(Photo_1.default, { onClick: _this.handleSelect.bind(photo.data), onKeyDown: _this.handleKeyDown, key: "Photo-" + photo.data.id, data: photo.data, width: photo.width, height: photo.height, active: active, onFocus: _this.updateCursor }));
|
|
83
109
|
};
|
|
84
110
|
return _this;
|
|
85
111
|
}
|
|
@@ -100,24 +126,29 @@ var UnsplashAssetSource = /** @class */ (function (_super) {
|
|
|
100
126
|
this.searchSubscription.unsubscribe();
|
|
101
127
|
}
|
|
102
128
|
};
|
|
103
|
-
UnsplashAssetSource.prototype.
|
|
104
|
-
return
|
|
129
|
+
UnsplashAssetSource.prototype.getPhotos = function () {
|
|
130
|
+
return lodash_1.flatten(this.state.searchResults);
|
|
105
131
|
};
|
|
106
132
|
UnsplashAssetSource.prototype.render = function () {
|
|
107
133
|
var _this = this;
|
|
108
134
|
var _a = this.state, query = _a.query, searchResults = _a.searchResults, isLoading = _a.isLoading;
|
|
109
|
-
return (react_1.default.createElement(
|
|
110
|
-
react_1.default.createElement(
|
|
111
|
-
react_1.default.createElement(
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
135
|
+
return (react_1.default.createElement(ui_1.Dialog, { id: "unsplash-asset-source", header: "Select image from Unsplash", onClose: this.handleClose, open: true, width: 4 },
|
|
136
|
+
react_1.default.createElement(ui_1.Stack, { space: 3, padding: 4 },
|
|
137
|
+
react_1.default.createElement(ui_1.Card, null,
|
|
138
|
+
react_1.default.createElement(UnsplashAssetSource_styled_1.Search, { space: 3 },
|
|
139
|
+
react_1.default.createElement(ui_1.Text, { size: 1, weight: "semibold" }, "Search Unsplash"),
|
|
140
|
+
react_1.default.createElement(ui_1.TextInput, { label: "Search Unsplash.com", placeholder: "Topics or colors", value: query, onChange: this.handleSearchTermChanged }))),
|
|
141
|
+
!isLoading && this.getPhotos().length === 0 && (react_1.default.createElement(ui_1.Text, { size: 1, muted: true }, "No results found")),
|
|
142
|
+
react_1.default.createElement(react_infinite_scroll_component_1.default, { dataLength: this.getPhotos().length, next: this.handleScollerLoadMore,
|
|
143
|
+
// scrollableTarget="unsplash-scroller"
|
|
144
|
+
hasMore: true, scrollThreshold: 0.99, height: "60vh", loader: react_1.default.createElement(ui_1.Flex, { align: "center", justify: "center", padding: 2 },
|
|
145
|
+
react_1.default.createElement(ui_1.Spinner, { muted: true })), endMessage: react_1.default.createElement(ui_1.Text, { size: 1, muted: true }, "No more results") }, searchResults.map(function (photos, index) { return (react_1.default.createElement(react_photo_gallery_1.default, { key: "gallery-" + (query || 'popular') + "-" + index, photos: photos.map(function (photo) { return ({
|
|
146
|
+
src: photo.urls.small,
|
|
147
|
+
width: GALLERY_PHOTO_WIDTH,
|
|
148
|
+
height: Math.round((photo.height / photo.width) * GALLERY_PHOTO_WIDTH),
|
|
149
|
+
key: photo.id,
|
|
150
|
+
data: photo
|
|
151
|
+
}); }), renderImage: _this.renderImage })); })))));
|
|
121
152
|
};
|
|
122
153
|
UnsplashAssetSource.defaultProps = {
|
|
123
154
|
selectedAssets: undefined
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UnsplashAssetSource.js","sourceRoot":"","sources":["../../../src/components/UnsplashAssetSource.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAyB;AACzB,4EAAyC;AACzC,iCAAgC;AAChC,6BAAoD;
|
|
1
|
+
{"version":3,"file":"UnsplashAssetSource.js","sourceRoot":"","sources":["../../../src/components/UnsplashAssetSource.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) {
|
|
3
|
+
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
|
|
4
|
+
return cooked;
|
|
5
|
+
};
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.Scroller = exports.Search = void 0;
|
|
11
|
+
var ui_1 = require("@sanity/ui");
|
|
12
|
+
var styled_components_1 = __importDefault(require("styled-components"));
|
|
13
|
+
exports.Search = styled_components_1.default(ui_1.Stack)(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: sticky;\n top: 0;\n z-index: 1;\n"], ["\n position: sticky;\n top: 0;\n z-index: 1;\n"])));
|
|
14
|
+
exports.Scroller = styled_components_1.default.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n overflow-y: auto;\n max-height: 80vh;\n"], ["\n overflow-y: auto;\n max-height: 80vh;\n"])));
|
|
15
|
+
var templateObject_1, templateObject_2;
|
|
16
|
+
//# sourceMappingURL=UnsplashAssetSource.styled.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UnsplashAssetSource.styled.js","sourceRoot":"","sources":["../../../src/components/UnsplashAssetSource.styled.tsx"],"names":[],"mappings":";;;;;;;;;;AAAA,iCAAkC;AAClC,wEAAsC;AAEzB,QAAA,MAAM,GAAG,2BAAM,CAAC,UAAK,CAAC,sHAAA,mDAIlC,KAAA;AAEY,QAAA,QAAQ,GAAG,2BAAM,CAAC,GAAG,iHAAA,8CAGjC,KAAA"}
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.search = exports.sanityClient = exports.fetchDownloadUrl = void 0;
|
|
6
7
|
var client_1 = __importDefault(require("part:@sanity/base/client"));
|
|
7
8
|
var rxjs_1 = require("rxjs");
|
|
8
9
|
var operators_1 = require("rxjs/operators");
|
|
@@ -24,6 +25,19 @@ var fetchList = function (type, page, perPage) {
|
|
|
24
25
|
});
|
|
25
26
|
});
|
|
26
27
|
};
|
|
28
|
+
function fetchDownloadUrl(photo) {
|
|
29
|
+
var downloadUrl = photo.links.download_location.replace('https://api.unsplash.com', '/addons/unsplash');
|
|
30
|
+
return client_1.default
|
|
31
|
+
.request({
|
|
32
|
+
url: downloadUrl,
|
|
33
|
+
withCredentials: true,
|
|
34
|
+
method: 'GET'
|
|
35
|
+
})
|
|
36
|
+
.then(function (result) {
|
|
37
|
+
return result.url;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
exports.fetchDownloadUrl = fetchDownloadUrl;
|
|
27
41
|
exports.sanityClient = client_1.default;
|
|
28
42
|
exports.search = function (query, page, resultsPerPage) {
|
|
29
43
|
return rxjs_1.concat(query.pipe(operators_1.withLatestFrom(page), operators_1.debounceTime(500), operators_1.distinctUntilChanged(), operators_1.switchMap(function (_a) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"unsplash.js","sourceRoot":"","sources":["../../../src/datastores/unsplash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"unsplash.js","sourceRoot":"","sources":["../../../src/datastores/unsplash.ts"],"names":[],"mappings":";;;;;;AAAA,oEAA6C;AAC7C,6BAAiE;AACjE,4CAAmG;AAMnG,IAAM,WAAW,GAAG,UAAC,KAAa,EAAE,IAAY,EAAE,OAAe;IAC/D,OAAA,YAAK,CAAC;QACJ,OAAA,gBAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB,GAAG,EAAE,0CAAwC,kBAAkB,CAC7D,KAAK,CACN,cAAS,IAAI,kBAAa,OAAS;YACpC,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,KAAK;SACd,CAAC;IANF,CAME,CACH;AARD,CAQC,CAAA;AAEH,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,IAAY,EAAE,OAAe;IAC5D,OAAA,YAAK,CAAC;QACJ,OAAA,gBAAM,CAAC,UAAU,CAAC,OAAO,CAAC;YACxB,GAAG,EAAE,sCAAoC,IAAI,cAAS,IAAI,kBAAa,OAAS;YAChF,eAAe,EAAE,IAAI;YACrB,MAAM,EAAE,KAAK;SACd,CAAC;IAJF,CAIE,CACH;AAND,CAMC,CAAA;AAEH,SAAgB,gBAAgB,CAAC,KAAoB;IACnD,IAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CACvD,0BAA0B,EAC1B,kBAAkB,CACnB,CAAA;IACD,OAAO,gBAAM;SACV,OAAO,CAAC;QACP,GAAG,EAAE,WAAW;QAChB,eAAe,EAAE,IAAI;QACrB,MAAM,EAAE,KAAK;KACd,CAAC;SACD,IAAI,CAAC,UAAC,MAAuB;QAC5B,OAAO,MAAM,CAAC,GAAG,CAAA;IACnB,CAAC,CAAC,CAAA;AACN,CAAC;AAdD,4CAcC;AAEY,QAAA,YAAY,GAAG,gBAAM,CAAA;AAErB,QAAA,MAAM,GAAG,UACpB,KAAoB,EACpB,IAAiB,EACjB,cAAsB;IAEtB,OAAO,aAAM,CACX,KAAK,CAAC,IAAI,CACR,0BAAc,CAAC,IAAI,CAAC,EACpB,wBAAY,CAAC,GAAG,CAAC,EACjB,gCAAoB,EAAE,EACtB,qBAAS,CAAC,UAAC,EAAM;YAAL,CAAC,QAAA,EAAE,CAAC,QAAA;QACd,IAAI,CAAC,EAAE;YACL,OAAO,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,CAC3C,gCAAoB,EAAE,EACtB,eAAG,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,OAAO,EAAd,CAAc,CAAC,CAC9B,CAAA;SACF;QACD,OAAO,SAAS,CAAC,SAAS,EAAE,CAAC,EAAE,cAAc,CAAC,CAAA;IAChD,CAAC,CAAC,CACH,CACF,CAAA;AACH,CAAC,CAAA"}
|