sanity-plugin-aprimo 0.4.1 → 0.4.2

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.
@@ -105,7 +105,7 @@ var AprimoWidget = props => {
105
105
 
106
106
  var setAsset = asset => {
107
107
  asset._key = value && value._key ? value._key : (0, _nanoid.nanoid)();
108
- asset._type = type;
108
+ asset._type = type.name;
109
109
  onChange(_patchEvent.default.from(asset ? (0, _patchEvent.set)(asset) : (0, _patchEvent.unset)()));
110
110
  };
111
111
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/AprimoWidget.tsx"],"names":["SetupButtonContainer","styled","div","AprimoWidget","props","value","type","markers","level","readOnly","presence","onChange","removeValue","PatchEvent","from","setRenditions","showSettings","setShowSettings","isLoading","setIsLoading","namespace","secrets","token","setToken","renditions","setAsset","asset","_key","_type","fetchToken","localStorage","getItem","handleMessageEvent","event","origin","tenantName","data","result","selection","window","addEventListener","removeEventListener","fetchRenditions","id","e","action","selectType","changeRendition","currentTarget","renditionId","renditionObj","find","rendition","newVal","SetupIcon","title","description","textAlign"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react'\nimport PatchEvent, { set, unset } from 'part:@sanity/form-builder/patch-event'\n//TODO: pjut all these in sanity-ui\nimport ButtonGrid from 'part:@sanity/components/buttons/button-grid'\nimport Button from 'part:@sanity/components/buttons/default'\nimport Fieldset from 'part:@sanity/components/fieldsets/default'\nimport SetupIcon from 'part:@sanity/base/plugin-icon'\nimport { Marker } from '@sanity/types'\n\nimport styled from 'styled-components'\nimport AprimoPreview from './AprimoPreview'\nimport { useSecrets } from 'sanity-secrets'\nimport { nanoid } from 'nanoid'\n\nimport SecretsConfigView, { Secrets, namespace } from './SecretsConfigView'\nimport { openSelector, setAuthToken, getRenditions } from '../utils'\nimport { RenditionSelector } from './RenditionSelector'\n\nconst SetupButtonContainer = styled.div`\n position: relative;\n display: block;\n font-size: 0.8em;\n transform: translate(0%, -10%);\n`\n\ntype Props = {\n type: Record<string, any>\n onChange: (patches: any) => void\n value: any | undefined\n level: number\n readOnly: boolean\n markers: Marker[]\n presence: any[]\n}\n\nconst AprimoWidget = (props: Props) => {\n const { value, type, markers, level, readOnly, presence, onChange } = props\n\n const removeValue = () => {\n onChange(PatchEvent.from([unset()]))\n setRenditions([])\n }\n\n const [showSettings, setShowSettings] = useState(false)\n\n //this keeps track of which component is requesting an asset\n const [isLoading, setIsLoading] = useState(false)\n\n const { secrets } = useSecrets<Secrets>(namespace)\n const [token, setToken] = useState<string | null>(null)\n const [renditions, setRenditions] = useState<Record<string, any>[]>([])\n\n const setAsset = (asset: Record<string, any>) => {\n asset._key = value && value._key ? value._key : nanoid()\n asset._type = type\n onChange(PatchEvent.from(asset ? set(asset) : unset()))\n }\n\n useEffect(() => {\n const fetchToken = async () => {\n let token = localStorage.getItem('aprimoToken') as string\n if (!token && secrets) {\n await setAuthToken(secrets)\n token = localStorage.getItem('aprimoToken') as string\n }\n setToken(token)\n }\n\n fetchToken()\n }, [value, secrets])\n\n useEffect(() => {\n const handleMessageEvent = async (event: MessageEvent) => {\n // Ensure only messages from the Aprimo Content Selector are handled\n if (\n secrets &&\n event.origin === `https://${secrets.tenantName}.dam.aprimo.com`\n ) {\n //if cancel, get out of fetching state\n if (event.data.result === 'cancel') {\n setIsLoading(false)\n return\n } else if (\n event.data.selection &&\n event.data.selection[0] &&\n isLoading\n ) {\n setAsset(event.data.selection[0])\n setIsLoading(false)\n }\n }\n }\n\n window.addEventListener('message', handleMessageEvent)\n //cleanup\n return () => window.removeEventListener('message', handleMessageEvent)\n }, [secrets, isLoading])\n\n useEffect(() => {\n const fetchRenditions = async () => {\n if (token && secrets && value && value.id) {\n try {\n const renditions = await getRenditions(secrets, token, value.id)\n setRenditions(renditions)\n } catch (e) {\n //thrown for 401\n //reset the token, which will rerun this callback\n await setAuthToken(secrets)\n const token = localStorage.getItem('aprimoToken') as string\n setToken(token)\n }\n }\n }\n fetchRenditions()\n }, [value, secrets, token])\n\n const action = (selectType: string) =>\n secrets\n ? () => {\n setIsLoading(true)\n openSelector(secrets.tenantName, selectType)\n }\n : () => setShowSettings(true)\n\n const changeRendition = (event: React.ChangeEvent<HTMLSelectElement>) => {\n if (event && event.currentTarget && event.currentTarget.value) {\n const renditionId = event.currentTarget.value\n const renditionObj = renditions.find(\n (rendition: Record<string, any>) => rendition.id === renditionId\n )\n const newVal = { ...value, ...{ rendition: renditionObj } }\n onChange(PatchEvent.from(newVal ? set(newVal) : unset()))\n }\n }\n\n return (\n <div>\n {showSettings && (\n <SecretsConfigView onClose={() => setShowSettings(false)} />\n )}\n <SetupButtonContainer>\n <Button\n color=\"primary\"\n icon={SetupIcon}\n kind=\"simple\"\n title=\"Configure\"\n tabIndex={1}\n onClick={() => setShowSettings(true)}\n />\n </SetupButtonContainer>\n <Fieldset\n markers={markers}\n presence={presence}\n legend={type.title}\n description={type.description}\n level={level}\n >\n <div style={{ textAlign: 'center' }}>\n <AprimoPreview value={value} />\n </div>\n\n <ButtonGrid align=\"start\">\n <Button\n disabled={readOnly}\n inverted\n title=\"Select an asset\"\n kind=\"default\"\n onClick={action('single')}\n >\n Select…\n </Button>\n <Button\n disabled={readOnly || !value}\n color=\"danger\"\n inverted\n title=\"Remove asset\"\n onClick={removeValue}\n >\n Remove\n </Button>\n </ButtonGrid>\n {value && (\n <RenditionSelector\n changeRendition={changeRendition}\n renditions={renditions}\n currentRendition={value && value.rendition}\n />\n )}\n </Fieldset>\n </div>\n )\n}\n\nexport default AprimoWidget\n"],"file":"AprimoWidget.js"}
1
+ {"version":3,"sources":["../../src/components/AprimoWidget.tsx"],"names":["SetupButtonContainer","styled","div","AprimoWidget","props","value","type","markers","level","readOnly","presence","onChange","removeValue","PatchEvent","from","setRenditions","showSettings","setShowSettings","isLoading","setIsLoading","namespace","secrets","token","setToken","renditions","setAsset","asset","_key","_type","name","fetchToken","localStorage","getItem","handleMessageEvent","event","origin","tenantName","data","result","selection","window","addEventListener","removeEventListener","fetchRenditions","id","e","action","selectType","changeRendition","currentTarget","renditionId","renditionObj","find","rendition","newVal","SetupIcon","title","description","textAlign"],"mappings":"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","sourcesContent":["import React, { useEffect, useState } from 'react'\nimport PatchEvent, { set, unset } from 'part:@sanity/form-builder/patch-event'\n//TODO: pjut all these in sanity-ui\nimport ButtonGrid from 'part:@sanity/components/buttons/button-grid'\nimport Button from 'part:@sanity/components/buttons/default'\nimport Fieldset from 'part:@sanity/components/fieldsets/default'\nimport SetupIcon from 'part:@sanity/base/plugin-icon'\nimport { Marker } from '@sanity/types'\n\nimport styled from 'styled-components'\nimport AprimoPreview from './AprimoPreview'\nimport { useSecrets } from 'sanity-secrets'\nimport { nanoid } from 'nanoid'\n\nimport SecretsConfigView, { Secrets, namespace } from './SecretsConfigView'\nimport { openSelector, setAuthToken, getRenditions } from '../utils'\nimport { RenditionSelector } from './RenditionSelector'\n\nconst SetupButtonContainer = styled.div`\n position: relative;\n display: block;\n font-size: 0.8em;\n transform: translate(0%, -10%);\n`\n\ntype Props = {\n type: Record<string, any>\n onChange: (patches: any) => void\n value: any | undefined\n level: number\n readOnly: boolean\n markers: Marker[]\n presence: any[]\n}\n\nconst AprimoWidget = (props: Props) => {\n const { value, type, markers, level, readOnly, presence, onChange } = props\n\n const removeValue = () => {\n onChange(PatchEvent.from([unset()]))\n setRenditions([])\n }\n\n const [showSettings, setShowSettings] = useState(false)\n\n //this keeps track of which component is requesting an asset\n const [isLoading, setIsLoading] = useState(false)\n\n const { secrets } = useSecrets<Secrets>(namespace)\n const [token, setToken] = useState<string | null>(null)\n const [renditions, setRenditions] = useState<Record<string, any>[]>([])\n\n const setAsset = (asset: Record<string, any>) => {\n asset._key = value && value._key ? value._key : nanoid()\n asset._type = type.name\n onChange(PatchEvent.from(asset ? set(asset) : unset()))\n }\n\n useEffect(() => {\n const fetchToken = async () => {\n let token = localStorage.getItem('aprimoToken') as string\n if (!token && secrets) {\n await setAuthToken(secrets)\n token = localStorage.getItem('aprimoToken') as string\n }\n setToken(token)\n }\n\n fetchToken()\n }, [value, secrets])\n\n useEffect(() => {\n const handleMessageEvent = async (event: MessageEvent) => {\n // Ensure only messages from the Aprimo Content Selector are handled\n if (\n secrets &&\n event.origin === `https://${secrets.tenantName}.dam.aprimo.com`\n ) {\n //if cancel, get out of fetching state\n if (event.data.result === 'cancel') {\n setIsLoading(false)\n return\n } else if (\n event.data.selection &&\n event.data.selection[0] &&\n isLoading\n ) {\n setAsset(event.data.selection[0])\n setIsLoading(false)\n }\n }\n }\n\n window.addEventListener('message', handleMessageEvent)\n //cleanup\n return () => window.removeEventListener('message', handleMessageEvent)\n }, [secrets, isLoading])\n\n useEffect(() => {\n const fetchRenditions = async () => {\n if (token && secrets && value && value.id) {\n try {\n const renditions = await getRenditions(secrets, token, value.id)\n setRenditions(renditions)\n } catch (e) {\n //thrown for 401\n //reset the token, which will rerun this callback\n await setAuthToken(secrets)\n const token = localStorage.getItem('aprimoToken') as string\n setToken(token)\n }\n }\n }\n fetchRenditions()\n }, [value, secrets, token])\n\n const action = (selectType: string) =>\n secrets\n ? () => {\n setIsLoading(true)\n openSelector(secrets.tenantName, selectType)\n }\n : () => setShowSettings(true)\n\n const changeRendition = (event: React.ChangeEvent<HTMLSelectElement>) => {\n if (event && event.currentTarget && event.currentTarget.value) {\n const renditionId = event.currentTarget.value\n const renditionObj = renditions.find(\n (rendition: Record<string, any>) => rendition.id === renditionId\n )\n const newVal = { ...value, ...{ rendition: renditionObj } }\n onChange(PatchEvent.from(newVal ? set(newVal) : unset()))\n }\n }\n\n return (\n <div>\n {showSettings && (\n <SecretsConfigView onClose={() => setShowSettings(false)} />\n )}\n <SetupButtonContainer>\n <Button\n color=\"primary\"\n icon={SetupIcon}\n kind=\"simple\"\n title=\"Configure\"\n tabIndex={1}\n onClick={() => setShowSettings(true)}\n />\n </SetupButtonContainer>\n <Fieldset\n markers={markers}\n presence={presence}\n legend={type.title}\n description={type.description}\n level={level}\n >\n <div style={{ textAlign: 'center' }}>\n <AprimoPreview value={value} />\n </div>\n\n <ButtonGrid align=\"start\">\n <Button\n disabled={readOnly}\n inverted\n title=\"Select an asset\"\n kind=\"default\"\n onClick={action('single')}\n >\n Select…\n </Button>\n <Button\n disabled={readOnly || !value}\n color=\"danger\"\n inverted\n title=\"Remove asset\"\n onClick={removeValue}\n >\n Remove\n </Button>\n </ButtonGrid>\n {value && (\n <RenditionSelector\n changeRendition={changeRendition}\n renditions={renditions}\n currentRendition={value && value.rendition}\n />\n )}\n </Fieldset>\n </div>\n )\n}\n\nexport default AprimoWidget\n"],"file":"AprimoWidget.js"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.4.1",
2
+ "version": "0.4.2",
3
3
  "license": "MIT",
4
4
  "files": [
5
5
  "dist",
@@ -16,8 +16,7 @@
16
16
  "@sanity/base": "^2.19.0",
17
17
  "@sanity/field": "^2.19.0",
18
18
  "@sanity/form-builder": "^2.19.0",
19
- "react": "^17.0",
20
- "react-dom": "^17.0"
19
+ "react": "^16.8.0 || 17.x"
21
20
  },
22
21
  "husky": {
23
22
  "hooks": {