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.
|
|
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.
|
|
20
|
-
"react-dom": "^17.0"
|
|
19
|
+
"react": "^16.8.0 || 17.x"
|
|
21
20
|
},
|
|
22
21
|
"husky": {
|
|
23
22
|
"hooks": {
|