@webiny/app-headless-cms 0.0.0-unstable.496cf268ac → 0.0.0-unstable.606fc9c866
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/admin/components/ContentEntryForm/useRenderPlugins.d.ts +1 -2
- package/admin/components/Dialog.js +1 -1
- package/admin/components/Dialog.js.map +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js +1 -1
- package/admin/components/FieldEditor/EditFieldDialog/GeneralTab.js.map +1 -1
- package/admin/components/IconPicker.js +16 -12
- package/admin/components/IconPicker.js.map +1 -1
- package/admin/hooks/index.d.ts +1 -0
- package/admin/hooks/index.js +12 -0
- package/admin/hooks/index.js.map +1 -1
- package/admin/hooks/useContentModels.d.ts +8 -0
- package/admin/hooks/useContentModels.js +9 -2
- package/admin/hooks/useContentModels.js.map +1 -1
- package/admin/menus/ContentGroupsMenuItems.js +1 -2
- package/admin/menus/ContentGroupsMenuItems.js.map +1 -1
- package/admin/plugins/fieldRenderers/boolean/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dateTime/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.d.ts +3 -3
- package/admin/plugins/fieldRenderers/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.d.ts +4 -4
- package/admin/plugins/fieldRenderers/dynamicZone/MultiValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.d.ts +4 -4
- package/admin/plugins/fieldRenderers/dynamicZone/SingleValueDynamicZone.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateCard.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateGallery.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.d.ts +2 -2
- package/admin/plugins/fieldRenderers/dynamicZone/TemplateIcon.js.map +1 -1
- package/admin/plugins/fieldRenderers/dynamicZone/dynamicZoneRenderer.js.map +1 -1
- package/admin/plugins/fieldRenderers/file/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/longText/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/number/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjects.js.map +1 -1
- package/admin/plugins/fieldRenderers/object/multipleObjectsAccordion.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js +5 -3
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedMultipleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js +1 -5
- package/admin/plugins/fieldRenderers/ref/advanced/components/AdvancedSingleReferenceField.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js +4 -3
- package/admin/plugins/fieldRenderers/ref/advanced/components/Entries.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js +3 -3
- package/admin/plugins/fieldRenderers/ref/advanced/components/NewReferencedEntryDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/ReferencesDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/components/options/OptionsModelList.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js +1 -5
- package/admin/plugins/fieldRenderers/ref/advanced/hooks/graphql.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/advanced/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.d.ts +2 -2
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js +3 -3
- package/admin/plugins/fieldRenderers/ref/components/NewRefEntryFormDialog.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/richText/index.d.ts +1 -1
- package/admin/plugins/fieldRenderers/text/index.d.ts +1 -1
- package/admin/plugins/fields/dynamicZone/AddTemplate.d.ts +3 -3
- package/admin/plugins/fields/dynamicZone/AddTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZone.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone/DynamicZone.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone/DynamicZoneTemplate.js.map +1 -1
- package/admin/plugins/fields/dynamicZone/TemplateDialog.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone/TemplateDialog.js.map +1 -1
- package/admin/plugins/fields/dynamicZone.d.ts +2 -2
- package/admin/plugins/fields/dynamicZone.js +1 -1
- package/admin/plugins/fields/dynamicZone.js.map +1 -1
- package/admin/plugins/fields/object.js +3 -0
- package/admin/plugins/fields/object.js.map +1 -1
- package/admin/plugins/index.d.ts +2 -2
- package/admin/plugins/routes.js +2 -1
- package/admin/plugins/routes.js.map +1 -1
- package/admin/views/contentEntries/ContentEntries.js +8 -57
- package/admin/views/contentEntries/ContentEntries.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContainer.d.ts +4 -0
- package/admin/views/contentEntries/ContentEntriesContainer.js +65 -0
- package/admin/views/contentEntries/ContentEntriesContainer.js.map +1 -0
- package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js +4 -4
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +2 -3
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +4 -4
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +2 -0
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +36 -39
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -1
- package/admin/views/contentEntries/hooks/index.d.ts +3 -0
- package/admin/views/contentEntries/hooks/index.js +38 -0
- package/admin/views/contentEntries/hooks/index.js.map +1 -0
- package/admin/views/contentEntries/hooks/useContentEntriesList.d.ts +1 -1
- package/admin/views/contentModels/ContentModelsDataList.js +3 -3
- package/admin/views/contentModels/ContentModelsDataList.js.map +1 -1
- package/allPlugins.d.ts +2 -2
- package/package.json +20 -20
- package/types/index.d.ts +29 -14
- package/types/index.js.map +1 -1
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js +0 -65
- package/admin/plugins/upgrades/5.19.0/UpgradeItemsInfo.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js +0 -67
- package/admin/plugins/upgrades/5.19.0/createCmsApolloClient.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.d.ts +0 -2
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js +0 -26
- package/admin/plugins/upgrades/5.19.0/createListEntriesQuery.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.d.ts +0 -1
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js +0 -20
- package/admin/plugins/upgrades/5.19.0/createListModelsQuery.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.d.ts +0 -2
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js +0 -23
- package/admin/plugins/upgrades/5.19.0/createRepublishMutation.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.d.ts +0 -1
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js +0 -20
- package/admin/plugins/upgrades/5.19.0/createUpgradeMutation.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.d.ts +0 -7
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js +0 -137
- package/admin/plugins/upgrades/5.19.0/fetchModelEntries.js.map +0 -1
- package/admin/plugins/upgrades/5.19.0/types.d.ts +0 -47
- package/admin/plugins/upgrades/5.19.0/types.js +0 -5
- package/admin/plugins/upgrades/5.19.0/types.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/locales.d.ts +0 -7
- package/admin/plugins/upgrades/5.33.0/locales.js +0 -65
- package/admin/plugins/upgrades/5.33.0/locales.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/types.d.ts +0 -7
- package/admin/plugins/upgrades/5.33.0/types.js +0 -5
- package/admin/plugins/upgrades/5.33.0/types.js.map +0 -1
- package/admin/plugins/upgrades/5.33.0/upgrade.d.ts +0 -8
- package/admin/plugins/upgrades/5.33.0/upgrade.js +0 -81
- package/admin/plugins/upgrades/5.33.0/upgrade.js.map +0 -1
- package/admin/plugins/upgrades/v5.0.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.0.0.js +0 -111
- package/admin/plugins/upgrades/v5.0.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.19.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.19.0.js +0 -684
- package/admin/plugins/upgrades/v5.19.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.33.0.d.ts +0 -6
- package/admin/plugins/upgrades/v5.33.0.js +0 -191
- package/admin/plugins/upgrades/v5.33.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.5.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.5.0.js +0 -111
- package/admin/plugins/upgrades/v5.5.0.js.map +0 -1
- package/admin/plugins/upgrades/v5.8.0.d.ts +0 -5
- package/admin/plugins/upgrades/v5.8.0.js +0 -111
- package/admin/plugins/upgrades/v5.8.0.js.map +0 -1
- package/admin/views/contentEntries/experiment/Property.d.ts +0 -34
- package/admin/views/contentEntries/experiment/Property.js +0 -200
- package/admin/views/contentEntries/experiment/Property.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","Loader","children","props","React","cloneElement","ContentModelEditor","lazy","ContentModelsView","ContentModelGroupsView","plugins","name","type","route"],"sources":["routes.tsx"],"sourcesContent":["import React, { Suspense, lazy } from \"react\";\nimport Helmet from \"react-helmet\";\nimport { SecureRoute } from \"@webiny/app-security/components\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { Route } from \"@webiny/react-router\";\nimport { AdminLayout } from \"@webiny/app-admin/components/AdminLayout\";\nimport { RoutePlugin } from \"@webiny/app/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ContentEntriesView } from \"../views/contentEntries/experiment/ContentEntriesViewConfig\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/routes\");\n\nconst Loader: React.FC = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress />}>\n {React.cloneElement(children as unknown as React.ReactElement, props)}\n </Suspense>\n);\n\nconst ContentModelEditor = lazy(() => import(\"../views/contentModels/ContentModelEditor\"));\nconst ContentModelsView = lazy(() => import(\"../views/contentModels/ContentModels\"));\nconst ContentModelGroupsView = lazy(() => import(\"../views/contentModelGroups/ContentModelGroups\"));\n\nconst plugins: RoutePlugin[] = [\n {\n name: \"route-cms-content-models-groups\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-model-groups\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModelGroup\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content Model Groups`}</title>\n </Helmet>\n <Loader>\n <ContentModelGroupsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-manage\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-entries/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content`}</title>\n </Helmet>\n <ContentEntriesView />\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-editor\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-models/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <Helmet>\n <title>{t`Edit Content Model`}</title>\n </Helmet>\n <Loader>\n <ContentModelEditor />\n </Loader>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models\",\n type: \"route\",\n route: (\n <Route\n exact\n path=\"/cms/content-models\"\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet title={t`Content Models`} />\n <Loader>\n <ContentModelsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n }\n];\n\nexport default plugins;\n"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","Loader","children","props","React","cloneElement","ContentModelEditor","lazy","ContentModelsView","ContentModelGroupsView","plugins","name","type","route"],"sources":["routes.tsx"],"sourcesContent":["import React, { Suspense, lazy } from \"react\";\nimport Helmet from \"react-helmet\";\nimport { SecureRoute } from \"@webiny/app-security/components\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { Route } from \"@webiny/react-router\";\nimport { AdminLayout } from \"@webiny/app-admin/components/AdminLayout\";\nimport { RoutePlugin } from \"@webiny/app/types\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ContentEntriesView } from \"../views/contentEntries/experiment/ContentEntriesViewConfig\";\nimport { ContentEntriesContainer } from \"~/admin/views/contentEntries/ContentEntriesContainer\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/routes\");\n\nconst Loader: React.FC = ({ children, ...props }) => (\n <Suspense fallback={<CircularProgress />}>\n {React.cloneElement(children as unknown as React.ReactElement, props)}\n </Suspense>\n);\n\nconst ContentModelEditor = lazy(() => import(\"../views/contentModels/ContentModelEditor\"));\nconst ContentModelsView = lazy(() => import(\"../views/contentModels/ContentModels\"));\nconst ContentModelGroupsView = lazy(() => import(\"../views/contentModelGroups/ContentModelGroups\"));\n\nconst plugins: RoutePlugin[] = [\n {\n name: \"route-cms-content-models-groups\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-model-groups\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModelGroup\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content Model Groups`}</title>\n </Helmet>\n <Loader>\n <ContentModelGroupsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-manage\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-entries/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet>\n <title>{t`Content`}</title>\n </Helmet>\n <ContentEntriesContainer>\n <ContentEntriesView />\n </ContentEntriesContainer>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models-editor\",\n type: \"route\",\n route: (\n <Route\n exact\n path={\"/cms/content-models/:modelId\"}\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <Helmet>\n <title>{t`Edit Content Model`}</title>\n </Helmet>\n <Loader>\n <ContentModelEditor />\n </Loader>\n </SecureRoute>\n )}\n />\n )\n },\n {\n name: \"route-cms-content-models\",\n type: \"route\",\n route: (\n <Route\n exact\n path=\"/cms/content-models\"\n render={() => (\n <SecureRoute permission={\"cms.contentModel\"}>\n <AdminLayout>\n <Helmet title={t`Content Models`} />\n <Loader>\n <ContentModelsView />\n </Loader>\n </AdminLayout>\n </SecureRoute>\n )}\n />\n )\n }\n];\n\nexport default plugins;\n"],"mappings":";;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AAA+F;AAAA;AAE/F,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,+BAA+B,CAAC;AAElD,IAAMC,MAAgB,GAAG,SAAnBA,MAAgB;EAAA,IAAMC,QAAQ,QAARA,QAAQ;IAAKC,KAAK;EAAA,oBAC1C,6BAAC,eAAQ;IAAC,QAAQ,eAAE,6BAAC,0BAAgB;EAAI,gBACpCC,cAAK,CAACC,YAAY,CAACH,QAAQ,EAAmCC,KAAK,CAAC,CAC9D;AAAA,CACd;AAED,IAAMG,kBAAkB,gBAAG,IAAAC,WAAI,EAAC;EAAA;IAAA;EAAA;AAAA,CAAyD,CAAC;AAC1F,IAAMC,iBAAiB,gBAAG,IAAAD,WAAI,EAAC;EAAA;IAAA;EAAA;AAAA,CAAoD,CAAC;AACpF,IAAME,sBAAsB,gBAAG,IAAAF,WAAI,EAAC;EAAA;IAAA;EAAA;AAAA,CAA8D,CAAC;AAEnG,IAAMG,OAAsB,GAAG,CAC3B;EACIC,IAAI,EAAE,iCAAiC;EACvCC,IAAI,EAAE,OAAO;EACbC,KAAK,eACD,6BAAC,kBAAK;IACF,KAAK;IACL,IAAI,EAAE,2BAA4B;IAClC,MAAM,EAAE;MAAA,oBACJ,6BAAC,uBAAW;QAAC,UAAU,EAAE;MAAwB,gBAC7C,6BAAC,wBAAW,qBACR,6BAAC,oBAAM,qBACH,4CAAQf,CAAC,wGAA+B,CACnC,eACT,6BAAC,MAAM,qBACH,6BAAC,sBAAsB,OAAG,CACrB,CACC,CACJ;IAAA;EAChB;AAGd,CAAC,EACD;EACIa,IAAI,EAAE,iCAAiC;EACvCC,IAAI,EAAE,OAAO;EACbC,KAAK,eACD,6BAAC,kBAAK;IACF,KAAK;IACL,IAAI,EAAE,+BAAgC;IACtC,MAAM,EAAE;MAAA,oBACJ,6BAAC,uBAAW;QAAC,UAAU,EAAE;MAAmB,gBACxC,6BAAC,wBAAW,qBACR,6BAAC,oBAAM,qBACH,4CAAQf,CAAC,6FAAkB,CACtB,eACT,6BAAC,gDAAuB,qBACpB,6BAAC,4CAAkB,OAAG,CACA,CAChB,CACJ;IAAA;EAChB;AAGd,CAAC,EACD;EACIa,IAAI,EAAE,iCAAiC;EACvCC,IAAI,EAAE,OAAO;EACbC,KAAK,eACD,6BAAC,kBAAK;IACF,KAAK;IACL,IAAI,EAAE,8BAA+B;IACrC,MAAM,EAAE;MAAA,oBACJ,6BAAC,uBAAW;QAAC,UAAU,EAAE;MAAmB,gBACxC,6BAAC,oBAAM,qBACH,4CAAQf,CAAC,wGAA6B,CACjC,eACT,6BAAC,MAAM,qBACH,6BAAC,kBAAkB,OAAG,CACjB,CACC;IAAA;EAChB;AAGd,CAAC,EACD;EACIa,IAAI,EAAE,0BAA0B;EAChCC,IAAI,EAAE,OAAO;EACbC,KAAK,eACD,6BAAC,kBAAK;IACF,KAAK;IACL,IAAI,EAAC,qBAAqB;IAC1B,MAAM,EAAE;MAAA,oBACJ,6BAAC,uBAAW;QAAC,UAAU,EAAE;MAAmB,gBACxC,6BAAC,wBAAW,qBACR,6BAAC,oBAAM;QAAC,KAAK,EAAEf,CAAC;MAAiB,EAAG,eACpC,6BAAC,MAAM,qBACH,6BAAC,iBAAiB,OAAG,CAChB,CACC,CACJ;IAAA;EAChB;AAGd,CAAC,CACJ;AAAC,eAEaY,OAAO;AAAA"}
|
|
@@ -1,77 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
-
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.default = void 0;
|
|
9
|
-
var
|
|
10
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
-
var _get = _interopRequireDefault(require("lodash/get"));
|
|
13
|
-
var _reactRouter = require("@webiny/react-router");
|
|
14
|
-
var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
|
|
15
|
-
var _i18n = require("@webiny/app/i18n");
|
|
16
|
-
var _Progress = require("@webiny/ui/Progress");
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
17
9
|
var _SplitView = require("@webiny/app-admin/components/SplitView");
|
|
18
|
-
var _ContentEntriesContext = require("./ContentEntriesContext");
|
|
19
|
-
var _contentModels = require("../../graphql/contentModels");
|
|
20
|
-
var _hooks = require("../../hooks");
|
|
21
10
|
var _ContentEntriesList = _interopRequireDefault(require("./ContentEntriesList"));
|
|
22
11
|
var _ContentEntry = require("./ContentEntry");
|
|
23
12
|
var _ContentEntryContext = require("./ContentEntry/ContentEntryContext");
|
|
24
13
|
var _ModelProvider = require("../../components/ModelProvider");
|
|
25
|
-
var
|
|
26
|
-
var t = _i18n.i18n.ns("app-headless-cms/admin/content-entries");
|
|
14
|
+
var _ContentEntriesContext = require("./ContentEntriesContext");
|
|
27
15
|
var ContentEntries = function ContentEntries() {
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
contentModel = _useState2[0],
|
|
34
|
-
setContentModel = _useState2[1];
|
|
35
|
-
var _useRouter2 = (0, _reactRouter.useRouter)(),
|
|
36
|
-
history = _useRouter2.history;
|
|
37
|
-
var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
|
|
38
|
-
showSnackbar = _useSnackbar.showSnackbar;
|
|
39
|
-
var _useQuery = (0, _hooks.useQuery)(_contentModels.GET_CONTENT_MODEL, {
|
|
40
|
-
skip: !modelId,
|
|
41
|
-
variables: {
|
|
42
|
-
modelId: modelId
|
|
43
|
-
},
|
|
44
|
-
onCompleted: function onCompleted(data) {
|
|
45
|
-
var contentModel = (0, _get.default)(data, "getContentModel.data", null);
|
|
46
|
-
if (contentModel) {
|
|
47
|
-
return setContentModel(contentModel);
|
|
48
|
-
}
|
|
49
|
-
history.push("/cms/content-models");
|
|
50
|
-
showSnackbar(t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Could not load content for model \"{modelId}\". Redirecting..."])))({
|
|
51
|
-
modelId: modelId
|
|
52
|
-
}));
|
|
53
|
-
}
|
|
54
|
-
}),
|
|
55
|
-
loading = _useQuery.loading,
|
|
56
|
-
error = _useQuery.error;
|
|
57
|
-
if (!contentModel || loading) {
|
|
58
|
-
return /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
|
|
59
|
-
label: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Loading content model..."])))
|
|
60
|
-
});
|
|
61
|
-
} else if (error) {
|
|
62
|
-
showSnackbar(error.message);
|
|
63
|
-
return null;
|
|
64
|
-
}
|
|
65
|
-
return /*#__PURE__*/_react.default.createElement(_ModelProvider.ModelProvider, {
|
|
66
|
-
model: contentModel
|
|
67
|
-
}, /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.Provider, {
|
|
68
|
-
contentModel: contentModel,
|
|
69
|
-
key: contentModel.modelId
|
|
16
|
+
var _useModel = (0, _ModelProvider.useModel)(),
|
|
17
|
+
model = _useModel.model;
|
|
18
|
+
return /*#__PURE__*/_react.default.createElement(_ContentEntriesContext.ContentEntriesProvider, {
|
|
19
|
+
contentModel: model,
|
|
20
|
+
key: model.modelId
|
|
70
21
|
}, /*#__PURE__*/_react.default.createElement(_SplitView.SplitView, null, /*#__PURE__*/_react.default.createElement(_SplitView.LeftPanel, {
|
|
71
22
|
span: 4
|
|
72
23
|
}, /*#__PURE__*/_react.default.createElement(_ContentEntriesList.default, null)), /*#__PURE__*/_react.default.createElement(_SplitView.RightPanel, {
|
|
73
24
|
span: 8
|
|
74
|
-
}, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement(_ContentEntryContext.ContentEntryProvider, null, /*#__PURE__*/_react.default.createElement(_ContentEntry.ContentEntry, null)))));
|
|
75
26
|
};
|
|
76
27
|
var _default = ContentEntries;
|
|
77
28
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["ContentEntries","useModel","model","modelId"],"sources":["ContentEntries.tsx"],"sourcesContent":["import React from \"react\";\nimport { LeftPanel, RightPanel, SplitView } from \"@webiny/app-admin/components/SplitView\";\nimport ContentEntriesList from \"~/admin/views/contentEntries/ContentEntriesList\";\nimport { ContentEntry } from \"~/admin/views/contentEntries/ContentEntry\";\nimport { ContentEntryProvider } from \"~/admin/views/contentEntries/ContentEntry/ContentEntryContext\";\nimport { useModel } from \"~/admin/components/ModelProvider\";\nimport { ContentEntriesProvider } from \"~/admin/views/contentEntries/ContentEntriesContext\";\n\nconst ContentEntries: React.FC = () => {\n const { model } = useModel();\n\n return (\n <ContentEntriesProvider contentModel={model} key={model.modelId}>\n <SplitView>\n <LeftPanel span={4}>\n <ContentEntriesList />\n </LeftPanel>\n <RightPanel span={8}>\n <ContentEntryProvider>\n <ContentEntry />\n </ContentEntryProvider>\n </RightPanel>\n </SplitView>\n </ContentEntriesProvider>\n );\n};\n\nexport default ContentEntries;\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA,IAAMA,cAAwB,GAAG,SAA3BA,cAAwB,GAAS;EACnC,gBAAkB,IAAAC,uBAAQ,GAAE;IAApBC,KAAK,aAALA,KAAK;EAEb,oBACI,6BAAC,6CAAsB;IAAC,YAAY,EAAEA,KAAM;IAAC,GAAG,EAAEA,KAAK,CAACC;EAAQ,gBAC5D,6BAAC,oBAAS,qBACN,6BAAC,oBAAS;IAAC,IAAI,EAAE;EAAE,gBACf,6BAAC,2BAAkB,OAAG,CACd,eACZ,6BAAC,qBAAU;IAAC,IAAI,EAAE;EAAE,gBAChB,6BAAC,yCAAoB,qBACjB,6BAAC,0BAAY,OAAG,CACG,CACd,CACL,CACS;AAEjC,CAAC;AAAC,eAEaH,cAAc;AAAA"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.ContentEntriesContainer = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _get = _interopRequireDefault(require("lodash/get"));
|
|
13
|
+
var _reactRouter = require("@webiny/react-router");
|
|
14
|
+
var _useSnackbar2 = require("@webiny/app-admin/hooks/useSnackbar");
|
|
15
|
+
var _i18n = require("@webiny/app/i18n");
|
|
16
|
+
var _Progress = require("@webiny/ui/Progress");
|
|
17
|
+
var _contentModels = require("../../graphql/contentModels");
|
|
18
|
+
var _hooks = require("../../hooks");
|
|
19
|
+
var _ModelProvider = require("../../components/ModelProvider");
|
|
20
|
+
var _templateObject, _templateObject2;
|
|
21
|
+
var t = _i18n.i18n.ns("app-headless-cms/admin/content-entries");
|
|
22
|
+
var ContentEntriesContainer = function ContentEntriesContainer(_ref) {
|
|
23
|
+
var children = _ref.children;
|
|
24
|
+
var _useRouter = (0, _reactRouter.useRouter)(),
|
|
25
|
+
params = _useRouter.params;
|
|
26
|
+
var modelId = params ? params["modelId"] : null;
|
|
27
|
+
var _useState = (0, _react.useState)(null),
|
|
28
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
29
|
+
contentModel = _useState2[0],
|
|
30
|
+
setContentModel = _useState2[1];
|
|
31
|
+
var _useRouter2 = (0, _reactRouter.useRouter)(),
|
|
32
|
+
history = _useRouter2.history;
|
|
33
|
+
var _useSnackbar = (0, _useSnackbar2.useSnackbar)(),
|
|
34
|
+
showSnackbar = _useSnackbar.showSnackbar;
|
|
35
|
+
var _useQuery = (0, _hooks.useQuery)(_contentModels.GET_CONTENT_MODEL, {
|
|
36
|
+
skip: !modelId,
|
|
37
|
+
variables: {
|
|
38
|
+
modelId: modelId
|
|
39
|
+
},
|
|
40
|
+
onCompleted: function onCompleted(data) {
|
|
41
|
+
var contentModel = (0, _get.default)(data, "getContentModel.data", null);
|
|
42
|
+
if (contentModel) {
|
|
43
|
+
return setContentModel(contentModel);
|
|
44
|
+
}
|
|
45
|
+
history.push("/cms/content-models");
|
|
46
|
+
showSnackbar(t(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["Could not load content for model \"{modelId}\". Redirecting..."])))({
|
|
47
|
+
modelId: modelId
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
}),
|
|
51
|
+
loading = _useQuery.loading,
|
|
52
|
+
error = _useQuery.error;
|
|
53
|
+
if (!contentModel || loading) {
|
|
54
|
+
return /*#__PURE__*/_react.default.createElement(_Progress.CircularProgress, {
|
|
55
|
+
label: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Loading content model..."])))
|
|
56
|
+
});
|
|
57
|
+
} else if (error) {
|
|
58
|
+
showSnackbar(error.message);
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return /*#__PURE__*/_react.default.createElement(_ModelProvider.ModelProvider, {
|
|
62
|
+
model: contentModel
|
|
63
|
+
}, children);
|
|
64
|
+
};
|
|
65
|
+
exports.ContentEntriesContainer = ContentEntriesContainer;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","ContentEntriesContainer","children","useRouter","params","modelId","useState","contentModel","setContentModel","history","useSnackbar","showSnackbar","useQuery","GET_CONTENT_MODEL","skip","variables","onCompleted","data","get","push","loading","error","message"],"sources":["ContentEntriesContainer.tsx"],"sourcesContent":["import React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport {\n GET_CONTENT_MODEL,\n GetCmsModelQueryResponse,\n GetCmsModelQueryVariables\n} from \"~/admin/graphql/contentModels\";\nimport { useQuery } from \"../../hooks\";\nimport { CmsModel } from \"~/types\";\nimport { ModelProvider } from \"~/admin/components/ModelProvider\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/content-entries\");\n\nexport const ContentEntriesContainer = ({ children }: { children: React.ReactNode }) => {\n const { params } = useRouter();\n const modelId = params ? params[\"modelId\"] : null;\n const [contentModel, setContentModel] = useState<CmsModel | null>(null);\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n\n const { loading, error } = useQuery<GetCmsModelQueryResponse, GetCmsModelQueryVariables>(\n GET_CONTENT_MODEL,\n {\n skip: !modelId,\n variables: {\n modelId\n },\n onCompleted: data => {\n const contentModel = get(data, \"getContentModel.data\", null);\n if (contentModel) {\n return setContentModel(contentModel);\n }\n\n history.push(\"/cms/content-models\");\n showSnackbar(\n t`Could not load content for model \"{modelId}\". Redirecting...`({\n modelId\n })\n );\n }\n }\n );\n\n if (!contentModel || loading) {\n return <CircularProgress label={t`Loading content model...`} />;\n } else if (error) {\n showSnackbar(error.message);\n return null;\n }\n\n return <ModelProvider model={contentModel}>{children}</ModelProvider>;\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAEA;AAAiE;AAEjE,IAAMA,CAAC,GAAGC,UAAI,CAACC,EAAE,CAAC,wCAAwC,CAAC;AAEpD,IAAMC,uBAAuB,GAAG,SAA1BA,uBAAuB,OAAoD;EAAA,IAA9CC,QAAQ,QAARA,QAAQ;EAC9C,iBAAmB,IAAAC,sBAAS,GAAE;IAAtBC,MAAM,cAANA,MAAM;EACd,IAAMC,OAAO,GAAGD,MAAM,GAAGA,MAAM,CAAC,SAAS,CAAC,GAAG,IAAI;EACjD,gBAAwC,IAAAE,eAAQ,EAAkB,IAAI,CAAC;IAAA;IAAhEC,YAAY;IAAEC,eAAe;EACpC,kBAAoB,IAAAL,sBAAS,GAAE;IAAvBM,OAAO,eAAPA,OAAO;EACf,mBAAyB,IAAAC,yBAAW,GAAE;IAA9BC,YAAY,gBAAZA,YAAY;EAEpB,gBAA2B,IAAAC,eAAQ,EAC/BC,gCAAiB,EACjB;MACIC,IAAI,EAAE,CAACT,OAAO;MACdU,SAAS,EAAE;QACPV,OAAO,EAAPA;MACJ,CAAC;MACDW,WAAW,EAAE,qBAAAC,IAAI,EAAI;QACjB,IAAMV,YAAY,GAAG,IAAAW,YAAG,EAACD,IAAI,EAAE,sBAAsB,EAAE,IAAI,CAAC;QAC5D,IAAIV,YAAY,EAAE;UACd,OAAOC,eAAe,CAACD,YAAY,CAAC;QACxC;QAEAE,OAAO,CAACU,IAAI,CAAC,qBAAqB,CAAC;QACnCR,YAAY,CACRb,CAAC,kJAA+D;UAC5DO,OAAO,EAAPA;QACJ,CAAC,CAAC,CACL;MACL;IACJ,CAAC,CACJ;IArBOe,OAAO,aAAPA,OAAO;IAAEC,KAAK,aAALA,KAAK;EAuBtB,IAAI,CAACd,YAAY,IAAIa,OAAO,EAAE;IAC1B,oBAAO,6BAAC,0BAAgB;MAAC,KAAK,EAAEtB,CAAC;IAA2B,EAAG;EACnE,CAAC,MAAM,IAAIuB,KAAK,EAAE;IACdV,YAAY,CAACU,KAAK,CAACC,OAAO,CAAC;IAC3B,OAAO,IAAI;EACf;EAEA,oBAAO,6BAAC,4BAAa;IAAC,KAAK,EAAEf;EAAa,GAAEL,QAAQ,CAAiB;AACzE,CAAC;AAAC"}
|
|
@@ -25,4 +25,4 @@ export interface ContentEntriesContextProviderProps {
|
|
|
25
25
|
children: React.ReactNode;
|
|
26
26
|
insideDialog?: boolean;
|
|
27
27
|
}
|
|
28
|
-
export declare const
|
|
28
|
+
export declare const ContentEntriesProvider: React.FC<ContentEntriesContextProviderProps>;
|
|
@@ -5,7 +5,7 @@ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWild
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
8
|
+
exports.Context = exports.ContentEntriesProvider = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
@@ -25,7 +25,7 @@ function toEntriesSorters(sorters) {
|
|
|
25
25
|
};
|
|
26
26
|
});
|
|
27
27
|
}
|
|
28
|
-
var
|
|
28
|
+
var ContentEntriesProvider = function ContentEntriesProvider(_ref) {
|
|
29
29
|
var contentModel = _ref.contentModel,
|
|
30
30
|
children = _ref.children,
|
|
31
31
|
insideDialog = _ref.insideDialog;
|
|
@@ -86,5 +86,5 @@ var Provider = function Provider(_ref) {
|
|
|
86
86
|
value: value
|
|
87
87
|
}, children);
|
|
88
88
|
};
|
|
89
|
-
exports.
|
|
90
|
-
|
|
89
|
+
exports.ContentEntriesProvider = ContentEntriesProvider;
|
|
90
|
+
ContentEntriesProvider.displayName = "ContentEntriesProvider";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","Context","React","createContext","undefined","toEntriesSorters","sorters","map","s","label","value","name","
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","Context","React","createContext","undefined","toEntriesSorters","sorters","map","s","label","value","name","ContentEntriesProvider","contentModel","children","insideDialog","useSecurity","identity","getPermission","viewConfig","useContentEntriesViewConfig","appliesToContentModel","useCallback","modelIds","length","includes","modelId","canCreate","useMemo","permission","rwd","titleField","fields","find","field","fieldId","titleFieldId","titleFieldLabel","filter","useState","sort","where","listQueryVariables","setListQueryVariables","displayName"],"sources":["ContentEntriesContext.tsx"],"sourcesContent":["import React, { useState, useMemo, Dispatch, SetStateAction, useCallback } from \"react\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { CmsModel, CmsSecurityPermission } from \"~/types\";\nimport {\n useContentEntriesViewConfig,\n ContentEntriesViewConfigSorter\n} from \"./experiment/ContentEntriesViewConfig\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/contents/entries\");\n\nexport interface CmsEntriesSorter {\n label: string;\n value: string;\n}\n\nexport interface ListQueryVariables {\n sort?: string[];\n status?: string;\n where?: {\n [key: string]: any;\n };\n}\n\nexport interface ContentEntriesContext {\n contentModel: CmsModel;\n canCreate: boolean;\n listQueryVariables: ListQueryVariables;\n sorters: CmsEntriesSorter[];\n setListQueryVariables: Dispatch<SetStateAction<ListQueryVariables>>;\n insideDialog?: boolean;\n}\n\nexport const Context = React.createContext<ContentEntriesContext | undefined>(undefined);\n\nexport interface ContentEntriesContextProviderProps {\n contentModel: CmsModel;\n children: React.ReactNode;\n insideDialog?: boolean;\n}\n\nfunction toEntriesSorters(sorters: ContentEntriesViewConfigSorter[]) {\n return sorters.map(s => ({ label: s.label, value: s.name }));\n}\n\nexport const ContentEntriesProvider: React.FC<ContentEntriesContextProviderProps> = ({\n contentModel,\n children,\n insideDialog\n}) => {\n const { identity, getPermission } = useSecurity();\n const viewConfig = useContentEntriesViewConfig();\n\n const appliesToContentModel = useCallback(\n ({ modelIds }: ContentEntriesViewConfigSorter) => {\n return modelIds.length === 0 || modelIds.includes(contentModel.modelId);\n },\n [contentModel]\n );\n\n const canCreate = useMemo((): boolean => {\n const permission = getPermission<CmsSecurityPermission>(\"cms.contentEntry\");\n if (!permission) {\n return false;\n }\n\n if (typeof permission.rwd !== \"string\") {\n return true;\n }\n\n return permission.rwd.includes(\"w\");\n }, [identity]);\n\n const sorters = useMemo((): CmsEntriesSorter[] => {\n const titleField = contentModel.fields.find(\n field => field.fieldId === contentModel.titleFieldId\n );\n\n const titleFieldLabel = titleField ? titleField.label : null;\n if (!titleFieldLabel) {\n return toEntriesSorters(viewConfig.sorters.filter(appliesToContentModel));\n }\n\n return [\n ...toEntriesSorters(viewConfig.sorters.filter(appliesToContentModel)),\n {\n label: t`{titleFieldLabel} A-Z`({ titleFieldLabel }),\n value: `${contentModel.titleFieldId}_ASC`\n },\n {\n label: t`{titleFieldLabel} Z-A`({ titleFieldLabel }),\n value: `${contentModel.titleFieldId}_DESC`\n }\n ];\n }, [viewConfig.sorters, contentModel.modelId]);\n\n const [listQueryVariables, setListQueryVariables] = useState<ListQueryVariables>({\n sort: [sorters[0].value],\n where: {}\n });\n\n const value = {\n insideDialog,\n contentModel,\n sorters,\n canCreate,\n listQueryVariables,\n setListQueryVariables\n };\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nContentEntriesProvider.displayName = \"ContentEntriesProvider\";\n"],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
13
13
|
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
14
14
|
var _emotion = require("emotion");
|
|
15
15
|
var _timeagoReact = _interopRequireDefault(require("timeago-react"));
|
|
16
|
-
var _pluralize = _interopRequireDefault(require("pluralize"));
|
|
17
16
|
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
18
17
|
var _i18n = require("@webiny/app/i18n");
|
|
19
18
|
var _form = require("@webiny/form");
|
|
@@ -135,7 +134,7 @@ var ContentEntriesList = function ContentEntriesList() {
|
|
|
135
134
|
return /*#__PURE__*/_react.default.createElement(UIList.DataList, {
|
|
136
135
|
loading: loading,
|
|
137
136
|
data: data,
|
|
138
|
-
title: /*#__PURE__*/_react.default.createElement("span", null,
|
|
137
|
+
title: /*#__PURE__*/_react.default.createElement("span", null, contentModel.name, /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(_Typography.Typography, {
|
|
139
138
|
use: "subtitle1"
|
|
140
139
|
}, /*#__PURE__*/_react.default.createElement(ModelId, null, "Model ID:", " ", contentModel.plugin ? /*#__PURE__*/_react.default.createElement(_Tooltip.Tooltip, {
|
|
141
140
|
content: t(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["Content model is registered via a plugin."]))),
|
|
@@ -159,7 +158,7 @@ var ContentEntriesList = function ContentEntriesList() {
|
|
|
159
158
|
value: filter,
|
|
160
159
|
onChange: setFilter,
|
|
161
160
|
inputPlaceholder: t(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["Search {title}"])))({
|
|
162
|
-
title:
|
|
161
|
+
title: contentModel.name
|
|
163
162
|
})
|
|
164
163
|
}),
|
|
165
164
|
modalOverlay: entriesDataListModalOverlay,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["t","i18n","ns","rightAlign","css","alignItems","justifyContent","ModelId","styled","color","InlineLoaderWrapper","position","bottom","left","display","width","height","backgroundColor","listItemMinHeight","minHeight","disabled","cursor","ContentEntriesList","useContentEntriesList","contentModel","id","loading","canCreate","onCreate","data","editEntry","loadMore","loadMoreLoading","listQueryVariables","setListQueryVariables","sorters","filter","setFilter","viewConfig","useContentEntriesViewConfig","loadMoreOnScroll","useCallback","debounce","scrollFrame","top","formInitialData","sort","appliesToContentModel","modelIds","length","includes","modelId","entriesDataListModalOverlay","useMemo","status","Bind","map","value","label","filters","name","element","pluralize","plugin","title","item","meta","time","savedOn","statusLabels","version"],"sources":["ContentEntriesList.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport debounce from \"lodash/debounce\";\nimport { css } from \"emotion\";\n/**\n * Package timeago-react does not have types.\n */\n// @ts-ignore\nimport TimeAgo from \"timeago-react\";\nimport pluralize from \"pluralize\";\nimport styled from \"@emotion/styled\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Form } from \"@webiny/form\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport * as UIList from \"@webiny/ui/List\";\nimport { ButtonIcon, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ReactComponent as FilterIcon } from \"@webiny/app-admin/assets/icons/filter-24px.svg\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\nimport statusLabels from \"../../constants/statusLabels\";\nimport { useCallback } from \"react\";\nimport { useContentEntriesList } from \"~/admin/views/contentEntries/hooks/useContentEntriesList\";\nimport { positionValues as PositionValues } from \"react-custom-scrollbars\";\nimport { CmsEditorContentEntry } from \"~/types\";\nimport {\n useContentEntriesViewConfig,\n ContentEntriesViewConfigFilter\n} from \"./experiment/ContentEntriesViewConfig\";\nimport { Link } from \"@webiny/react-router\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/contents/data-list\");\n\nconst rightAlign = css({\n alignItems: \"flex-end !important\",\n justifyContent: \"center !important\"\n});\n\nconst ModelId = styled(\"span\")({\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n});\n\nconst InlineLoaderWrapper = styled(\"div\")({\n position: \"absolute\",\n bottom: 0,\n left: 0,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n height: 40,\n backgroundColor: \"var(--mdc-theme-surface)\"\n});\n\nconst listItemMinHeight = css({\n minHeight: \"66px !important\"\n});\n\nconst disabled = css({\n color: \"rgba(0, 0, 0, 0.54)\",\n cursor: \"default\"\n});\n\nconst ContentEntriesList: React.FC = () => {\n const {\n contentModel,\n id,\n loading,\n canCreate,\n onCreate,\n data,\n editEntry,\n loadMore,\n loadMoreLoading,\n listQueryVariables,\n setListQueryVariables,\n sorters,\n filter,\n setFilter\n } = useContentEntriesList();\n\n const viewConfig = useContentEntriesViewConfig();\n\n const loadMoreOnScroll = useCallback(\n debounce((scrollFrame: PositionValues) => {\n if (scrollFrame.top > 0.9) {\n loadMore();\n }\n }, 500),\n [data]\n );\n\n const formInitialData = {\n ...listQueryVariables,\n sort: listQueryVariables.sort ? listQueryVariables.sort[0] : \"\"\n };\n\n const appliesToContentModel = useCallback(\n ({ modelIds }: ContentEntriesViewConfigFilter) => {\n return modelIds.length === 0 || modelIds.includes(contentModel.modelId);\n },\n [contentModel]\n );\n\n const entriesDataListModalOverlay = useMemo(\n () => (\n <UIList.DataListModalOverlay>\n <Form\n data={formInitialData}\n onChange={({ sort, status, ...data }) => {\n setListQueryVariables(() => ({\n status,\n // GraphQL Schema requires \"sort\" to be an array.\n sort: [sort],\n // Spread the rest of form data\n ...data\n }));\n }}\n >\n {({ Bind }) => (\n <Grid>\n <Cell span={12}>\n <Bind name={\"sort\"}>\n <Select label={t`Sort by`}>\n {sorters.map(({ value, label }) => {\n return (\n <option key={value} value={value}>\n {label}\n </option>\n );\n })}\n </Select>\n </Bind>\n </Cell>\n {viewConfig.filters.filter(appliesToContentModel).map(filter => (\n <Cell span={12} key={filter.name}>\n {filter.element}\n </Cell>\n ))}\n </Grid>\n )}\n </Form>\n </UIList.DataListModalOverlay>\n ),\n [listQueryVariables, viewConfig.filters]\n );\n\n return (\n <UIList.DataList\n loading={loading}\n data={data}\n title={\n <span>\n {pluralize(contentModel.name)}\n <br />\n <Typography use={\"subtitle1\"}>\n <ModelId>\n Model ID:{\" \"}\n {contentModel.plugin ? (\n <Tooltip\n content={t`Content model is registered via a plugin.`}\n placement={\"top\"}\n >\n <Link to=\"#\" className={disabled}>\n {contentModel.modelId}\n </Link>\n </Tooltip>\n ) : (\n <Tooltip content={t`Edit content model`} placement={\"top\"}>\n <Link to={`/cms/content-models/${contentModel.modelId}`}>\n {contentModel.modelId}\n </Link>\n </Tooltip>\n )}\n </ModelId>\n </Typography>\n </span>\n }\n actions={\n canCreate ? (\n <ButtonSecondary data-testid=\"new-record-button\" onClick={onCreate}>\n <ButtonIcon icon={<AddIcon />} /> {t`New Entry`}\n </ButtonSecondary>\n ) : null\n }\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search {title}`({ title: pluralize(contentModel.name) })}\n />\n }\n modalOverlay={entriesDataListModalOverlay}\n modalOverlayAction={\n <UIList.DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data }: { data: CmsEditorContentEntry[] }) => (\n <>\n <Scrollbar\n data-testid=\"default-data-list\"\n onScrollFrame={scrollFrame => loadMoreOnScroll(scrollFrame)}\n >\n {data.map(item => (\n <UIList.ListItem\n key={item.id}\n className={listItemMinHeight}\n selected={item.id === id}\n >\n <UIList.ListItemText onClick={editEntry(item)}>\n {item.meta.title || \"Untitled\"}\n <UIList.ListItemTextSecondary>\n {t`Last modified: {time}.`({\n time: <TimeAgo datetime={item.savedOn} />\n })}\n </UIList.ListItemTextSecondary>\n </UIList.ListItemText>\n\n <UIList.ListItemMeta className={rightAlign}>\n <Typography use={\"body2\"} data-testid=\"ul.list.subtitle\">\n {statusLabels[item.meta.status]} (v{item.meta.version})\n </Typography>\n </UIList.ListItemMeta>\n </UIList.ListItem>\n ))}\n </Scrollbar>\n {loadMoreLoading && (\n <InlineLoaderWrapper>\n <Typography use={\"overline\"}>{t`Loading more entries...`}</Typography>\n </InlineLoaderWrapper>\n )}\n </>\n )}\n </UIList.DataList>\n );\n};\n\nexport default ContentEntriesList;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["t","i18n","ns","rightAlign","css","alignItems","justifyContent","ModelId","styled","color","InlineLoaderWrapper","position","bottom","left","display","width","height","backgroundColor","listItemMinHeight","minHeight","disabled","cursor","ContentEntriesList","useContentEntriesList","contentModel","id","loading","canCreate","onCreate","data","editEntry","loadMore","loadMoreLoading","listQueryVariables","setListQueryVariables","sorters","filter","setFilter","viewConfig","useContentEntriesViewConfig","loadMoreOnScroll","useCallback","debounce","scrollFrame","top","formInitialData","sort","appliesToContentModel","modelIds","length","includes","modelId","entriesDataListModalOverlay","useMemo","status","Bind","map","value","label","filters","name","element","plugin","title","item","meta","time","savedOn","statusLabels","version"],"sources":["ContentEntriesList.tsx"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport debounce from \"lodash/debounce\";\nimport { css } from \"emotion\";\n/**\n * Package timeago-react does not have types.\n */\n// @ts-ignore\nimport TimeAgo from \"timeago-react\";\nimport styled from \"@emotion/styled\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { Form } from \"@webiny/form\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport * as UIList from \"@webiny/ui/List\";\nimport { ButtonIcon, ButtonSecondary } from \"@webiny/ui/Button\";\nimport { Cell, Grid } from \"@webiny/ui/Grid\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\nimport { ReactComponent as AddIcon } from \"@webiny/app-admin/assets/icons/add-18px.svg\";\nimport { ReactComponent as FilterIcon } from \"@webiny/app-admin/assets/icons/filter-24px.svg\";\nimport SearchUI from \"@webiny/app-admin/components/SearchUI\";\nimport statusLabels from \"../../constants/statusLabels\";\nimport { useContentEntriesList } from \"~/admin/views/contentEntries/hooks/useContentEntriesList\";\nimport { positionValues as PositionValues } from \"react-custom-scrollbars\";\nimport { CmsEditorContentEntry } from \"~/types\";\nimport {\n ContentEntriesViewConfigFilter,\n useContentEntriesViewConfig\n} from \"./experiment/ContentEntriesViewConfig\";\nimport { Link } from \"@webiny/react-router\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/contents/data-list\");\n\nconst rightAlign = css({\n alignItems: \"flex-end !important\",\n justifyContent: \"center !important\"\n});\n\nconst ModelId = styled(\"span\")({\n color: \"var(--mdc-theme-text-secondary-on-background)\"\n});\n\nconst InlineLoaderWrapper = styled(\"div\")({\n position: \"absolute\",\n bottom: 0,\n left: 0,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n height: 40,\n backgroundColor: \"var(--mdc-theme-surface)\"\n});\n\nconst listItemMinHeight = css({\n minHeight: \"66px !important\"\n});\n\nconst disabled = css({\n color: \"rgba(0, 0, 0, 0.54)\",\n cursor: \"default\"\n});\n\nconst ContentEntriesList: React.FC = () => {\n const {\n contentModel,\n id,\n loading,\n canCreate,\n onCreate,\n data,\n editEntry,\n loadMore,\n loadMoreLoading,\n listQueryVariables,\n setListQueryVariables,\n sorters,\n filter,\n setFilter\n } = useContentEntriesList();\n\n const viewConfig = useContentEntriesViewConfig();\n\n const loadMoreOnScroll = useCallback(\n debounce((scrollFrame: PositionValues) => {\n if (scrollFrame.top > 0.9) {\n loadMore();\n }\n }, 500),\n [data]\n );\n\n const formInitialData = {\n ...listQueryVariables,\n sort: listQueryVariables.sort ? listQueryVariables.sort[0] : \"\"\n };\n\n const appliesToContentModel = useCallback(\n ({ modelIds }: ContentEntriesViewConfigFilter) => {\n return modelIds.length === 0 || modelIds.includes(contentModel.modelId);\n },\n [contentModel]\n );\n\n const entriesDataListModalOverlay = useMemo(\n () => (\n <UIList.DataListModalOverlay>\n <Form\n data={formInitialData}\n onChange={({ sort, status, ...data }) => {\n setListQueryVariables(() => ({\n status,\n // GraphQL Schema requires \"sort\" to be an array.\n sort: [sort],\n // Spread the rest of form data\n ...data\n }));\n }}\n >\n {({ Bind }) => (\n <Grid>\n <Cell span={12}>\n <Bind name={\"sort\"}>\n <Select label={t`Sort by`}>\n {sorters.map(({ value, label }) => {\n return (\n <option key={value} value={value}>\n {label}\n </option>\n );\n })}\n </Select>\n </Bind>\n </Cell>\n {viewConfig.filters.filter(appliesToContentModel).map(filter => (\n <Cell span={12} key={filter.name}>\n {filter.element}\n </Cell>\n ))}\n </Grid>\n )}\n </Form>\n </UIList.DataListModalOverlay>\n ),\n [listQueryVariables, viewConfig.filters]\n );\n\n return (\n <UIList.DataList\n loading={loading}\n data={data}\n title={\n <span>\n {contentModel.name}\n <br />\n <Typography use={\"subtitle1\"}>\n <ModelId>\n Model ID:{\" \"}\n {contentModel.plugin ? (\n <Tooltip\n content={t`Content model is registered via a plugin.`}\n placement={\"top\"}\n >\n <Link to=\"#\" className={disabled}>\n {contentModel.modelId}\n </Link>\n </Tooltip>\n ) : (\n <Tooltip content={t`Edit content model`} placement={\"top\"}>\n <Link to={`/cms/content-models/${contentModel.modelId}`}>\n {contentModel.modelId}\n </Link>\n </Tooltip>\n )}\n </ModelId>\n </Typography>\n </span>\n }\n actions={\n canCreate ? (\n <ButtonSecondary data-testid=\"new-record-button\" onClick={onCreate}>\n <ButtonIcon icon={<AddIcon />} /> {t`New Entry`}\n </ButtonSecondary>\n ) : null\n }\n search={\n <SearchUI\n value={filter}\n onChange={setFilter}\n inputPlaceholder={t`Search {title}`({ title: contentModel.name })}\n />\n }\n modalOverlay={entriesDataListModalOverlay}\n modalOverlayAction={\n <UIList.DataListModalOverlayAction\n icon={<FilterIcon />}\n data-testid={\"default-data-list.filter\"}\n />\n }\n >\n {({ data }: { data: CmsEditorContentEntry[] }) => (\n <>\n <Scrollbar\n data-testid=\"default-data-list\"\n onScrollFrame={scrollFrame => loadMoreOnScroll(scrollFrame)}\n >\n {data.map(item => (\n <UIList.ListItem\n key={item.id}\n className={listItemMinHeight}\n selected={item.id === id}\n >\n <UIList.ListItemText onClick={editEntry(item)}>\n {item.meta.title || \"Untitled\"}\n <UIList.ListItemTextSecondary>\n {t`Last modified: {time}.`({\n time: <TimeAgo datetime={item.savedOn} />\n })}\n </UIList.ListItemTextSecondary>\n </UIList.ListItemText>\n\n <UIList.ListItemMeta className={rightAlign}>\n <Typography use={\"body2\"} data-testid=\"ul.list.subtitle\">\n {statusLabels[item.meta.status]} (v{item.meta.version})\n </Typography>\n </UIList.ListItemMeta>\n </UIList.ListItem>\n ))}\n </Scrollbar>\n {loadMoreLoading && (\n <InlineLoaderWrapper>\n <Typography use={\"overline\"}>{t`Loading more entries...`}</Typography>\n </InlineLoaderWrapper>\n )}\n </>\n )}\n </UIList.DataList>\n );\n};\n\nexport default ContentEntriesList;\n"],"mappings":"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"}
|
|
@@ -29,5 +29,5 @@ interface UseContentEntryProviderProps {
|
|
|
29
29
|
isNewEntry: () => boolean;
|
|
30
30
|
}
|
|
31
31
|
export declare const useContentEntryProviderProps: () => UseContentEntryProviderProps;
|
|
32
|
-
export declare const
|
|
32
|
+
export declare const ContentEntryProvider: React.FC<ContentEntryContextProviderProps>;
|
|
33
33
|
export {};
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.useContentEntryProviderProps = exports.
|
|
8
|
+
exports.useContentEntryProviderProps = exports.Context = exports.ContentEntryProvider = void 0;
|
|
9
9
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
|
|
11
11
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
@@ -37,7 +37,7 @@ var useContentEntryProviderProps = function useContentEntryProviderProps() {
|
|
|
37
37
|
};
|
|
38
38
|
};
|
|
39
39
|
exports.useContentEntryProviderProps = useContentEntryProviderProps;
|
|
40
|
-
var
|
|
40
|
+
var ContentEntryProvider = function ContentEntryProvider(_ref) {
|
|
41
41
|
var children = _ref.children,
|
|
42
42
|
isNewEntry = _ref.isNewEntry,
|
|
43
43
|
getContentId = _ref.getContentId;
|
|
@@ -159,5 +159,5 @@ var Provider = function Provider(_ref) {
|
|
|
159
159
|
value: value
|
|
160
160
|
}, children);
|
|
161
161
|
};
|
|
162
|
-
exports.
|
|
163
|
-
|
|
162
|
+
exports.ContentEntryProvider = ContentEntryProvider;
|
|
163
|
+
ContentEntryProvider.displayName = "ContentEntryProvider";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Context","React","createContext","undefined","useContentEntryProviderProps","useRouter","location","query","URLSearchParams","search","isNewEntry","get","getContentId","Provider","children","useContentEntries","contentModel","canCreate","listQueryVariables","setListQueryVariables","sorters","formRef","useRef","submit","history","useSnackbar","showSnackbar","useState","isLoading","setLoading","contentEntryProviderProps","newEntry","contentId","revisionId","decodeURIComponent","entryId","version","result","parseIdentifier","id","tabsRef","useMemo","READ_CONTENT","createReadQuery","modelId","GET_REVISIONS","createRevisionsQuery","setFormRef","useCallback","form","current","createEntry","push","variables","revision","getEntry","useQuery","skip","fetchPolicy","getFetchPolicy","onCompleted","data","error","content","message","getRevisions","loading","entry","value","revisions","refetchContent","refetch","showEmptyView","isEmpty","displayName"],"sources":["ContentEntryContext.tsx"],"sourcesContent":["import React, {\n useRef,\n useState,\n useCallback,\n useMemo,\n Dispatch,\n SetStateAction,\n MutableRefObject,\n RefObject\n} from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useQuery } from \"~/admin/hooks\";\nimport { ContentEntriesContext } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { useContentEntries } from \"~/admin/views/contentEntries/hooks/useContentEntries\";\nimport { CmsContentEntryRevision, CmsEditorContentEntry } from \"~/types\";\nimport { TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n createReadQuery,\n createRevisionsQuery\n} from \"~/admin/graphql/contentEntries\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy\";\n\ninterface ContentEntryContextForm {\n submit: (ev: React.SyntheticEvent) => Promise<CmsEditorContentEntry | null>;\n}\ntype ContentEntryContextFormRef = MutableRefObject<ContentEntryContextForm>;\nexport interface ContentEntryContext extends ContentEntriesContext {\n createEntry: () => void;\n entry: CmsEditorContentEntry;\n form: ContentEntryContextFormRef;\n setFormRef: (form: { submit: Function }) => void;\n loading: boolean;\n setLoading: Dispatch<SetStateAction<boolean>>;\n revisions: CmsContentEntryRevision[];\n refetchContent: () => void;\n tabsRef: RefObject<TabsImperativeApi | undefined>;\n showEmptyView: boolean;\n}\n\nexport const Context = React.createContext<ContentEntryContext | undefined>(undefined);\n\nexport interface ContentEntryContextProviderProps extends Partial<UseContentEntryProviderProps> {\n children: React.ReactNode;\n}\n\ninterface UseContentEntryProviderProps {\n getContentId: () => string | null;\n isNewEntry: () => boolean;\n}\n\nexport const useContentEntryProviderProps = (): UseContentEntryProviderProps => {\n const { location } = useRouter();\n const query = new URLSearchParams(location.search);\n\n const isNewEntry = (): boolean => {\n return query.get(\"new\") === \"true\";\n };\n\n const getContentId = (): string | null => {\n return query.get(\"id\") || null;\n };\n\n return {\n getContentId,\n isNewEntry\n };\n};\n\nexport const Provider: React.FC<ContentEntryContextProviderProps> = ({\n children,\n isNewEntry,\n getContentId\n}) => {\n const { contentModel, canCreate, listQueryVariables, setListQueryVariables, sorters } =\n useContentEntries();\n\n const formRef = useRef<ContentEntryContextForm>({\n submit: async () => {\n return null;\n }\n });\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const [isLoading, setLoading] = useState<boolean>(false);\n\n const contentEntryProviderProps = useContentEntryProviderProps();\n\n const newEntry =\n typeof isNewEntry === \"function\" ? isNewEntry() : contentEntryProviderProps.isNewEntry();\n const contentId =\n typeof getContentId === \"function\"\n ? getContentId()\n : contentEntryProviderProps.getContentId();\n\n const revisionId = contentId ? decodeURIComponent(contentId) : null;\n let entryId: string | null = null;\n let version: number | null = null;\n if (revisionId) {\n const result = parseIdentifier(revisionId);\n entryId = result.id;\n version = result.version;\n }\n\n const tabsRef = useRef<TabsImperativeApi>();\n\n const { READ_CONTENT } = useMemo(() => {\n return {\n READ_CONTENT: createReadQuery(contentModel)\n };\n }, [contentModel.modelId]);\n\n const { GET_REVISIONS } = useMemo(() => {\n return {\n GET_REVISIONS: createRevisionsQuery(contentModel)\n };\n }, [contentModel.modelId]);\n\n const setFormRef = useCallback(\n form => {\n formRef.current = form;\n },\n [formRef]\n );\n\n const createEntry = useCallback((): void => {\n history.push(`/cms/content-entries/${contentModel.modelId}?new=true`);\n }, [contentModel.modelId]);\n\n let variables: CmsEntryGetQueryVariables | undefined;\n if (version === null && entryId) {\n variables = {\n entryId\n };\n } else {\n variables = {\n revision: revisionId as string\n };\n }\n\n const getEntry = useQuery<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>(READ_CONTENT, {\n variables,\n skip: !revisionId,\n fetchPolicy: getFetchPolicy(contentModel),\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.content;\n if (!error) {\n return;\n }\n history.push(`/cms/content-entries/${contentModel.modelId}`);\n showSnackbar(error.message);\n }\n });\n\n const getRevisions = useQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(GET_REVISIONS, {\n variables: {\n id: entryId as string\n },\n skip: !entryId\n });\n\n const loading = isLoading || getEntry.loading || getRevisions.loading;\n const entry = (get(getEntry, \"data.content.data\") as unknown as CmsEditorContentEntry) || {};\n\n const value: ContentEntryContext = {\n canCreate,\n contentModel,\n createEntry,\n listQueryVariables,\n setListQueryVariables,\n sorters,\n entry,\n form: formRef,\n loading,\n revisions: get(getRevisions, \"data.revisions.data\") || [],\n refetchContent: getEntry.refetch,\n setFormRef,\n setLoading,\n tabsRef,\n showEmptyView: !newEntry && !loading && isEmpty(entry)\n };\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nProvider.displayName = \"ContentEntryProvider\";\n"],"mappings":";;;;;;;;;;;AAAA;AAUA;AACA;AACA;AACA;AACA;AAEA;AAGA;AACA;AAQA;AAmBO,IAAMA,OAAO,gBAAGC,cAAK,CAACC,aAAa,CAAkCC,SAAS,CAAC;AAAC;AAWhF,IAAMC,4BAA4B,GAAG,SAA/BA,4BAA4B,GAAuC;EAC5E,iBAAqB,IAAAC,sBAAS,GAAE;IAAxBC,QAAQ,cAARA,QAAQ;EAChB,IAAMC,KAAK,GAAG,IAAIC,eAAe,CAACF,QAAQ,CAACG,MAAM,CAAC;EAElD,IAAMC,UAAU,GAAG,SAAbA,UAAU,GAAkB;IAC9B,OAAOH,KAAK,CAACI,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM;EACtC,CAAC;EAED,IAAMC,YAAY,GAAG,SAAfA,YAAY,GAAwB;IACtC,OAAOL,KAAK,CAACI,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI;EAClC,CAAC;EAED,OAAO;IACHC,YAAY,EAAZA,YAAY;IACZF,UAAU,EAAVA;EACJ,CAAC;AACL,CAAC;AAAC;AAEK,IAAMG,QAAoD,GAAG,SAAvDA,QAAoD,OAI3D;EAAA,IAHFC,QAAQ,QAARA,QAAQ;IACRJ,UAAU,QAAVA,UAAU;IACVE,YAAY,QAAZA,YAAY;EAEZ,yBACI,IAAAG,qCAAiB,GAAE;IADfC,YAAY,sBAAZA,YAAY;IAAEC,SAAS,sBAATA,SAAS;IAAEC,kBAAkB,sBAAlBA,kBAAkB;IAAEC,qBAAqB,sBAArBA,qBAAqB;IAAEC,OAAO,sBAAPA,OAAO;EAGnF,IAAMC,OAAO,GAAG,IAAAC,aAAM,EAA0B;IAC5CC,MAAM;MAAA,qGAAE;QAAA;UAAA;YAAA;cAAA,iCACG,IAAI;YAAA;YAAA;cAAA;UAAA;QAAA;MAAA,CACd;MAAA;QAAA;MAAA;MAAA;IAAA;EACL,CAAC,CAAC;EACF,kBAAoB,IAAAlB,sBAAS,GAAE;IAAvBmB,OAAO,eAAPA,OAAO;EACf,mBAAyB,IAAAC,yBAAW,GAAE;IAA9BC,YAAY,gBAAZA,YAAY;EACpB,gBAAgC,IAAAC,eAAQ,EAAU,KAAK,CAAC;IAAA;IAAjDC,SAAS;IAAEC,UAAU;EAE5B,IAAMC,yBAAyB,GAAG1B,4BAA4B,EAAE;EAEhE,IAAM2B,QAAQ,GACV,OAAOrB,UAAU,KAAK,UAAU,GAAGA,UAAU,EAAE,GAAGoB,yBAAyB,CAACpB,UAAU,EAAE;EAC5F,IAAMsB,SAAS,GACX,OAAOpB,YAAY,KAAK,UAAU,GAC5BA,YAAY,EAAE,GACdkB,yBAAyB,CAAClB,YAAY,EAAE;EAElD,IAAMqB,UAAU,GAAGD,SAAS,GAAGE,kBAAkB,CAACF,SAAS,CAAC,GAAG,IAAI;EACnE,IAAIG,OAAsB,GAAG,IAAI;EACjC,IAAIC,OAAsB,GAAG,IAAI;EACjC,IAAIH,UAAU,EAAE;IACZ,IAAMI,MAAM,GAAG,IAAAC,sBAAe,EAACL,UAAU,CAAC;IAC1CE,OAAO,GAAGE,MAAM,CAACE,EAAE;IACnBH,OAAO,GAAGC,MAAM,CAACD,OAAO;EAC5B;EAEA,IAAMI,OAAO,GAAG,IAAAlB,aAAM,GAAqB;EAE3C,eAAyB,IAAAmB,cAAO,EAAC,YAAM;MACnC,OAAO;QACHC,YAAY,EAAE,IAAAC,+BAAe,EAAC3B,YAAY;MAC9C,CAAC;IACL,CAAC,EAAE,CAACA,YAAY,CAAC4B,OAAO,CAAC,CAAC;IAJlBF,YAAY,YAAZA,YAAY;EAMpB,gBAA0B,IAAAD,cAAO,EAAC,YAAM;MACpC,OAAO;QACHI,aAAa,EAAE,IAAAC,oCAAoB,EAAC9B,YAAY;MACpD,CAAC;IACL,CAAC,EAAE,CAACA,YAAY,CAAC4B,OAAO,CAAC,CAAC;IAJlBC,aAAa,aAAbA,aAAa;EAMrB,IAAME,UAAU,GAAG,IAAAC,kBAAW,EAC1B,UAAAC,IAAI,EAAI;IACJ5B,OAAO,CAAC6B,OAAO,GAAGD,IAAI;EAC1B,CAAC,EACD,CAAC5B,OAAO,CAAC,CACZ;EAED,IAAM8B,WAAW,GAAG,IAAAH,kBAAW,EAAC,YAAY;IACxCxB,OAAO,CAAC4B,IAAI,gCAAyBpC,YAAY,CAAC4B,OAAO,eAAY;EACzE,CAAC,EAAE,CAAC5B,YAAY,CAAC4B,OAAO,CAAC,CAAC;EAE1B,IAAIS,SAAgD;EACpD,IAAIjB,OAAO,KAAK,IAAI,IAAID,OAAO,EAAE;IAC7BkB,SAAS,GAAG;MACRlB,OAAO,EAAPA;IACJ,CAAC;EACL,CAAC,MAAM;IACHkB,SAAS,GAAG;MACRC,QAAQ,EAAErB;IACd,CAAC;EACL;EAEA,IAAMsB,QAAQ,GAAG,IAAAC,eAAQ,EAAsDd,YAAY,EAAE;IACzFW,SAAS,EAATA,SAAS;IACTI,IAAI,EAAE,CAACxB,UAAU;IACjByB,WAAW,EAAE,IAAAC,8BAAc,EAAC3C,YAAY,CAAC;IACzC4C,WAAW,EAAE,qBAAAC,IAAI,EAAI;MACjB,IAAI,CAACA,IAAI,EAAE;QACP;MACJ;MAEA,IAAQC,KAAK,GAAKD,IAAI,CAACE,OAAO,CAAtBD,KAAK;MACb,IAAI,CAACA,KAAK,EAAE;QACR;MACJ;MACAtC,OAAO,CAAC4B,IAAI,gCAAyBpC,YAAY,CAAC4B,OAAO,EAAG;MAC5DlB,YAAY,CAACoC,KAAK,CAACE,OAAO,CAAC;IAC/B;EACJ,CAAC,CAAC;EAEF,IAAMC,YAAY,GAAG,IAAAT,eAAQ,EAG3BX,aAAa,EAAE;IACbQ,SAAS,EAAE;MACPd,EAAE,EAAEJ;IACR,CAAC;IACDsB,IAAI,EAAE,CAACtB;EACX,CAAC,CAAC;EAEF,IAAM+B,OAAO,GAAGtC,SAAS,IAAI2B,QAAQ,CAACW,OAAO,IAAID,YAAY,CAACC,OAAO;EACrE,IAAMC,KAAK,GAAI,IAAAxD,YAAG,EAAC4C,QAAQ,EAAE,mBAAmB,CAAC,IAAyC,CAAC,CAAC;EAE5F,IAAMa,KAA0B,GAAG;IAC/BnD,SAAS,EAATA,SAAS;IACTD,YAAY,EAAZA,YAAY;IACZmC,WAAW,EAAXA,WAAW;IACXjC,kBAAkB,EAAlBA,kBAAkB;IAClBC,qBAAqB,EAArBA,qBAAqB;IACrBC,OAAO,EAAPA,OAAO;IACP+C,KAAK,EAALA,KAAK;IACLlB,IAAI,EAAE5B,OAAO;IACb6C,OAAO,EAAPA,OAAO;IACPG,SAAS,EAAE,IAAA1D,YAAG,EAACsD,YAAY,EAAE,qBAAqB,CAAC,IAAI,EAAE;IACzDK,cAAc,EAAEf,QAAQ,CAACgB,OAAO;IAChCxB,UAAU,EAAVA,UAAU;IACVlB,UAAU,EAAVA,UAAU;IACVW,OAAO,EAAPA,OAAO;IACPgC,aAAa,EAAE,CAACzC,QAAQ,IAAI,CAACmC,OAAO,IAAI,IAAAO,gBAAO,EAACN,KAAK;EACzD,CAAC;EAED,oBAAO,6BAAC,OAAO,CAAC,QAAQ;IAAC,KAAK,EAAEC;EAAM,GAAEtD,QAAQ,CAAoB;AACxE,CAAC;AAAC;AAEFD,QAAQ,CAAC6D,WAAW,GAAG,sBAAsB"}
|
|
1
|
+
{"version":3,"names":["Context","React","createContext","undefined","useContentEntryProviderProps","useRouter","location","query","URLSearchParams","search","isNewEntry","get","getContentId","ContentEntryProvider","children","useContentEntries","contentModel","canCreate","listQueryVariables","setListQueryVariables","sorters","formRef","useRef","submit","history","useSnackbar","showSnackbar","useState","isLoading","setLoading","contentEntryProviderProps","newEntry","contentId","revisionId","decodeURIComponent","entryId","version","result","parseIdentifier","id","tabsRef","useMemo","READ_CONTENT","createReadQuery","modelId","GET_REVISIONS","createRevisionsQuery","setFormRef","useCallback","form","current","createEntry","push","variables","revision","getEntry","useQuery","skip","fetchPolicy","getFetchPolicy","onCompleted","data","error","content","message","getRevisions","loading","entry","value","revisions","refetchContent","refetch","showEmptyView","isEmpty","displayName"],"sources":["ContentEntryContext.tsx"],"sourcesContent":["import React, {\n useRef,\n useState,\n useCallback,\n useMemo,\n Dispatch,\n SetStateAction,\n MutableRefObject,\n RefObject\n} from \"react\";\nimport isEmpty from \"lodash/isEmpty\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useQuery } from \"~/admin/hooks\";\nimport { ContentEntriesContext } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { useContentEntries } from \"~/admin/views/contentEntries/hooks/useContentEntries\";\nimport { CmsContentEntryRevision, CmsEditorContentEntry } from \"~/types\";\nimport { TabsImperativeApi } from \"@webiny/ui/Tabs\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n createReadQuery,\n createRevisionsQuery\n} from \"~/admin/graphql/contentEntries\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy\";\n\ninterface ContentEntryContextForm {\n submit: (ev: React.SyntheticEvent) => Promise<CmsEditorContentEntry | null>;\n}\ntype ContentEntryContextFormRef = MutableRefObject<ContentEntryContextForm>;\nexport interface ContentEntryContext extends ContentEntriesContext {\n createEntry: () => void;\n entry: CmsEditorContentEntry;\n form: ContentEntryContextFormRef;\n setFormRef: (form: { submit: Function }) => void;\n loading: boolean;\n setLoading: Dispatch<SetStateAction<boolean>>;\n revisions: CmsContentEntryRevision[];\n refetchContent: () => void;\n tabsRef: RefObject<TabsImperativeApi | undefined>;\n showEmptyView: boolean;\n}\n\nexport const Context = React.createContext<ContentEntryContext | undefined>(undefined);\n\nexport interface ContentEntryContextProviderProps extends Partial<UseContentEntryProviderProps> {\n children: React.ReactNode;\n}\n\ninterface UseContentEntryProviderProps {\n getContentId: () => string | null;\n isNewEntry: () => boolean;\n}\n\nexport const useContentEntryProviderProps = (): UseContentEntryProviderProps => {\n const { location } = useRouter();\n const query = new URLSearchParams(location.search);\n\n const isNewEntry = (): boolean => {\n return query.get(\"new\") === \"true\";\n };\n\n const getContentId = (): string | null => {\n return query.get(\"id\") || null;\n };\n\n return {\n getContentId,\n isNewEntry\n };\n};\n\nexport const ContentEntryProvider: React.FC<ContentEntryContextProviderProps> = ({\n children,\n isNewEntry,\n getContentId\n}) => {\n const { contentModel, canCreate, listQueryVariables, setListQueryVariables, sorters } =\n useContentEntries();\n\n const formRef = useRef<ContentEntryContextForm>({\n submit: async () => {\n return null;\n }\n });\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const [isLoading, setLoading] = useState<boolean>(false);\n\n const contentEntryProviderProps = useContentEntryProviderProps();\n\n const newEntry =\n typeof isNewEntry === \"function\" ? isNewEntry() : contentEntryProviderProps.isNewEntry();\n const contentId =\n typeof getContentId === \"function\"\n ? getContentId()\n : contentEntryProviderProps.getContentId();\n\n const revisionId = contentId ? decodeURIComponent(contentId) : null;\n let entryId: string | null = null;\n let version: number | null = null;\n if (revisionId) {\n const result = parseIdentifier(revisionId);\n entryId = result.id;\n version = result.version;\n }\n\n const tabsRef = useRef<TabsImperativeApi>();\n\n const { READ_CONTENT } = useMemo(() => {\n return {\n READ_CONTENT: createReadQuery(contentModel)\n };\n }, [contentModel.modelId]);\n\n const { GET_REVISIONS } = useMemo(() => {\n return {\n GET_REVISIONS: createRevisionsQuery(contentModel)\n };\n }, [contentModel.modelId]);\n\n const setFormRef = useCallback(\n form => {\n formRef.current = form;\n },\n [formRef]\n );\n\n const createEntry = useCallback((): void => {\n history.push(`/cms/content-entries/${contentModel.modelId}?new=true`);\n }, [contentModel.modelId]);\n\n let variables: CmsEntryGetQueryVariables | undefined;\n if (version === null && entryId) {\n variables = {\n entryId\n };\n } else {\n variables = {\n revision: revisionId as string\n };\n }\n\n const getEntry = useQuery<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>(READ_CONTENT, {\n variables,\n skip: !revisionId,\n fetchPolicy: getFetchPolicy(contentModel),\n onCompleted: data => {\n if (!data) {\n return;\n }\n\n const { error } = data.content;\n if (!error) {\n return;\n }\n history.push(`/cms/content-entries/${contentModel.modelId}`);\n showSnackbar(error.message);\n }\n });\n\n const getRevisions = useQuery<\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables\n >(GET_REVISIONS, {\n variables: {\n id: entryId as string\n },\n skip: !entryId\n });\n\n const loading = isLoading || getEntry.loading || getRevisions.loading;\n const entry = (get(getEntry, \"data.content.data\") as unknown as CmsEditorContentEntry) || {};\n\n const value: ContentEntryContext = {\n canCreate,\n contentModel,\n createEntry,\n listQueryVariables,\n setListQueryVariables,\n sorters,\n entry,\n form: formRef,\n loading,\n revisions: get(getRevisions, \"data.revisions.data\") || [],\n refetchContent: getEntry.refetch,\n setFormRef,\n setLoading,\n tabsRef,\n showEmptyView: !newEntry && !loading && isEmpty(entry)\n };\n\n return <Context.Provider value={value}>{children}</Context.Provider>;\n};\n\nContentEntryProvider.displayName = \"ContentEntryProvider\";\n"],"mappings":"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"}
|