strapi-plugin-i-relate-to-this 0.1.0 → 0.1.1

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.
@@ -46,8 +46,8 @@ const List = () => {
46
46
  if (!loaded) {
47
47
  return null;
48
48
  }
49
- if (!items) {
50
- return null;
49
+ if (!items || Object.keys(items).length === 0) {
50
+ return "No relations found";
51
51
  }
52
52
  return Object.entries(items).map(([contentTypeTitle, entries]) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
53
53
  /* @__PURE__ */ jsxRuntime.jsx("h2", { style: { paddingBottom: "0.5rem" }, children: contentTypeTitle }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../admin/src/components/list.jsx","../../admin/src/components/panel.jsx","../../admin/src/index.js"],"sourcesContent":["import React, { useEffect, useCallback, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { Button, Tooltip } from '@strapi/design-system';\nimport {\n getFetchClient,\n useNotification,\n} from '@strapi/strapi/admin';\nimport { Link } from 'react-router-dom';\n\nconst useThisCode = true;\n\nconst ConditionalTooltip = ({ isShown, label, children }) => {\n if (isShown) {\n return <Tooltip label={label}>{children}</Tooltip>;\n }\n\n return children;\n};\n\nconst List = () => {\n const { formatMessage } = useIntl();\n const { id, slug } = useParams();\n const [params] = useSearchParams();\n const { toggleNotification } = useNotification();\n const [items, setItems] = useState(null);\n const [loaded, setLoaded] = useState(false);\n const status = params.get('status') || 'draft';\n\n const getter = useCallback(async () => {\n const { get } = getFetchClient();\n let response;\n const endpoint = `/i-relate-to-this/list/${slug}/${id}/${status}`;\n try {\n response = await get(endpoint, { id });\n } catch (error) {\n return toggleNotification({\n type: 'warning',\n message: formatMessage({\n id: 'Failed to load list',\n defaultMessage: error,\n }),\n });\n }\n setItems(response.data.items);\n setLoaded(true);\n return null;\n }, [formatMessage, id, toggleNotification, slug, status, setItems]);\n\n useEffect(() => {\n // single types don't have an id\n // on create there are never relations\n if (useThisCode && id && id !== 'create') {\n getter();\n }\n }, [id, getter]);\n\n if (!useThisCode) {\n return null;\n }\n\n if (!loaded) {\n return null;\n }\n\n if (!items) {\n return null;\n }\n\n return Object.entries(items).map(([contentTypeTitle, entries]) => (\n <div>\n <h2 style={{ paddingBottom: '0.5rem' }}>{contentTypeTitle}</h2>\n {entries.map(({\n documentId,\n title,\n uid,\n isPublished,\n }) => (\n <div key={documentId} style={{ paddingBottom: '0.5rem' }}>\n <ConditionalTooltip isShown={!isPublished} label={`Current entry is not linked to the published version of ${title}, please publish ${title} to publish the relation`}>\n <Button\n variant={!isPublished ? 'danger' : 'tertiary'}\n tag={Link}\n to={{ pathname: `/content-manager/collection-types/${uid}/${documentId}` }}\n >\n {!isPublished && '⚠'} {title || documentId}\n </Button>\n </ConditionalTooltip>\n </div>\n ))}\n </div>\n ));\n};\n\nexport default List;\n","import List from \"./list\";\n\nconst Panel = ({ model, documentId, document }) => ({\n title: 'Relations to this entry',\n content: <List />,\n});\n\nexport default Panel;","import Panel from './components/panel';\n\nexport default {\n bootstrap(app) {\n // execute some bootstrap code\n app.getPlugin('content-manager').apis.addEditViewSidePanel([Panel]);\n },\n register() {}\n};\n"],"names":["jsx","Tooltip","useIntl","useParams","useSearchParams","useNotification","useState","useCallback","getFetchClient","useEffect","jsxs","Button","Link"],"mappings":";;;;;;;AAYA,MAAM,qBAAqB,CAAC,EAAE,SAAS,OAAO,eAAe;AAC3D,MAAI,SAAS;AACX,WAAOA,2BAAAA,IAACC,aAAAA,SAAA,EAAQ,OAAe,SAAA,CAAS;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,MAAM,OAAO,MAAM;AACjB,QAAM,EAAE,cAAA,IAAkBC,kBAAA;AAC1B,QAAM,EAAE,IAAI,KAAA,IAASC,yBAAA;AACrB,QAAM,CAAC,MAAM,IAAIC,+BAAA;AACjB,QAAM,EAAE,mBAAA,IAAuBC,sBAAA;AAC/B,QAAM,CAAC,OAAO,QAAQ,IAAIC,MAAAA,SAAS,IAAI;AACvC,QAAM,CAAC,QAAQ,SAAS,IAAIA,MAAAA,SAAS,KAAK;AAC1C,QAAM,SAAS,OAAO,IAAI,QAAQ,KAAK;AAEvC,QAAM,SAASC,MAAAA,YAAY,YAAY;AACrC,UAAM,EAAE,IAAA,IAAQC,qBAAA;AAChB,QAAI;AACJ,UAAM,WAAW,0BAA0B,IAAI,IAAI,EAAE,IAAI,MAAM;AAC/D,QAAI;AACF,iBAAW,MAAM,IAAI,UAAU,EAAE,IAAI;AAAA,IACvC,SAAS,OAAO;AACd,aAAO,mBAAmB;AAAA,QACxB,MAAM;AAAA,QACN,SAAS,cAAc;AAAA,UACrB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA,CACF;AAAA,IACH;AACA,aAAS,SAAS,KAAK,KAAK;AAC5B,cAAU,IAAI;AACd,WAAO;AAAA,EACT,GAAG,CAAC,eAAe,IAAI,oBAAoB,MAAM,QAAQ,QAAQ,CAAC;AAElEC,QAAAA,UAAU,MAAM;AAGd,QAAmB,MAAM,OAAO,UAAU;AACxC,aAAA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,IAAI,MAAM,CAAC;AAMf,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,kBAAkB,OAAO,MAC1DC,2BAAAA,KAAC,OAAA,EACC,UAAA;AAAA,IAAAV,+BAAC,QAAG,OAAO,EAAE,eAAe,SAAA,GAAa,UAAA,kBAAiB;AAAA,IACzD,QAAQ,IAAI,CAAC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,MAEAA,2BAAAA,IAAC,OAAA,EAAqB,OAAO,EAAE,eAAe,YAC5C,UAAAA,2BAAAA,IAAC,oBAAA,EAAmB,SAAS,CAAC,aAAa,OAAO,2DAA2D,KAAK,oBAAoB,KAAK,4BACzI,UAAAU,2BAAAA;AAAAA,MAACC,aAAAA;AAAAA,MAAA;AAAA,QACC,SAAS,CAAC,cAAc,WAAW;AAAA,QACnC,KAAKC,eAAAA;AAAAA,QACL,IAAI,EAAE,UAAU,qCAAqC,GAAG,IAAI,UAAU,GAAA;AAAA,QAErE,UAAA;AAAA,UAAA,CAAC,eAAe;AAAA,UAAI;AAAA,UAAE,SAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EAClC,CACF,EAAA,GATQ,UAUV,CACD;AAAA,EAAA,EAAA,CACH,CACD;AACH;AC1FA,MAAM,QAAQ,CAAC,EAAE,OAAO,YAAY,gBAAgB;AAAA,EAClD,OAAO;AAAA,EACP,wCAAU,MAAA,CAAA,CAAK;AACjB;ACHA,MAAA,QAAe;AAAA,EACb,UAAU,KAAK;AAEb,QAAI,UAAU,iBAAiB,EAAE,KAAK,qBAAqB,CAAC,KAAK,CAAC;AAAA,EACpE;AAAA,EACA,WAAW;AAAA,EAAC;AACd;;"}
1
+ {"version":3,"file":"index.js","sources":["../../admin/src/components/list.jsx","../../admin/src/components/panel.jsx","../../admin/src/index.js"],"sourcesContent":["import React, { useEffect, useCallback, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { Button, Tooltip } from '@strapi/design-system';\nimport {\n getFetchClient,\n useNotification,\n} from '@strapi/strapi/admin';\nimport { Link } from 'react-router-dom';\n\nconst useThisCode = true;\n\nconst ConditionalTooltip = ({ isShown, label, children }) => {\n if (isShown) {\n return <Tooltip label={label}>{children}</Tooltip>;\n }\n\n return children;\n};\n\nconst List = () => {\n const { formatMessage } = useIntl();\n const { id, slug } = useParams();\n const [params] = useSearchParams();\n const { toggleNotification } = useNotification();\n const [items, setItems] = useState(null);\n const [loaded, setLoaded] = useState(false);\n const status = params.get('status') || 'draft';\n\n const getter = useCallback(async () => {\n const { get } = getFetchClient();\n let response;\n const endpoint = `/i-relate-to-this/list/${slug}/${id}/${status}`;\n try {\n response = await get(endpoint, { id });\n } catch (error) {\n return toggleNotification({\n type: 'warning',\n message: formatMessage({\n id: 'Failed to load list',\n defaultMessage: error,\n }),\n });\n }\n setItems(response.data.items);\n setLoaded(true);\n return null;\n }, [formatMessage, id, toggleNotification, slug, status, setItems]);\n\n useEffect(() => {\n // single types don't have an id\n // on create there are never relations\n if (useThisCode && id && id !== 'create') {\n getter();\n }\n }, [id, getter]);\n\n if (!useThisCode) {\n return null;\n }\n\n if (!loaded) {\n return null;\n }\n\n if (!items || Object.keys(items).length === 0) {\n return 'No relations found';\n }\n\n return Object.entries(items).map(([contentTypeTitle, entries]) => (\n <div>\n <h2 style={{ paddingBottom: '0.5rem' }}>{contentTypeTitle}</h2>\n {entries.map(({\n documentId,\n title,\n uid,\n isPublished,\n }) => (\n <div key={documentId} style={{ paddingBottom: '0.5rem' }}>\n <ConditionalTooltip isShown={!isPublished} label={`Current entry is not linked to the published version of ${title}, please publish ${title} to publish the relation`}>\n <Button\n variant={!isPublished ? 'danger' : 'tertiary'}\n tag={Link}\n to={{ pathname: `/content-manager/collection-types/${uid}/${documentId}` }}\n >\n {!isPublished && '⚠'} {title || documentId}\n </Button>\n </ConditionalTooltip>\n </div>\n ))}\n </div>\n ));\n};\n\nexport default List;\n","import List from \"./list\";\n\nconst Panel = ({ model, documentId, document }) => ({\n title: 'Relations to this entry',\n content: <List />,\n});\n\nexport default Panel;","import Panel from './components/panel';\n\nexport default {\n bootstrap(app) {\n // execute some bootstrap code\n app.getPlugin('content-manager').apis.addEditViewSidePanel([Panel]);\n },\n register() {}\n};\n"],"names":["jsx","Tooltip","useIntl","useParams","useSearchParams","useNotification","useState","useCallback","getFetchClient","useEffect","jsxs","Button","Link"],"mappings":";;;;;;;AAYA,MAAM,qBAAqB,CAAC,EAAE,SAAS,OAAO,eAAe;AAC3D,MAAI,SAAS;AACX,WAAOA,2BAAAA,IAACC,aAAAA,SAAA,EAAQ,OAAe,SAAA,CAAS;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,MAAM,OAAO,MAAM;AACjB,QAAM,EAAE,cAAA,IAAkBC,kBAAA;AAC1B,QAAM,EAAE,IAAI,KAAA,IAASC,yBAAA;AACrB,QAAM,CAAC,MAAM,IAAIC,+BAAA;AACjB,QAAM,EAAE,mBAAA,IAAuBC,sBAAA;AAC/B,QAAM,CAAC,OAAO,QAAQ,IAAIC,MAAAA,SAAS,IAAI;AACvC,QAAM,CAAC,QAAQ,SAAS,IAAIA,MAAAA,SAAS,KAAK;AAC1C,QAAM,SAAS,OAAO,IAAI,QAAQ,KAAK;AAEvC,QAAM,SAASC,MAAAA,YAAY,YAAY;AACrC,UAAM,EAAE,IAAA,IAAQC,qBAAA;AAChB,QAAI;AACJ,UAAM,WAAW,0BAA0B,IAAI,IAAI,EAAE,IAAI,MAAM;AAC/D,QAAI;AACF,iBAAW,MAAM,IAAI,UAAU,EAAE,IAAI;AAAA,IACvC,SAAS,OAAO;AACd,aAAO,mBAAmB;AAAA,QACxB,MAAM;AAAA,QACN,SAAS,cAAc;AAAA,UACrB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA,CACF;AAAA,IACH;AACA,aAAS,SAAS,KAAK,KAAK;AAC5B,cAAU,IAAI;AACd,WAAO;AAAA,EACT,GAAG,CAAC,eAAe,IAAI,oBAAoB,MAAM,QAAQ,QAAQ,CAAC;AAElEC,QAAAA,UAAU,MAAM;AAGd,QAAmB,MAAM,OAAO,UAAU;AACxC,aAAA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,IAAI,MAAM,CAAC;AAMf,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,SAAS,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AAC7C,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,kBAAkB,OAAO,MAC1DC,2BAAAA,KAAC,OAAA,EACC,UAAA;AAAA,IAAAV,+BAAC,QAAG,OAAO,EAAE,eAAe,SAAA,GAAa,UAAA,kBAAiB;AAAA,IACzD,QAAQ,IAAI,CAAC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,MAEAA,2BAAAA,IAAC,OAAA,EAAqB,OAAO,EAAE,eAAe,YAC5C,UAAAA,2BAAAA,IAAC,oBAAA,EAAmB,SAAS,CAAC,aAAa,OAAO,2DAA2D,KAAK,oBAAoB,KAAK,4BACzI,UAAAU,2BAAAA;AAAAA,MAACC,aAAAA;AAAAA,MAAA;AAAA,QACC,SAAS,CAAC,cAAc,WAAW;AAAA,QACnC,KAAKC,eAAAA;AAAAA,QACL,IAAI,EAAE,UAAU,qCAAqC,GAAG,IAAI,UAAU,GAAA;AAAA,QAErE,UAAA;AAAA,UAAA,CAAC,eAAe;AAAA,UAAI;AAAA,UAAE,SAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EAClC,CACF,EAAA,GATQ,UAUV,CACD;AAAA,EAAA,EAAA,CACH,CACD;AACH;AC1FA,MAAM,QAAQ,CAAC,EAAE,OAAO,YAAY,gBAAgB;AAAA,EAClD,OAAO;AAAA,EACP,wCAAU,MAAA,CAAA,CAAK;AACjB;ACHA,MAAA,QAAe;AAAA,EACb,UAAU,KAAK;AAEb,QAAI,UAAU,iBAAiB,EAAE,KAAK,qBAAqB,CAAC,KAAK,CAAC;AAAA,EACpE;AAAA,EACA,WAAW;AAAA,EAAC;AACd;;"}
@@ -45,8 +45,8 @@ const List = () => {
45
45
  if (!loaded) {
46
46
  return null;
47
47
  }
48
- if (!items) {
49
- return null;
48
+ if (!items || Object.keys(items).length === 0) {
49
+ return "No relations found";
50
50
  }
51
51
  return Object.entries(items).map(([contentTypeTitle, entries]) => /* @__PURE__ */ jsxs("div", { children: [
52
52
  /* @__PURE__ */ jsx("h2", { style: { paddingBottom: "0.5rem" }, children: contentTypeTitle }),
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../admin/src/components/list.jsx","../../admin/src/components/panel.jsx","../../admin/src/index.js"],"sourcesContent":["import React, { useEffect, useCallback, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { Button, Tooltip } from '@strapi/design-system';\nimport {\n getFetchClient,\n useNotification,\n} from '@strapi/strapi/admin';\nimport { Link } from 'react-router-dom';\n\nconst useThisCode = true;\n\nconst ConditionalTooltip = ({ isShown, label, children }) => {\n if (isShown) {\n return <Tooltip label={label}>{children}</Tooltip>;\n }\n\n return children;\n};\n\nconst List = () => {\n const { formatMessage } = useIntl();\n const { id, slug } = useParams();\n const [params] = useSearchParams();\n const { toggleNotification } = useNotification();\n const [items, setItems] = useState(null);\n const [loaded, setLoaded] = useState(false);\n const status = params.get('status') || 'draft';\n\n const getter = useCallback(async () => {\n const { get } = getFetchClient();\n let response;\n const endpoint = `/i-relate-to-this/list/${slug}/${id}/${status}`;\n try {\n response = await get(endpoint, { id });\n } catch (error) {\n return toggleNotification({\n type: 'warning',\n message: formatMessage({\n id: 'Failed to load list',\n defaultMessage: error,\n }),\n });\n }\n setItems(response.data.items);\n setLoaded(true);\n return null;\n }, [formatMessage, id, toggleNotification, slug, status, setItems]);\n\n useEffect(() => {\n // single types don't have an id\n // on create there are never relations\n if (useThisCode && id && id !== 'create') {\n getter();\n }\n }, [id, getter]);\n\n if (!useThisCode) {\n return null;\n }\n\n if (!loaded) {\n return null;\n }\n\n if (!items) {\n return null;\n }\n\n return Object.entries(items).map(([contentTypeTitle, entries]) => (\n <div>\n <h2 style={{ paddingBottom: '0.5rem' }}>{contentTypeTitle}</h2>\n {entries.map(({\n documentId,\n title,\n uid,\n isPublished,\n }) => (\n <div key={documentId} style={{ paddingBottom: '0.5rem' }}>\n <ConditionalTooltip isShown={!isPublished} label={`Current entry is not linked to the published version of ${title}, please publish ${title} to publish the relation`}>\n <Button\n variant={!isPublished ? 'danger' : 'tertiary'}\n tag={Link}\n to={{ pathname: `/content-manager/collection-types/${uid}/${documentId}` }}\n >\n {!isPublished && '⚠'} {title || documentId}\n </Button>\n </ConditionalTooltip>\n </div>\n ))}\n </div>\n ));\n};\n\nexport default List;\n","import List from \"./list\";\n\nconst Panel = ({ model, documentId, document }) => ({\n title: 'Relations to this entry',\n content: <List />,\n});\n\nexport default Panel;","import Panel from './components/panel';\n\nexport default {\n bootstrap(app) {\n // execute some bootstrap code\n app.getPlugin('content-manager').apis.addEditViewSidePanel([Panel]);\n },\n register() {}\n};\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,qBAAqB,CAAC,EAAE,SAAS,OAAO,eAAe;AAC3D,MAAI,SAAS;AACX,WAAO,oBAAC,SAAA,EAAQ,OAAe,SAAA,CAAS;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,MAAM,OAAO,MAAM;AACjB,QAAM,EAAE,cAAA,IAAkB,QAAA;AAC1B,QAAM,EAAE,IAAI,KAAA,IAAS,UAAA;AACrB,QAAM,CAAC,MAAM,IAAI,gBAAA;AACjB,QAAM,EAAE,mBAAA,IAAuB,gBAAA;AAC/B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AACvC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,QAAM,SAAS,OAAO,IAAI,QAAQ,KAAK;AAEvC,QAAM,SAAS,YAAY,YAAY;AACrC,UAAM,EAAE,IAAA,IAAQ,eAAA;AAChB,QAAI;AACJ,UAAM,WAAW,0BAA0B,IAAI,IAAI,EAAE,IAAI,MAAM;AAC/D,QAAI;AACF,iBAAW,MAAM,IAAI,UAAU,EAAE,IAAI;AAAA,IACvC,SAAS,OAAO;AACd,aAAO,mBAAmB;AAAA,QACxB,MAAM;AAAA,QACN,SAAS,cAAc;AAAA,UACrB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA,CACF;AAAA,IACH;AACA,aAAS,SAAS,KAAK,KAAK;AAC5B,cAAU,IAAI;AACd,WAAO;AAAA,EACT,GAAG,CAAC,eAAe,IAAI,oBAAoB,MAAM,QAAQ,QAAQ,CAAC;AAElE,YAAU,MAAM;AAGd,QAAmB,MAAM,OAAO,UAAU;AACxC,aAAA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,IAAI,MAAM,CAAC;AAMf,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,OAAO;AACV,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,kBAAkB,OAAO,MAC1D,qBAAC,OAAA,EACC,UAAA;AAAA,IAAA,oBAAC,QAAG,OAAO,EAAE,eAAe,SAAA,GAAa,UAAA,kBAAiB;AAAA,IACzD,QAAQ,IAAI,CAAC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,MAEA,oBAAC,OAAA,EAAqB,OAAO,EAAE,eAAe,YAC5C,UAAA,oBAAC,oBAAA,EAAmB,SAAS,CAAC,aAAa,OAAO,2DAA2D,KAAK,oBAAoB,KAAK,4BACzI,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,CAAC,cAAc,WAAW;AAAA,QACnC,KAAK;AAAA,QACL,IAAI,EAAE,UAAU,qCAAqC,GAAG,IAAI,UAAU,GAAA;AAAA,QAErE,UAAA;AAAA,UAAA,CAAC,eAAe;AAAA,UAAI;AAAA,UAAE,SAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EAClC,CACF,EAAA,GATQ,UAUV,CACD;AAAA,EAAA,EAAA,CACH,CACD;AACH;AC1FA,MAAM,QAAQ,CAAC,EAAE,OAAO,YAAY,gBAAgB;AAAA,EAClD,OAAO;AAAA,EACP,6BAAU,MAAA,CAAA,CAAK;AACjB;ACHA,MAAA,QAAe;AAAA,EACb,UAAU,KAAK;AAEb,QAAI,UAAU,iBAAiB,EAAE,KAAK,qBAAqB,CAAC,KAAK,CAAC;AAAA,EACpE;AAAA,EACA,WAAW;AAAA,EAAC;AACd;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../admin/src/components/list.jsx","../../admin/src/components/panel.jsx","../../admin/src/index.js"],"sourcesContent":["import React, { useEffect, useCallback, useState } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { Button, Tooltip } from '@strapi/design-system';\nimport {\n getFetchClient,\n useNotification,\n} from '@strapi/strapi/admin';\nimport { Link } from 'react-router-dom';\n\nconst useThisCode = true;\n\nconst ConditionalTooltip = ({ isShown, label, children }) => {\n if (isShown) {\n return <Tooltip label={label}>{children}</Tooltip>;\n }\n\n return children;\n};\n\nconst List = () => {\n const { formatMessage } = useIntl();\n const { id, slug } = useParams();\n const [params] = useSearchParams();\n const { toggleNotification } = useNotification();\n const [items, setItems] = useState(null);\n const [loaded, setLoaded] = useState(false);\n const status = params.get('status') || 'draft';\n\n const getter = useCallback(async () => {\n const { get } = getFetchClient();\n let response;\n const endpoint = `/i-relate-to-this/list/${slug}/${id}/${status}`;\n try {\n response = await get(endpoint, { id });\n } catch (error) {\n return toggleNotification({\n type: 'warning',\n message: formatMessage({\n id: 'Failed to load list',\n defaultMessage: error,\n }),\n });\n }\n setItems(response.data.items);\n setLoaded(true);\n return null;\n }, [formatMessage, id, toggleNotification, slug, status, setItems]);\n\n useEffect(() => {\n // single types don't have an id\n // on create there are never relations\n if (useThisCode && id && id !== 'create') {\n getter();\n }\n }, [id, getter]);\n\n if (!useThisCode) {\n return null;\n }\n\n if (!loaded) {\n return null;\n }\n\n if (!items || Object.keys(items).length === 0) {\n return 'No relations found';\n }\n\n return Object.entries(items).map(([contentTypeTitle, entries]) => (\n <div>\n <h2 style={{ paddingBottom: '0.5rem' }}>{contentTypeTitle}</h2>\n {entries.map(({\n documentId,\n title,\n uid,\n isPublished,\n }) => (\n <div key={documentId} style={{ paddingBottom: '0.5rem' }}>\n <ConditionalTooltip isShown={!isPublished} label={`Current entry is not linked to the published version of ${title}, please publish ${title} to publish the relation`}>\n <Button\n variant={!isPublished ? 'danger' : 'tertiary'}\n tag={Link}\n to={{ pathname: `/content-manager/collection-types/${uid}/${documentId}` }}\n >\n {!isPublished && '⚠'} {title || documentId}\n </Button>\n </ConditionalTooltip>\n </div>\n ))}\n </div>\n ));\n};\n\nexport default List;\n","import List from \"./list\";\n\nconst Panel = ({ model, documentId, document }) => ({\n title: 'Relations to this entry',\n content: <List />,\n});\n\nexport default Panel;","import Panel from './components/panel';\n\nexport default {\n bootstrap(app) {\n // execute some bootstrap code\n app.getPlugin('content-manager').apis.addEditViewSidePanel([Panel]);\n },\n register() {}\n};\n"],"names":[],"mappings":";;;;;;AAYA,MAAM,qBAAqB,CAAC,EAAE,SAAS,OAAO,eAAe;AAC3D,MAAI,SAAS;AACX,WAAO,oBAAC,SAAA,EAAQ,OAAe,SAAA,CAAS;AAAA,EAC1C;AAEA,SAAO;AACT;AAEA,MAAM,OAAO,MAAM;AACjB,QAAM,EAAE,cAAA,IAAkB,QAAA;AAC1B,QAAM,EAAE,IAAI,KAAA,IAAS,UAAA;AACrB,QAAM,CAAC,MAAM,IAAI,gBAAA;AACjB,QAAM,EAAE,mBAAA,IAAuB,gBAAA;AAC/B,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,IAAI;AACvC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,KAAK;AAC1C,QAAM,SAAS,OAAO,IAAI,QAAQ,KAAK;AAEvC,QAAM,SAAS,YAAY,YAAY;AACrC,UAAM,EAAE,IAAA,IAAQ,eAAA;AAChB,QAAI;AACJ,UAAM,WAAW,0BAA0B,IAAI,IAAI,EAAE,IAAI,MAAM;AAC/D,QAAI;AACF,iBAAW,MAAM,IAAI,UAAU,EAAE,IAAI;AAAA,IACvC,SAAS,OAAO;AACd,aAAO,mBAAmB;AAAA,QACxB,MAAM;AAAA,QACN,SAAS,cAAc;AAAA,UACrB,IAAI;AAAA,UACJ,gBAAgB;AAAA,QAAA,CACjB;AAAA,MAAA,CACF;AAAA,IACH;AACA,aAAS,SAAS,KAAK,KAAK;AAC5B,cAAU,IAAI;AACd,WAAO;AAAA,EACT,GAAG,CAAC,eAAe,IAAI,oBAAoB,MAAM,QAAQ,QAAQ,CAAC;AAElE,YAAU,MAAM;AAGd,QAAmB,MAAM,OAAO,UAAU;AACxC,aAAA;AAAA,IACF;AAAA,EACF,GAAG,CAAC,IAAI,MAAM,CAAC;AAMf,MAAI,CAAC,QAAQ;AACX,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,SAAS,OAAO,KAAK,KAAK,EAAE,WAAW,GAAG;AAC7C,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,kBAAkB,OAAO,MAC1D,qBAAC,OAAA,EACC,UAAA;AAAA,IAAA,oBAAC,QAAG,OAAO,EAAE,eAAe,SAAA,GAAa,UAAA,kBAAiB;AAAA,IACzD,QAAQ,IAAI,CAAC;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,MAEA,oBAAC,OAAA,EAAqB,OAAO,EAAE,eAAe,YAC5C,UAAA,oBAAC,oBAAA,EAAmB,SAAS,CAAC,aAAa,OAAO,2DAA2D,KAAK,oBAAoB,KAAK,4BACzI,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,SAAS,CAAC,cAAc,WAAW;AAAA,QACnC,KAAK;AAAA,QACL,IAAI,EAAE,UAAU,qCAAqC,GAAG,IAAI,UAAU,GAAA;AAAA,QAErE,UAAA;AAAA,UAAA,CAAC,eAAe;AAAA,UAAI;AAAA,UAAE,SAAS;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EAClC,CACF,EAAA,GATQ,UAUV,CACD;AAAA,EAAA,EAAA,CACH,CACD;AACH;AC1FA,MAAM,QAAQ,CAAC,EAAE,OAAO,YAAY,gBAAgB;AAAA,EAClD,OAAO;AAAA,EACP,6BAAU,MAAA,CAAA,CAAK;AACjB;ACHA,MAAA,QAAe;AAAA,EACb,UAAU,KAAK;AAEb,QAAI,UAAU,iBAAiB,EAAE,KAAK,qBAAqB,CAAC,KAAK,CAAC;AAAA,EACpE;AAAA,EACA,WAAW;AAAA,EAAC;AACd;"}
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.1.0",
2
+ "version": "0.1.1",
3
3
  "keywords": [],
4
4
  "type": "commonjs",
5
5
  "exports": {