sanity-plugin-asset-source-unsplash
7.0.157.0.16
dist/_chunks-es/UnsplashPhotoGallery.js+
dist/_chunks-es/UnsplashPhotoGallery.jsNew file+171
Index: package/dist/_chunks-es/UnsplashPhotoGallery.js
===================================================================
--- package/dist/_chunks-es/UnsplashPhotoGallery.js
+++ package/dist/_chunks-es/UnsplashPhotoGallery.js
@@ -0,0 +1,171 @@
+import { t as Loader } from "./Loader.js";
+import "sanity";
+import { c } from "react/compiler-runtime";
+import { Fragment, jsx, jsxs } from "react/jsx-runtime";
+import { Box, Card, Text } from "@sanity/ui";
+import { Activity, use } from "react";
+import { styled } from "styled-components";
+import "react-photo-album/rows.css";
+import { RowsPhotoAlbum } from "react-photo-album";
+import InfiniteScroll from "react-photo-album/scroll";
+import { getTheme_v2 } from "@sanity/ui/theme";
+async function fetchDownloadUrl(client, photo) {
+ let downloadUrl = photo.links.download_location.replace("https://api.unsplash.com", "/addons/unsplash"), { url } = await client.request({
+ url: downloadUrl,
+ withCredentials: !0,
+ method: "GET"
+ });
+ return url;
+}
+const CreditLineLink = styled.a.withConfig({
+ displayName: "CreditLineLink",
+ componentId: "sc-7wgffj-0"
+})`text-decoration:none;cursor:pointer;&:hover,&:focus{[data-ui='Text']{text-decoration:underline;}}`, CreditLine = styled(Card).withConfig({
+ displayName: "CreditLine",
+ componentId: "sc-7wgffj-1"
+})`${({ theme }) => {
+ let v2 = getTheme_v2({ sanity: theme.sanity });
+ return `
+ --creditline-fg: ${v2.color.fg};
+ --creditline-bg: ${v2.color.bg};
+ `;
+}};-webkit-user-drag:none;position:absolute;background-color:var(--creditline-bg);bottom:0;[data-ui='Text']{color:var(--creditline-fg);}`;
+function UnsplashCreditLine(t0) {
+ let $ = c(11), { link, id, userName } = t0, T0, t1;
+ if ($[0] !== link) {
+ let url = new URL(link);
+ url.searchParams.set("utm_source", "sanity-plugin-asset-source-unsplash"), url.searchParams.set("utm_medium", "referral"), T0 = CreditLineLink, t1 = url.toString(), $[0] = link, $[1] = T0, $[2] = t1;
+ } else T0 = $[1], t1 = $[2];
+ let t2 = `Open image by ${userName} on Unsplash in new window`, t3;
+ $[3] !== t2 || $[4] !== userName ? (t3 = /* @__PURE__ */ jsx(CreditLine, {
+ padding: 1,
+ radius: 1,
+ margin: 1,
+ children: /* @__PURE__ */ jsxs(Text, {
+ size: 0,
+ title: t2,
+ children: ["By @", userName]
+ })
+ }), $[3] = t2, $[4] = userName, $[5] = t3) : t3 = $[5];
+ let t4;
+ return $[6] !== T0 || $[7] !== id || $[8] !== t1 || $[9] !== t3 ? (t4 = /* @__PURE__ */ jsx(T0, {
+ href: t1,
+ target: id,
+ rel: "noreferrer noopener",
+ onClick: _temp$1,
+ children: t3
+ }), $[6] = T0, $[7] = id, $[8] = t1, $[9] = t3, $[10] = t4) : t4 = $[10], t4;
+}
+function _temp$1(event) {
+ return event.stopPropagation();
+}
+function mapUnsplashToPhotoAlbumPhoto(photo) {
+ return {
+ src: photo.urls.small,
+ width: photo.width,
+ height: photo.height,
+ key: photo.id,
+ data: photo
+ };
+}
+function UnsplashAssetSourceGallery(t0) {
+ let $ = c(33), { client, query, fetcher, scrollContainerRef, onSelect, initialDataPromise } = t0, data = use(initialDataPromise), t1 = data.total === 0 ? "visible" : "hidden", t2;
+ $[0] === query ? t2 = $[1] : (t2 = /* @__PURE__ */ jsx(Box, {
+ paddingX: 2,
+ paddingY: 3,
+ children: /* @__PURE__ */ jsxs(Text, {
+ size: 1,
+ muted: !0,
+ children: [
+ "No results found for \"",
+ query,
+ "\""
+ ]
+ })
+ }), $[0] = query, $[1] = t2);
+ let t3;
+ $[2] !== t1 || $[3] !== t2 ? (t3 = /* @__PURE__ */ jsx(Activity, {
+ mode: t1,
+ children: t2
+ }), $[2] = t1, $[3] = t2, $[4] = t3) : t3 = $[4];
+ let t4 = data.total === 0 ? "hidden" : "visible", t5;
+ $[5] === scrollContainerRef ? t5 = $[6] : (t5 = () => scrollContainerRef.current, $[5] = scrollContainerRef, $[6] = t5);
+ let t6;
+ $[7] === data.results ? t6 = $[8] : (t6 = data.results.map(mapUnsplashToPhotoAlbumPhoto), $[7] = data.results, $[8] = t6);
+ let t7;
+ $[9] !== fetcher || $[10] !== query ? (t7 = async (index) => {
+ let { results, total_pages } = await fetcher(query, index + 1);
+ return index < total_pages ? results.map(mapUnsplashToPhotoAlbumPhoto) : null;
+ }, $[9] = fetcher, $[10] = query, $[11] = t7) : t7 = $[11];
+ let t8;
+ $[12] === Symbol.for("react.memo_cache_sentinel") ? (t8 = /* @__PURE__ */ jsx(Loader, {}), $[12] = t8) : t8 = $[12];
+ let t9;
+ $[13] === query ? t9 = $[14] : (t9 = query && /* @__PURE__ */ jsx(Box, {
+ paddingX: 2,
+ paddingY: 3,
+ children: /* @__PURE__ */ jsx(Text, {
+ size: 1,
+ muted: !0,
+ children: "No more results"
+ })
+ }), $[13] = query, $[14] = t9);
+ let t10;
+ $[15] !== client || $[16] !== onSelect ? (t10 = async (t11) => {
+ let { photo: t12 } = t11, { data: photo } = t12, downloadUrl = await fetchDownloadUrl(client, photo), description = photo.description || void 0, asset = {
+ kind: "url",
+ value: downloadUrl,
+ assetDocumentProps: {
+ _type: "sanity.imageAsset",
+ source: {
+ name: "unsplash",
+ id: photo.id,
+ url: photo.links.html
+ },
+ description,
+ creditLine: `${photo.user.name} by Unsplash`
+ }
+ };
+ return onSelect([asset]);
+ }, $[15] = client, $[16] = onSelect, $[17] = t10) : t10 = $[17];
+ let t11;
+ $[18] === Symbol.for("react.memo_cache_sentinel") ? (t11 = [], $[18] = t11) : t11 = $[18];
+ let t12;
+ $[19] === Symbol.for("react.memo_cache_sentinel") ? (t12 = /* @__PURE__ */ jsx(RowsPhotoAlbum, {
+ photos: t11,
+ spacing: 2,
+ padding: 1,
+ targetRowHeight: _temp,
+ render: { extras: _temp2 },
+ componentsProps: { container: { style: { marginBottom: 2 } } }
+ }), $[19] = t12) : t12 = $[19];
+ let t13;
+ $[20] !== query || $[21] !== t10 || $[22] !== t5 || $[23] !== t6 || $[24] !== t7 || $[25] !== t9 ? (t13 = /* @__PURE__ */ jsx(InfiniteScroll, {
+ scrollContainer: t5,
+ photos: t6,
+ fetch: t7,
+ loading: t8,
+ finished: t9,
+ onClick: t10,
+ children: t12
+ }, query), $[20] = query, $[21] = t10, $[22] = t5, $[23] = t6, $[24] = t7, $[25] = t9, $[26] = t13) : t13 = $[26];
+ let t14;
+ $[27] !== t13 || $[28] !== t4 ? (t14 = /* @__PURE__ */ jsx(Activity, {
+ mode: t4,
+ children: t13
+ }), $[27] = t13, $[28] = t4, $[29] = t14) : t14 = $[29];
+ let t15;
+ return $[30] !== t14 || $[31] !== t3 ? (t15 = /* @__PURE__ */ jsxs(Fragment, { children: [t3, t14] }), $[30] = t14, $[31] = t3, $[32] = t15) : t15 = $[32], t15;
+}
+function _temp2(_, context) {
+ return /* @__PURE__ */ jsx(UnsplashCreditLine, {
+ id: context.photo.data.id,
+ link: context.photo.data.links.html,
+ userName: context.photo.data.user.username
+ });
+}
+function _temp(width) {
+ return width < 300 ? 150 : width < 600 ? 200 : 300;
+}
+export { UnsplashAssetSourceGallery as default };
+
+//# sourceMappingURL=UnsplashPhotoGallery.js.map
\ No newline at end of file