@webiny/app-headless-cms 5.25.0-beta.5 → 5.25.1-beta.0
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/HeadlessCMS.js +2 -1
- package/HeadlessCMS.js.map +1 -1
- package/admin/contexts/Cms/index.d.ts +2 -2
- package/admin/contexts/Cms/index.js +0 -8
- package/admin/contexts/Cms/index.js.map +1 -1
- package/admin/hooks/useCms.d.ts +2 -2
- package/admin/hooks/useCms.js.map +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.js +1 -1
- package/admin/plugins/fieldRenderers/dateTime/utils.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReference.js +5 -3
- package/admin/plugins/fieldRenderers/ref/components/useReference.js.map +1 -1
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js +15 -0
- package/admin/plugins/fieldRenderers/ref/components/useReferences.js.map +1 -1
- package/admin/plugins/index.d.ts +1 -1
- package/admin/plugins/routes.js +2 -4
- package/admin/plugins/routes.js.map +1 -1
- package/admin/plugins/transformers/dateTransformer.js +2 -2
- package/admin/plugins/transformers/dateTransformer.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.d.ts +1 -1
- package/admin/views/contentEntries/ContentEntriesContext.js +34 -22
- package/admin/views/contentEntries/ContentEntriesContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntriesList.js +40 -43
- package/admin/views/contentEntries/ContentEntriesList.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js +1 -1
- package/admin/views/contentEntries/ContentEntry/ContentEntryContext.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/cache.js +1 -1
- package/admin/views/contentEntries/ContentEntry/cache.js.map +1 -1
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js +1 -0
- package/admin/views/contentEntries/ContentEntry/header/contentFormOptionsMenu/ContentFormOptionsMenu.js.map +1 -1
- package/admin/views/contentEntries/experiment/ContentEntriesModule.d.ts +1 -0
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js +50 -0
- package/admin/views/contentEntries/experiment/ContentEntriesModule.js.map +1 -0
- package/admin/views/contentEntries/experiment/ContentEntriesRenderer.d.ts +2 -0
- package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js +12 -0
- package/admin/views/contentEntries/experiment/ContentEntriesRenderer.js.map +1 -0
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.d.ts +35 -0
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js +130 -0
- package/admin/views/contentEntries/experiment/ContentEntriesViewConfig.js.map +1 -0
- package/admin/views/contentEntries/experiment/Property.d.ts +34 -0
- package/admin/views/contentEntries/experiment/Property.js +232 -0
- package/admin/views/contentEntries/experiment/Property.js.map +1 -0
- package/admin/views/contentEntries/hooks/useContentEntriesList.js +2 -1
- package/admin/views/contentEntries/hooks/useContentEntriesList.js.map +1 -1
- package/admin/views/contentModels/NewContentModelDialog.js +8 -5
- package/admin/views/contentModels/NewContentModelDialog.js.map +1 -1
- package/index.d.ts +10 -0
- package/index.js +11 -1
- package/index.js.map +1 -1
- package/package.json +23 -22
package/HeadlessCMS.js
CHANGED
|
@@ -4,6 +4,7 @@ import { Plugins, Provider } from "@webiny/app-admin";
|
|
|
4
4
|
import { CmsProvider } from "./admin/contexts/Cms";
|
|
5
5
|
import { CmsMenuLoader } from "./admin/menus/CmsMenuLoader";
|
|
6
6
|
import apiInformation from "./admin/plugins/apiInformation";
|
|
7
|
+
import { ContentEntriesModule } from "./admin/views/contentEntries/experiment/ContentEntriesModule";
|
|
7
8
|
|
|
8
9
|
var createHeadlessCMSProvider = function createHeadlessCMSProvider(createApolloClient) {
|
|
9
10
|
return function (Component) {
|
|
@@ -19,7 +20,7 @@ var createHeadlessCMSProvider = function createHeadlessCMSProvider(createApolloC
|
|
|
19
20
|
var HeadlessCMSExtension = function HeadlessCMSExtension(_ref2) {
|
|
20
21
|
var createApolloClient = _ref2.createApolloClient;
|
|
21
22
|
plugins.register(apiInformation);
|
|
22
|
-
return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(Provider, {
|
|
23
|
+
return /*#__PURE__*/React.createElement(Fragment, null, /*#__PURE__*/React.createElement(ContentEntriesModule, null), /*#__PURE__*/React.createElement(Provider, {
|
|
23
24
|
hoc: createHeadlessCMSProvider(createApolloClient)
|
|
24
25
|
}), /*#__PURE__*/React.createElement(Plugins, null, /*#__PURE__*/React.createElement(CmsMenuLoader, null)));
|
|
25
26
|
};
|
package/HeadlessCMS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HeadlessCMS.tsx"],"names":["React","Fragment","memo","plugins","Plugins","Provider","CmsProvider","CmsMenuLoader","apiInformation","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","HeadlessCMSExtension","register","HeadlessCMS"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,IAA1B,QAAsC,OAAtC;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,mBAAlC;AAEA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,OAAOC,cAAP;;AAEA,IAAMC,yBAAyB,GAC3B,SADEA,yBACF,CAACC,kBAAD;AAAA,SACA,UAACC,SAAD,EAAmC;AAC/B,WAAO,SAASC,mBAAT,OAA2C;AAAA,UAAZC,QAAY,QAAZA,QAAY;AAC9C,0BACI,oBAAC,WAAD;AAAa,QAAA,kBAAkB,EAAEH;AAAjC,sBACI,oBAAC,SAAD,QAAYG,QAAZ,CADJ,CADJ;AAKH,KAND;AAOH,GATD;AAAA,CADJ;;AAuBA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,QAA8C;AAAA,MAA3CJ,kBAA2C,SAA3CA,kBAA2C;
|
|
1
|
+
{"version":3,"sources":["HeadlessCMS.tsx"],"names":["React","Fragment","memo","plugins","Plugins","Provider","CmsProvider","CmsMenuLoader","apiInformation","ContentEntriesModule","createHeadlessCMSProvider","createApolloClient","Component","HeadlessCMSProvider","children","HeadlessCMSExtension","register","HeadlessCMS"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,QAAhB,EAA0BC,IAA1B,QAAsC,OAAtC;AACA,SAASC,OAAT,QAAwB,iBAAxB;AACA,SAASC,OAAT,EAAkBC,QAAlB,QAAkC,mBAAlC;AAEA,SAASC,WAAT;AACA,SAASC,aAAT;AACA,OAAOC,cAAP;AACA,SAASC,oBAAT;;AAEA,IAAMC,yBAAyB,GAC3B,SADEA,yBACF,CAACC,kBAAD;AAAA,SACA,UAACC,SAAD,EAAmC;AAC/B,WAAO,SAASC,mBAAT,OAA2C;AAAA,UAAZC,QAAY,QAAZA,QAAY;AAC9C,0BACI,oBAAC,WAAD;AAAa,QAAA,kBAAkB,EAAEH;AAAjC,sBACI,oBAAC,SAAD,QAAYG,QAAZ,CADJ,CADJ;AAKH,KAND;AAOH,GATD;AAAA,CADJ;;AAuBA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,QAA8C;AAAA,MAA3CJ,kBAA2C,SAA3CA,kBAA2C;AACvER,EAAAA,OAAO,CAACa,QAAR,CAAiBR,cAAjB;AAEA,sBACI,oBAAC,QAAD,qBACI,oBAAC,oBAAD,OADJ,eAEI,oBAAC,QAAD;AAAU,IAAA,GAAG,EAAEE,yBAAyB,CAACC,kBAAD;AAAxC,IAFJ,eAGI,oBAAC,OAAD,qBACI,oBAAC,aAAD,OADJ,CAHJ,CADJ;AASH,CAZD;;AAcA,OAAO,IAAMM,WAAW,gBAAGf,IAAI,CAACa,oBAAD,CAAxB","sourcesContent":["import React, { Fragment, memo } from \"react\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Plugins, Provider } from \"@webiny/app-admin\";\nimport { ApolloClient } from \"apollo-client\";\nimport { CmsProvider } from \"./admin/contexts/Cms\";\nimport { CmsMenuLoader } from \"~/admin/menus/CmsMenuLoader\";\nimport apiInformation from \"./admin/plugins/apiInformation\";\nimport { ContentEntriesModule } from \"./admin/views/contentEntries/experiment/ContentEntriesModule\";\n\nconst createHeadlessCMSProvider =\n (createApolloClient: CreateApolloClient) =>\n (Component: React.FC): React.FC => {\n return function HeadlessCMSProvider({ children }) {\n return (\n <CmsProvider createApolloClient={createApolloClient}>\n <Component>{children}</Component>\n </CmsProvider>\n );\n };\n };\n\ninterface CreateApolloClientParams {\n uri: string;\n}\ninterface CreateApolloClient {\n (params: CreateApolloClientParams): ApolloClient<any>;\n}\n\nexport interface HeadlessCMSProps {\n createApolloClient: CreateApolloClient;\n}\n\nconst HeadlessCMSExtension = ({ createApolloClient }: HeadlessCMSProps) => {\n plugins.register(apiInformation);\n\n return (\n <Fragment>\n <ContentEntriesModule />\n <Provider hoc={createHeadlessCMSProvider(createApolloClient)} />\n <Plugins>\n <CmsMenuLoader />\n </Plugins>\n </Fragment>\n );\n};\n\nexport const HeadlessCMS = memo(HeadlessCMSExtension);\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import ApolloClient from "apollo-client";
|
|
3
|
-
export interface
|
|
3
|
+
export interface CmsContext {
|
|
4
4
|
getApolloClient(locale: string): ApolloClient<any>;
|
|
5
5
|
createApolloClient: CmsProviderProps["createApolloClient"];
|
|
6
6
|
apolloClient: ApolloClient<any>;
|
|
7
7
|
}
|
|
8
|
-
export declare const CmsContext: React.Context<
|
|
8
|
+
export declare const CmsContext: React.Context<CmsContext>;
|
|
9
9
|
export interface CmsProviderProps {
|
|
10
10
|
createApolloClient: (params: {
|
|
11
11
|
uri: string;
|
|
@@ -23,14 +23,6 @@ export var CmsProvider = function CmsProvider(props) {
|
|
|
23
23
|
getCurrentLocale = _useI18N.getCurrentLocale;
|
|
24
24
|
|
|
25
25
|
var currentLocale = getCurrentLocale("content");
|
|
26
|
-
/**
|
|
27
|
-
* TODO @ts-refactor @pavel did you think about this?
|
|
28
|
-
*/
|
|
29
|
-
// TODO: not sure why this was necessary :thinking:
|
|
30
|
-
// const hasPermission = identity.getPermission("cms.endpoint.manage");
|
|
31
|
-
// if (!hasPermission) {
|
|
32
|
-
// return <CmsContext.Provider value={{}} {...props} />;
|
|
33
|
-
// }
|
|
34
26
|
|
|
35
27
|
if (currentLocale && !apolloClientsCache[currentLocale]) {
|
|
36
28
|
apolloClientsCache[currentLocale] = props.createApolloClient({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["React","useI18N","CircularProgress","config","appConfig","CmsContext","createContext","getApolloClient","createApolloClient","apolloClient","apolloClientsCache","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","getCurrentLocale","currentLocale","uri","value","locale"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,OAAT,QAAwB,gCAAxB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,MAAM,IAAIC,SAAnB,QAAoC,oBAApC;AAQA,OAAO,IAAMC,UAAU,gBAAGL,KAAK,CAACM,aAAN,
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["React","useI18N","CircularProgress","config","appConfig","CmsContext","createContext","getApolloClient","createApolloClient","apolloClient","apolloClientsCache","CmsProvider","props","apiUrl","getKey","process","env","REACT_APP_API_URL","getCurrentLocale","currentLocale","uri","value","locale"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAASC,OAAT,QAAwB,gCAAxB;AACA,SAASC,gBAAT,QAAiC,qBAAjC;AACA,SAASC,MAAM,IAAIC,SAAnB,QAAoC,oBAApC;AAQA,OAAO,IAAMC,UAAU,gBAAGL,KAAK,CAACM,aAAN,CAAgC;AACtDC,EAAAA,eAAe,EAAE,2BAAM;AACnB,WAAO,IAAP;AACH,GAHqD;AAItDC,EAAAA,kBAAkB,EAAE,8BAAM;AACtB,WAAO,IAAP;AACH,GANqD;AAOtDC,EAAAA,YAAY,EAAE;AACd;AACJ;AACA;;AAV0D,CAAhC,CAAnB;AAiBP,IAAMC,kBAAsC,GAAG,EAA/C;AAOA,OAAO,IAAMC,WAAuC,GAAG,SAA1CA,WAA0C,CAAAC,KAAK,EAAI;AAC5D,MAAMC,MAAM,GAAGT,SAAS,CAACU,MAAV,CAAiB,SAAjB,EAA4BC,OAAO,CAACC,GAAR,CAAYC,iBAAxC,CAAf;;AACA,iBAA6BhB,OAAO,EAApC;AAAA,MAAQiB,gBAAR,YAAQA,gBAAR;;AAEA,MAAMC,aAAa,GAAGD,gBAAgB,CAAC,SAAD,CAAtC;;AAEA,MAAIC,aAAa,IAAI,CAACT,kBAAkB,CAACS,aAAD,CAAxC,EAAyD;AACrDT,IAAAA,kBAAkB,CAACS,aAAD,CAAlB,GAAoCP,KAAK,CAACJ,kBAAN,CAAyB;AACzDY,MAAAA,GAAG,YAAKP,MAAL,yBAA0BM,aAA1B;AADsD,KAAzB,CAApC;AAGH;;AAED,MAAI,CAACA,aAAL,EAAoB;AAChB,wBAAO,oBAAC,gBAAD,OAAP;AACH;;AAED,MAAME,KAAK,GAAG;AACVd,IAAAA,eADU,2BACMe,MADN,EACsB;AAC5B,UAAI,CAACZ,kBAAkB,CAACY,MAAD,CAAvB,EAAiC;AAC7BZ,QAAAA,kBAAkB,CAACY,MAAD,CAAlB,GAA6BV,KAAK,CAACJ,kBAAN,CAAyB;AAClDY,UAAAA,GAAG,YAAKP,MAAL,yBAA0BS,MAA1B;AAD+C,SAAzB,CAA7B;AAGH;;AACD,aAAOZ,kBAAkB,CAACY,MAAD,CAAzB;AACH,KARS;AASVd,IAAAA,kBAAkB,EAAEI,KAAK,CAACJ,kBAThB;AAUVC,IAAAA,YAAY,EAAEC,kBAAkB,CAACS,aAAD;AAVtB,GAAd;AAaA,sBAAO,oBAAC,UAAD,CAAY,QAAZ;AAAqB,IAAA,KAAK,EAAEE;AAA5B,KAAuCT,KAAvC,EAAP;AACH,CA9BM","sourcesContent":["import React from \"react\";\nimport ApolloClient from \"apollo-client\";\nimport { useI18N } from \"@webiny/app-i18n/hooks/useI18N\";\nimport { CircularProgress } from \"@webiny/ui/Progress\";\nimport { config as appConfig } from \"@webiny/app/config\";\n\nexport interface CmsContext {\n getApolloClient(locale: string): ApolloClient<any>;\n createApolloClient: CmsProviderProps[\"createApolloClient\"];\n apolloClient: ApolloClient<any>;\n}\n\nexport const CmsContext = React.createContext<CmsContext>({\n getApolloClient: () => {\n return null;\n },\n createApolloClient: () => {\n return null;\n },\n apolloClient: null\n /**\n * Safe to cast.\n */\n} as unknown as CmsContext);\n\ninterface ApolloClientsCache {\n [locale: string]: ApolloClient<any>;\n}\n\nconst apolloClientsCache: ApolloClientsCache = {};\n\nexport interface CmsProviderProps {\n createApolloClient: (params: { uri: string }) => ApolloClient<any>;\n children: React.ReactNode;\n}\n\nexport const CmsProvider: React.FC<CmsProviderProps> = props => {\n const apiUrl = appConfig.getKey(\"API_URL\", process.env.REACT_APP_API_URL);\n const { getCurrentLocale } = useI18N();\n\n const currentLocale = getCurrentLocale(\"content\");\n\n if (currentLocale && !apolloClientsCache[currentLocale]) {\n apolloClientsCache[currentLocale] = props.createApolloClient({\n uri: `${apiUrl}/cms/manage/${currentLocale}`\n });\n }\n\n if (!currentLocale) {\n return <CircularProgress />;\n }\n\n const value = {\n getApolloClient(locale: string) {\n if (!apolloClientsCache[locale]) {\n apolloClientsCache[locale] = props.createApolloClient({\n uri: `${apiUrl}/cms/manage/${locale}`\n });\n }\n return apolloClientsCache[locale];\n },\n createApolloClient: props.createApolloClient,\n apolloClient: apolloClientsCache[currentLocale]\n };\n\n return <CmsContext.Provider value={value} {...props} />;\n};\n"]}
|
package/admin/hooks/useCms.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare function useCms():
|
|
1
|
+
import { CmsContext } from "../contexts/Cms";
|
|
2
|
+
declare function useCms(): CmsContext;
|
|
3
3
|
export default useCms;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCms.ts"],"names":["useContext","CmsContext","useCms","context","Error"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,UAAT;;AAEA,SAASC,MAAT,GAAkB;AACd,MAAMC,OAAO,GAAGH,UAAU,
|
|
1
|
+
{"version":3,"sources":["useCms.ts"],"names":["useContext","CmsContext","useCms","context","Error"],"mappings":"AAAA,SAASA,UAAT,QAA2B,OAA3B;AACA,SAASC,UAAT;;AAEA,SAASC,MAAT,GAAkB;AACd,MAAMC,OAAO,GAAGH,UAAU,CAACC,UAAD,CAA1B;;AACA,MAAI,CAACE,OAAL,EAAc;AACV,UAAM,IAAIC,KAAJ,CAAU,0CAAV,CAAN;AACH;;AAED,SAAOD,OAAP;AACH;;AAED,eAAeD,MAAf","sourcesContent":["import { useContext } from \"react\";\nimport { CmsContext } from \"../contexts/Cms\";\n\nfunction useCms() {\n const context = useContext(CmsContext);\n if (!context) {\n throw new Error(\"useCms must be used within a CmsProvider\");\n }\n\n return context;\n}\n\nexport default useCms;\n"]}
|
|
@@ -144,7 +144,7 @@ export var getCurrentTimeZone = function getCurrentTimeZone(date) {
|
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
var timezone = matches[1];
|
|
147
|
-
return "".concat(timezone.
|
|
147
|
+
return "".concat(timezone.slice(0, 3), ":").concat(timezone.slice(3));
|
|
148
148
|
};
|
|
149
149
|
export var getCurrentLocalTime = function getCurrentLocalTime(date) {
|
|
150
150
|
if (!date) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["utils.tsx"],"names":["React","css","Cell","IconButton","UTC_TIMEZONES","value","label","DEFAULT_TIMEZONE","getDefaultFieldValue","field","bind","getCurrent","def","settings","defaultSetValue","getCurrentTimeZone","date","Date","toTimeString","matches","match","timezone","substr","getCurrentLocalTime","split","time","getCurrentDate","year","String","getFullYear","padStart","month","getMonth","day","getDate","deleteIconStyles","width","height","color","RemoveFieldButton","trailingIcon","onClick","icon"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Cell } from \"@webiny/ui/Grid\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { CmsEditorField } from \"~/types\";\n\nexport const UTC_TIMEZONES = [\n {\n value: \"-12:00\",\n label: \"UTC-12:00\"\n },\n {\n value: \"-11:00\",\n label: \"UTC-11:00\"\n },\n {\n value: \"-10:00\",\n label: \"UTC-10:00\"\n },\n {\n value: \"-09:30\",\n label: \"UTC-09:30\"\n },\n {\n value: \"-09:00\",\n label: \"UTC-09:00\"\n },\n {\n value: \"-08:00\",\n label: \"UTC-08:00\"\n },\n {\n value: \"-07:00\",\n label: \"UTC-07:00\"\n },\n {\n value: \"-06:00\",\n label: \"UTC-06:00\"\n },\n {\n value: \"-05:00\",\n label: \"UTC-05:00\"\n },\n {\n value: \"-04:30\",\n label: \"UTC-04:30\"\n },\n {\n value: \"-04:00\",\n label: \"UTC-04:00\"\n },\n {\n value: \"-03:30\",\n label: \"UTC-03:30\"\n },\n {\n value: \"-03:00\",\n label: \"UTC-03:00\"\n },\n {\n value: \"-02:00\",\n label: \"UTC-02:00\"\n },\n {\n value: \"-01:00\",\n label: \"UTC-01:00\"\n },\n {\n value: \"+00:00\",\n label: \"UTC+00:00\"\n },\n {\n value: \"+01:00\",\n label: \"UTC+01:00\"\n },\n {\n value: \"+02:00\",\n label: \"UTC+02:00\"\n },\n {\n value: \"+03:00\",\n label: \"UTC+03:00\"\n },\n {\n value: \"+03:30\",\n label: \"UTC+03:30\"\n },\n {\n value: \"+04:00\",\n label: \"UTC+04:00\"\n },\n {\n value: \"+04:30\",\n label: \"UTC+04:30\"\n },\n {\n value: \"+05:30\",\n label: \"UTC+05:30\"\n },\n {\n value: \"+05:45\",\n label: \"UTC+05:45\"\n },\n {\n value: \"+06:00\",\n label: \"UTC+06:00\"\n },\n {\n value: \"+06:30\",\n label: \"UTC+06:30\"\n },\n {\n value: \"+07:00\",\n label: \"UTC+07:00\"\n },\n {\n value: \"+08:00\",\n label: \"UTC+08:00\"\n },\n {\n value: \"+08:45\",\n label: \"UTC+08:45\"\n },\n {\n value: \"+09:00\",\n label: \"UTC+09:00\"\n },\n {\n value: \"+09:30\",\n label: \"UTC+09:30\"\n },\n {\n value: \"+10:00\",\n label: \"UTC+10:00\"\n },\n {\n value: \"+10:30\",\n label: \"UTC+10:30\"\n },\n {\n value: \"+11:00\",\n label: \"UTC+11:00\"\n },\n {\n value: \"+11:30\",\n label: \"UTC+11:30\"\n },\n {\n value: \"+12:00\",\n label: \"UTC+12:00\"\n },\n {\n value: \"+12:45\",\n label: \"UTC+12:45\"\n },\n {\n value: \"+13:00\",\n label: \"UTC+13:00\"\n },\n {\n value: \"+14:00\",\n label: \"UTC+14:00\"\n }\n];\n\nexport const DEFAULT_TIMEZONE = \"+01:00\";\n\nexport const getDefaultFieldValue = (\n field: CmsEditorField,\n bind: {\n value: string | null | undefined;\n },\n getCurrent: () => string\n): string => {\n const def = field.settings ? field.settings.defaultSetValue || \"null\" : \"null\";\n if (bind.value || def !== \"current\") {\n return bind.value || \"\";\n }\n return getCurrent();\n};\n\nexport const getCurrentTimeZone = (date?: Date): string | null => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const matches = value.match(/GMT([+-][0-9]{4})/);\n if (!matches) {\n return null;\n }\n const timezone = matches[1];\n return `${timezone.substr(0, 3)}:${timezone.substr(3)}`;\n};\n\nexport const getCurrentLocalTime = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const [time] = value.split(\" \");\n if (!time || time.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})$/) === null) {\n return \"00:00:00\";\n }\n return time;\n};\n\nexport const getCurrentDate = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const year = String(date.getFullYear()).padStart(4, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n return `${year}-${month}-${day}`;\n};\n\nconst deleteIconStyles = css({\n width: \"100% !important\",\n height: \"100% !important\",\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n});\n\ninterface RemoveFieldButtonProps {\n // TODO @ts-refactor figure out correct trailing icon type\n // @ts-ignore\n trailingIcon: any;\n}\nexport const RemoveFieldButton: React.FC<RemoveFieldButtonProps> = ({ trailingIcon }) => {\n if (!trailingIcon) {\n return null;\n }\n return (\n <Cell span={1}>\n <IconButton\n className={deleteIconStyles}\n onClick={trailingIcon.onClick}\n icon={trailingIcon.icon}\n />\n </Cell>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["utils.tsx"],"names":["React","css","Cell","IconButton","UTC_TIMEZONES","value","label","DEFAULT_TIMEZONE","getDefaultFieldValue","field","bind","getCurrent","def","settings","defaultSetValue","getCurrentTimeZone","date","Date","toTimeString","matches","match","timezone","slice","getCurrentLocalTime","split","time","getCurrentDate","year","String","getFullYear","padStart","month","getMonth","day","getDate","deleteIconStyles","width","height","color","RemoveFieldButton","trailingIcon","onClick","icon"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { css } from \"emotion\";\nimport { Cell } from \"@webiny/ui/Grid\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { CmsEditorField } from \"~/types\";\n\nexport const UTC_TIMEZONES = [\n {\n value: \"-12:00\",\n label: \"UTC-12:00\"\n },\n {\n value: \"-11:00\",\n label: \"UTC-11:00\"\n },\n {\n value: \"-10:00\",\n label: \"UTC-10:00\"\n },\n {\n value: \"-09:30\",\n label: \"UTC-09:30\"\n },\n {\n value: \"-09:00\",\n label: \"UTC-09:00\"\n },\n {\n value: \"-08:00\",\n label: \"UTC-08:00\"\n },\n {\n value: \"-07:00\",\n label: \"UTC-07:00\"\n },\n {\n value: \"-06:00\",\n label: \"UTC-06:00\"\n },\n {\n value: \"-05:00\",\n label: \"UTC-05:00\"\n },\n {\n value: \"-04:30\",\n label: \"UTC-04:30\"\n },\n {\n value: \"-04:00\",\n label: \"UTC-04:00\"\n },\n {\n value: \"-03:30\",\n label: \"UTC-03:30\"\n },\n {\n value: \"-03:00\",\n label: \"UTC-03:00\"\n },\n {\n value: \"-02:00\",\n label: \"UTC-02:00\"\n },\n {\n value: \"-01:00\",\n label: \"UTC-01:00\"\n },\n {\n value: \"+00:00\",\n label: \"UTC+00:00\"\n },\n {\n value: \"+01:00\",\n label: \"UTC+01:00\"\n },\n {\n value: \"+02:00\",\n label: \"UTC+02:00\"\n },\n {\n value: \"+03:00\",\n label: \"UTC+03:00\"\n },\n {\n value: \"+03:30\",\n label: \"UTC+03:30\"\n },\n {\n value: \"+04:00\",\n label: \"UTC+04:00\"\n },\n {\n value: \"+04:30\",\n label: \"UTC+04:30\"\n },\n {\n value: \"+05:30\",\n label: \"UTC+05:30\"\n },\n {\n value: \"+05:45\",\n label: \"UTC+05:45\"\n },\n {\n value: \"+06:00\",\n label: \"UTC+06:00\"\n },\n {\n value: \"+06:30\",\n label: \"UTC+06:30\"\n },\n {\n value: \"+07:00\",\n label: \"UTC+07:00\"\n },\n {\n value: \"+08:00\",\n label: \"UTC+08:00\"\n },\n {\n value: \"+08:45\",\n label: \"UTC+08:45\"\n },\n {\n value: \"+09:00\",\n label: \"UTC+09:00\"\n },\n {\n value: \"+09:30\",\n label: \"UTC+09:30\"\n },\n {\n value: \"+10:00\",\n label: \"UTC+10:00\"\n },\n {\n value: \"+10:30\",\n label: \"UTC+10:30\"\n },\n {\n value: \"+11:00\",\n label: \"UTC+11:00\"\n },\n {\n value: \"+11:30\",\n label: \"UTC+11:30\"\n },\n {\n value: \"+12:00\",\n label: \"UTC+12:00\"\n },\n {\n value: \"+12:45\",\n label: \"UTC+12:45\"\n },\n {\n value: \"+13:00\",\n label: \"UTC+13:00\"\n },\n {\n value: \"+14:00\",\n label: \"UTC+14:00\"\n }\n];\n\nexport const DEFAULT_TIMEZONE = \"+01:00\";\n\nexport const getDefaultFieldValue = (\n field: CmsEditorField,\n bind: {\n value: string | null | undefined;\n },\n getCurrent: () => string\n): string => {\n const def = field.settings ? field.settings.defaultSetValue || \"null\" : \"null\";\n if (bind.value || def !== \"current\") {\n return bind.value || \"\";\n }\n return getCurrent();\n};\n\nexport const getCurrentTimeZone = (date?: Date): string | null => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const matches = value.match(/GMT([+-][0-9]{4})/);\n if (!matches) {\n return null;\n }\n const timezone = matches[1];\n return `${timezone.slice(0, 3)}:${timezone.slice(3)}`;\n};\n\nexport const getCurrentLocalTime = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const value = date.toTimeString();\n\n const [time] = value.split(\" \");\n if (!time || time.match(/^([0-9]{2}):([0-9]{2}):([0-9]{2})$/) === null) {\n return \"00:00:00\";\n }\n return time;\n};\n\nexport const getCurrentDate = (date?: Date): string => {\n if (!date) {\n date = new Date();\n }\n const year = String(date.getFullYear()).padStart(4, \"0\");\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n\n return `${year}-${month}-${day}`;\n};\n\nconst deleteIconStyles = css({\n width: \"100% !important\",\n height: \"100% !important\",\n color: \"var(--mdc-theme-text-secondary-on-background) !important\"\n});\n\ninterface RemoveFieldButtonProps {\n // TODO @ts-refactor figure out correct trailing icon type\n // @ts-ignore\n trailingIcon: any;\n}\nexport const RemoveFieldButton: React.FC<RemoveFieldButtonProps> = ({ trailingIcon }) => {\n if (!trailingIcon) {\n return null;\n }\n return (\n <Cell span={1}>\n <IconButton\n className={deleteIconStyles}\n onClick={trailingIcon.onClick}\n icon={trailingIcon.icon}\n />\n </Cell>\n );\n};\n"]}
|
|
@@ -50,7 +50,9 @@ export var useReference = function useReference(_ref) {
|
|
|
50
50
|
setValueEntry = _useState10[1];
|
|
51
51
|
|
|
52
52
|
var models = field.settings ? field.settings.models || [] : [];
|
|
53
|
-
var modelsHash = models.
|
|
53
|
+
var modelsHash = models.map(function (model) {
|
|
54
|
+
return model.modelId;
|
|
55
|
+
}).join(",");
|
|
54
56
|
var value = bind.value;
|
|
55
57
|
var valueHash = getValueHash(value);
|
|
56
58
|
|
|
@@ -227,14 +229,14 @@ export var useReference = function useReference(_ref) {
|
|
|
227
229
|
|
|
228
230
|
var options = useMemo(function () {
|
|
229
231
|
return Object.values(entries);
|
|
230
|
-
}, [valueHash]);
|
|
232
|
+
}, [valueHash, entries]);
|
|
231
233
|
/**
|
|
232
234
|
* Format default options for the Autocomplete component.
|
|
233
235
|
*/
|
|
234
236
|
|
|
235
237
|
var defaultOptions = useMemo(function () {
|
|
236
238
|
return Object.values(latestEntries);
|
|
237
|
-
}, [valueHash]);
|
|
239
|
+
}, [valueHash, latestEntries]);
|
|
238
240
|
var outputOptions = (search && options ? options : defaultOptions) || [];
|
|
239
241
|
|
|
240
242
|
if (valueEntry && outputOptions.some(function (opt) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useReference.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRY","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","getValueHash","value","id","entryId","split","shift","useReference","bind","field","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","join","valueHash","searchEntries","query","variables","modelIds","map","m","modelId","limit","data","collection","content","current","length","fetchPolicy","then","latestEntryData","entry","res","dataEntry","latest","option","published","prev","onChange","options","Object","values","defaultOptions","outputOptions","some","opt","push"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n return value.id.split(\"#\").shift();\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["useReference.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRY","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","getValueHash","value","id","entryId","split","shift","useReference","bind","field","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntry","setValueEntry","models","settings","modelsHash","map","model","modelId","join","valueHash","searchEntries","query","variables","modelIds","m","limit","data","collection","content","current","length","fetchPolicy","then","latestEntryData","entry","res","dataEntry","latest","option","published","prev","onChange","options","Object","values","defaultOptions","outputOptions","some","opt","push"],"mappings":";;;;;AAAA,SAASA,WAAT,EAAsBC,SAAtB,EAAiCC,OAAjC,EAA0CC,MAA1C,EAAkDC,QAAlD,QAAkE,OAAlE;AACA,SAASC,eAAT;AACA,SACIC,sBADJ,EAEIC,iBAFJ;AAWA,SACIC,yCADJ,EAEIC,6BAFJ;;AAoBA,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAA+B;AAChD,MAAI,CAACA,KAAD,IAAW,CAACA,KAAK,CAACC,EAAP,IAAa,CAACD,KAAK,CAACE,OAAnC,EAA6C;AACzC,WAAO,IAAP;AACH,GAFD,MAEO,IAAIF,KAAK,CAACE,OAAV,EAAmB;AACtB,WAAOF,KAAK,CAACE,OAAb;AACH;;AACD,SAAOF,KAAK,CAACC,EAAN,CAASE,KAAT,CAAe,GAAf,EAAoBC,KAApB,EAAP;AACH,CAPD;;AASA,OAAO,IAAMC,YAA8B,GAAG,SAAjCA,YAAiC,OAAqB;AAAA,MAAlBC,IAAkB,QAAlBA,IAAkB;AAAA,MAAZC,KAAY,QAAZA,KAAY;AAC/D,MAAMC,UAAU,GAAGhB,MAAM,CAAuB,EAAvB,CAAzB;AACA,MAAMiB,MAAM,GAAGf,eAAe,EAA9B;;AACA,kBAA4BD,QAAQ,CAAS,EAAT,CAApC;AAAA;AAAA,MAAOiB,MAAP;AAAA,MAAeC,SAAf;;AACA,mBAA8BlB,QAAQ,CAAU,KAAV,CAAtC;AAAA;AAAA,MAAOmB,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAA8BpB,QAAQ,CAAuB,EAAvB,CAAtC;AAAA;AAAA,MAAOqB,OAAP;AAAA,MAAgBC,UAAhB;;AACA,mBAA0CtB,QAAQ,CAAuB,EAAvB,CAAlD;AAAA;AAAA,MAAOuB,aAAP;AAAA,MAAsBC,gBAAtB;;AACA,mBAAoCxB,QAAQ,CAAoB,IAApB,CAA5C;AAAA;AAAA,MAAOyB,UAAP;AAAA,MAAmBC,aAAnB;;AAEA,MAAMC,MAAM,GAAIb,KAAK,CAACc,QAAN,GAAiBd,KAAK,CAACc,QAAN,CAAeD,MAAf,IAAyB,EAA1C,GAA+C,EAA/D;AAIA,MAAME,UAAU,GAAGF,MAAM,CAACG,GAAP,CAAW,UAAAC,KAAK;AAAA,WAAIA,KAAK,CAACC,OAAV;AAAA,GAAhB,EAAmCC,IAAnC,CAAwC,GAAxC,CAAnB;AAEA,MAAM1B,KAAK,GAAGM,IAAI,CAACN,KAAnB;AACA,MAAM2B,SAAS,GAAG5B,YAAY,CAACC,KAAD,CAA9B;;AAEA,MAAM4B,aAAa;AAAA,yEAAG;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,kBACblB,MADa;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAKlBG,cAAAA,UAAU,CAAC,IAAD,CAAV;AALkB;AAAA,qBAMKJ,MAAM,CAACoB,KAAP,CAGrB;AACEA,gBAAAA,KAAK,EAAElC,sBADT;AAEEmC,gBAAAA,SAAS,EAAE;AACPC,kBAAAA,QAAQ,EAAEX,MAAM,CAACG,GAAP,CAAW,UAAAS,CAAC;AAAA,2BAAIA,CAAC,CAACP,OAAN;AAAA,mBAAZ,CADH;AAEPI,kBAAAA,KAAK,EAAEnB,MAFA;AAGPuB,kBAAAA,KAAK,EAAE;AAHA;AAFb,eAHqB,CANL;;AAAA;AAAA;AAMVC,cAAAA,IANU,uBAMVA,IANU;AAiBlBrB,cAAAA,UAAU,CAAC,KAAD,CAAV;AAEMsB,cAAAA,UAnBY,GAmBCtC,yCAAyC,CAACqC,IAAI,CAACE,OAAL,CAAaF,IAAd,CAnB1C;;AAoBlB,kBAAIhB,UAAJ,EAAgB;AACZiB,gBAAAA,UAAU,CAACjB,UAAU,CAAChB,OAAZ,CAAV,GAAiCgB,UAAjC;AACH;;AACDV,cAAAA,UAAU,CAAC6B,OAAX,mCACO7B,UAAU,CAAC6B,OADlB,GAEOF,UAFP;AAKApB,cAAAA,UAAU,CAACoB,UAAD,CAAV;;AA5BkB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAH;;AAAA,oBAAbP,aAAa;AAAA;AAAA;AAAA,KAAnB;;AA+BAtC,EAAAA,SAAS,CAAC,YAAM;AACZsC,IAAAA,aAAa;AAChB,GAFQ,EAEN,CAAClB,MAAD,CAFM,CAAT;AAIApB,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAI8B,MAAM,CAACkB,MAAP,KAAkB,CAAtB,EAAyB;AACrB;AACH;;AACD7B,IAAAA,MAAM,CACDoB,KADL,CACsE;AAC9DA,MAAAA,KAAK,EAAElC,sBADuD;AAE9DmC,MAAAA,SAAS,EAAE;AACPC,QAAAA,QAAQ,EAAEX,MAAM,CAACG,GAAP,CAAW,UAAAS,CAAC;AAAA,iBAAIA,CAAC,CAACP,OAAN;AAAA,SAAZ,CADH;AAEPQ,QAAAA,KAAK,EAAE;AAFA,OAFmD;;AAM9D;AAChB;AACA;AACA;AACgBM,MAAAA,WAAW,EAAE;AAViD,KADtE,EAaKC,IAbL,CAaU,iBAAc;AAAA,UAAXN,IAAW,SAAXA,IAAW;AAChB,UAAMO,eAAe,GAAG5C,yCAAyC,CAC7DqC,IAAI,CAACE,OAAL,CAAaF,IADgD,CAAjE;;AAGA,UAAIhB,UAAJ,EAAgB;AACZuB,QAAAA,eAAe,CAACvB,UAAU,CAAChB,OAAZ,CAAf,GAAsCgB,UAAtC;AACH;;AAEDD,MAAAA,gBAAgB,CAACwB,eAAD,CAAhB;AACAjC,MAAAA,UAAU,CAAC6B,OAAX,mCACO7B,UAAU,CAAC6B,OADlB,GAEOI,eAFP;AAIH,KA1BL;AA2BH,GA/BQ,EA+BN,CAACnB,UAAD,CA/BM,CAAT;AAiCAhC,EAAAA,SAAS,CAAC,YAAM;AACZ,QAAI,CAACU,KAAD,IAAU,CAACoB,MAAf,EAAuB;AACnBD,MAAAA,aAAa,CAAC;AAAA,eAAM,IAAN;AAAA,OAAD,CAAb;AACA;AACH;;AAED,QAAMuB,KAAK,GAAGf,SAAS,GAAGnB,UAAU,CAAC6B,OAAX,CAAmBV,SAAnB,CAAH,GAAmC,IAA1D;;AACA,QAAIe,KAAJ,EAAW;AACP;AACZ;AACA;AACYvB,MAAAA,aAAa,CAAC,YAAM;AAChB,eAAOuB,KAAP;AACH,OAFY,CAAb;AAGA;AACH;;AAED7B,IAAAA,UAAU,CAAC,IAAD,CAAV;AACA;AACR;AACA;AACA;;AACQJ,IAAAA,MAAM,CACDoB,KADL,CACgE;AACxDA,MAAAA,KAAK,EAAEjC,iBADiD;AAExDkC,MAAAA,SAAS,EAAE;AACPY,QAAAA,KAAK,EAAE;AACHjB,UAAAA,OAAO,EAAEzB,KAAK,CAACyB,OADZ;AAEHxB,UAAAA,EAAE,EAAED,KAAK,CAACC;AAFP;AADA;AAF6C,KADhE,EAUKuC,IAVL,CAUU,UAAAG,GAAG,EAAI;AACT9B,MAAAA,UAAU,CAAC,KAAD,CAAV;AACA,UAAM+B,SAAS,GAAGD,GAAG,CAACT,IAAJ,CAASW,MAAT,CAAgBX,IAAlC;;AACA,UAAI,CAACU,SAAL,EAAgB;AACZ;AACH;;AACD,UAAME,MAAkB,mCACjBhD,6BAA6B,CAAC8C,SAAD,CADZ;AAEpBC,QAAAA,MAAM,EAAED,SAAS,CAAC3C,EAFE;AAGpB8C,QAAAA,SAAS,EAAEJ,GAAG,CAACT,IAAJ,CAASa,SAAT,CAAmBb,IAAnB,GAA0BS,GAAG,CAACT,IAAJ,CAASa,SAAT,CAAmBb,IAAnB,CAAwBjC,EAAlD,GAAuD;AAH9C,QAAxB;;AAKAO,MAAAA,UAAU,CAAC6B,OAAX,CAAmBS,MAAM,CAAC5C,OAA1B,IAAqC4C,MAArC;AACA7B,MAAAA,gBAAgB,CAAC,UAAA+B,IAAI,EAAI;AACrB,+CACOA,IADP,2BAEKF,MAAM,CAAC5C,OAFZ,oBAGW4C,MAHX;AAMH,OAPe,CAAhB;AAQA;AAChB;AACA;;AACgB3B,MAAAA,aAAa,CAAC,YAAM;AAChB,eAAO2B,MAAP;AACH,OAFY,CAAb;AAGH,KApCL;AAqCH,GA3DQ,EA2DN,CAACnB,SAAD,EAAYL,UAAZ,CA3DM,CAAT;AA6DA,MAAM2B,QAAQ,GAAG5D,WAAW,CAAC,UAACW,KAAD,EAAgB0C,KAAhB,EAAsC;AAC/D,QAAI1C,KAAK,KAAK,IAAd,EAAoB;AAChBW,MAAAA,SAAS,CAAC,EAAD,CAAT;AAEAQ,MAAAA,aAAa,CAAC,YAAM;AAChB,eAAOuB,KAAP;AACH,OAFY,CAAb;AAGApC,MAAAA,IAAI,CAAC2C,QAAL,CAAc;AACVxB,QAAAA,OAAO,EAAEiB,KAAK,CAACjB,OADL;AAEVxB,QAAAA,EAAE,EAAEyC,KAAK,CAACzC;AAFA,OAAd;AAIA;AACH;;AAEDkB,IAAAA,aAAa,CAAC;AAAA,aAAM,IAAN;AAAA,KAAD,CAAb;AACAb,IAAAA,IAAI,CAAC2C,QAAL,CAAc,IAAd;AACH,GAhB2B,EAgBzB,EAhByB,CAA5B;AAkBA;AACJ;AACA;;AACI,MAAMC,OAAO,GAAG3D,OAAO,CAAC;AAAA,WAAM4D,MAAM,CAACC,MAAP,CAActC,OAAd,CAAN;AAAA,GAAD,EAA+B,CAACa,SAAD,EAAYb,OAAZ,CAA/B,CAAvB;AAEA;AACJ;AACA;;AACI,MAAMuC,cAAc,GAAG9D,OAAO,CAAC,YAAM;AACjC,WAAO4D,MAAM,CAACC,MAAP,CAAcpC,aAAd,CAAP;AACH,GAF6B,EAE3B,CAACW,SAAD,EAAYX,aAAZ,CAF2B,CAA9B;AAIA,MAAMsC,aAA2B,GAAG,CAAC5C,MAAM,IAAIwC,OAAV,GAAoBA,OAApB,GAA8BG,cAA/B,KAAkD,EAAtF;;AAEA,MAAInC,UAAU,IAAIoC,aAAa,CAACC,IAAd,CAAmB,UAAAC,GAAG;AAAA,WAAIA,GAAG,CAACtD,OAAJ,KAAgBgB,UAAU,CAAChB,OAA/B;AAAA,GAAtB,MAAkE,KAApF,EAA2F;AACvFoD,IAAAA,aAAa,CAACG,IAAd,CAAmBvC,UAAnB;AACH;;AAED,SAAO;AACH+B,IAAAA,QAAQ,EAARA,QADG;AAEHtC,IAAAA,SAAS,EAATA,SAFG;AAGHX,IAAAA,KAAK,EAAEkB,UAHJ;AAIHN,IAAAA,OAAO,EAAPA,OAJG;AAKHsC,IAAAA,OAAO,EAAEI;AALN,GAAP;AAOH,CA9LM","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRY,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n} from \"./graphql\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"./helpers\";\n\ninterface UseReferenceHookArgs {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\n\ninterface UseReferenceHookValue {\n onChange: (value: any, entry: OptionItem) => void;\n setSearch: (value: string) => void;\n value: OptionItem | null;\n loading: boolean;\n options: OptionItem[];\n}\n\ntype UseReferenceHook = (args: UseReferenceHookArgs) => UseReferenceHookValue;\n\nconst getValueHash = (value: any): string | null => {\n if (!value || (!value.id && !value.entryId)) {\n return null;\n } else if (value.entryId) {\n return value.entryId;\n }\n return value.id.split(\"#\").shift();\n};\n\nexport const useReference: UseReferenceHook = ({ bind, field }) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItemCollection>({});\n const [valueEntry, setValueEntry] = useState<OptionItem | null>(null);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\" | \"name\"\n >[];\n const modelsHash = models.map(model => model.modelId).join(\",\");\n\n const value = bind.value;\n const valueHash = getValueHash(value);\n\n const searchEntries = async () => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search,\n limit: 10\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n if (valueEntry) {\n collection[valueEntry.entryId] = valueEntry;\n }\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n if (models.length === 0) {\n return;\n }\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const latestEntryData = convertReferenceEntriesToOptionCollection(\n data.content.data\n );\n if (valueEntry) {\n latestEntryData[valueEntry.entryId] = valueEntry;\n }\n\n setLatestEntries(latestEntryData);\n allEntries.current = {\n ...allEntries.current,\n ...latestEntryData\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!value || !models) {\n setValueEntry(() => null);\n return;\n }\n\n const entry = valueHash ? allEntries.current[valueHash] : null;\n if (entry) {\n /**\n * if entry exists set valueEntry to that one so we do not load new one\n */\n setValueEntry(() => {\n return entry;\n });\n return;\n }\n\n setLoading(true);\n /**\n * Query loads both latest and published entries.\n * We do this in a single query because there might not be a published entry so we can use the latest one.\n */\n client\n .query<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>({\n query: GET_CONTENT_ENTRY,\n variables: {\n entry: {\n modelId: value.modelId,\n id: value.id\n }\n }\n })\n .then(res => {\n setLoading(false);\n const dataEntry = res.data.latest.data;\n if (!dataEntry) {\n return;\n }\n const option: OptionItem = {\n ...convertReferenceEntryToOption(dataEntry),\n latest: dataEntry.id,\n published: res.data.published.data ? res.data.published.data.id : null\n };\n allEntries.current[option.entryId] = option;\n setLatestEntries(prev => {\n return {\n ...prev,\n [option.entryId]: {\n ...option\n }\n };\n });\n /**\n * Calculate a couple of props for the Autocomplete component.\n */\n setValueEntry(() => {\n return option;\n });\n });\n }, [valueHash, modelsHash]);\n\n const onChange = useCallback((value: string, entry: OptionItem) => {\n if (value !== null) {\n setSearch(\"\");\n\n setValueEntry(() => {\n return entry;\n });\n bind.onChange({\n modelId: entry.modelId,\n id: entry.id\n });\n return;\n }\n\n setValueEntry(() => null);\n bind.onChange(null);\n }, []);\n\n /**\n * Format options for the Autocomplete component.\n */\n const options = useMemo(() => Object.values(entries), [valueHash, entries]);\n\n /**\n * Format default options for the Autocomplete component.\n */\n const defaultOptions = useMemo(() => {\n return Object.values(latestEntries);\n }, [valueHash, latestEntries]);\n\n const outputOptions: OptionItem[] = (search && options ? options : defaultOptions) || [];\n\n if (valueEntry && outputOptions.some(opt => opt.entryId === valueEntry.entryId) === false) {\n outputOptions.push(valueEntry);\n }\n\n return {\n onChange,\n setSearch,\n value: valueEntry,\n loading,\n options: outputOptions\n };\n};\n"]}
|
|
@@ -9,6 +9,7 @@ import { convertReferenceEntriesToOptionCollection, convertReferenceEntryToOptio
|
|
|
9
9
|
export var useReferences = function useReferences(_ref) {
|
|
10
10
|
var bind = _ref.bind,
|
|
11
11
|
field = _ref.field;
|
|
12
|
+
var isMounted = useRef(true);
|
|
12
13
|
var allEntries = useRef({});
|
|
13
14
|
var client = useApolloClient();
|
|
14
15
|
|
|
@@ -90,6 +91,11 @@ export var useReferences = function useReferences(_ref) {
|
|
|
90
91
|
};
|
|
91
92
|
}();
|
|
92
93
|
|
|
94
|
+
useEffect(function () {
|
|
95
|
+
return function () {
|
|
96
|
+
isMounted.current = false;
|
|
97
|
+
};
|
|
98
|
+
}, []);
|
|
93
99
|
useEffect(function () {
|
|
94
100
|
searchEntries();
|
|
95
101
|
}, [search]);
|
|
@@ -110,6 +116,11 @@ export var useReferences = function useReferences(_ref) {
|
|
|
110
116
|
fetchPolicy: "network-only"
|
|
111
117
|
}).then(function (_ref3) {
|
|
112
118
|
var data = _ref3.data;
|
|
119
|
+
|
|
120
|
+
if (!isMounted.current) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
|
|
113
124
|
var collection = convertReferenceEntriesToOptionCollection(data.content.data);
|
|
114
125
|
setLatestEntries(Object.values(collection));
|
|
115
126
|
allEntries.current = _objectSpread({}, collection);
|
|
@@ -135,6 +146,10 @@ export var useReferences = function useReferences(_ref) {
|
|
|
135
146
|
})
|
|
136
147
|
}
|
|
137
148
|
}).then(function (res) {
|
|
149
|
+
if (!isMounted.current) {
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
|
|
138
153
|
setLoading(false);
|
|
139
154
|
var latest = (res.data.latest.data || []).reduce(function (collection, item) {
|
|
140
155
|
collection[item.entryId] = item;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useReferences.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRIES","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","useReferences","bind","field","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","variables","modelIds","map","m","modelId","data","collection","content","current","limit","fetchPolicy","then","Object","length","id","res","latest","reduce","item","entryId","published","existingItem","title","onChange","options","defaultOptions"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["useReferences.ts"],"names":["useCallback","useEffect","useMemo","useRef","useState","useApolloClient","SEARCH_CONTENT_ENTRIES","GET_CONTENT_ENTRIES","convertReferenceEntriesToOptionCollection","convertReferenceEntryToOption","useReferences","bind","field","isMounted","allEntries","client","search","setSearch","loading","setLoading","entries","setEntries","latestEntries","setLatestEntries","valueEntries","setValueEntries","models","settings","modelsHash","join","values","value","searchEntries","query","variables","modelIds","map","m","modelId","data","collection","content","current","limit","fetchPolicy","then","Object","length","id","res","latest","reduce","item","entryId","published","existingItem","title","onChange","options","defaultOptions"],"mappings":"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","sourcesContent":["import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { useApolloClient } from \"~/admin/hooks\";\nimport { CmsEditorField, CmsModel } from \"~/types\";\nimport {\n SEARCH_CONTENT_ENTRIES,\n GET_CONTENT_ENTRIES,\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables,\n CmsEntryGetListResponse,\n CmsEntryGetListVariables,\n CmsEntryGetEntryVariable\n} from \"./graphql\";\nimport { BindComponentRenderProp } from \"@webiny/form\";\nimport { CmsReferenceContentEntry, OptionItem, OptionItemCollection } from \"./types\";\nimport {\n convertReferenceEntriesToOptionCollection,\n convertReferenceEntryToOption\n} from \"~/admin/plugins/fieldRenderers/ref/components/helpers\";\n\ninterface UseReferencesParams {\n bind: BindComponentRenderProp;\n field: CmsEditorField;\n}\nexport const useReferences = ({ bind, field }: UseReferencesParams) => {\n const isMounted = useRef(true);\n const allEntries = useRef<OptionItemCollection>({});\n const client = useApolloClient();\n const [search, setSearch] = useState<string>(\"\");\n const [loading, setLoading] = useState<boolean>(false);\n const [entries, setEntries] = useState<OptionItemCollection>({});\n const [latestEntries, setLatestEntries] = useState<OptionItem[]>([]);\n const [valueEntries, setValueEntries] = useState<OptionItem[]>([]);\n\n const models = (field.settings ? field.settings.models || [] : []) as Pick<\n CmsModel,\n \"modelId\"\n >[];\n const modelsHash = models.join(\",\");\n const values: CmsEntryGetEntryVariable[] = bind.value ? bind.value : [];\n\n const searchEntries = async (): Promise<void> => {\n if (!search) {\n return;\n }\n\n setLoading(true);\n const { data } = await client.query<\n CmsEntrySearchQueryResponse,\n CmsEntrySearchQueryVariables\n >({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n query: search\n }\n });\n setLoading(false);\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n\n allEntries.current = {\n ...allEntries.current,\n ...collection\n };\n\n setEntries(collection);\n };\n\n useEffect(() => {\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n useEffect(() => {\n searchEntries();\n }, [search]);\n\n useEffect(() => {\n client\n .query<CmsEntrySearchQueryResponse, CmsEntrySearchQueryVariables>({\n query: SEARCH_CONTENT_ENTRIES,\n variables: {\n modelIds: models.map(m => m.modelId),\n limit: 10\n },\n /**\n * We cannot update this query response in cache after a reference entry being created/deleted,\n * which result in cached response being stale, therefore, we're setting the fetchPolicy to \"network-only\" to by passing cache.\n */\n fetchPolicy: \"network-only\"\n })\n .then(({ data }) => {\n if (!isMounted.current) {\n return;\n }\n\n const collection = convertReferenceEntriesToOptionCollection(data.content.data);\n setLatestEntries(Object.values(collection));\n allEntries.current = {\n ...collection\n };\n });\n }, [modelsHash]);\n\n useEffect(() => {\n if (!values || values.length == 0) {\n return;\n }\n\n setLoading(true);\n\n client\n .query<CmsEntryGetListResponse, CmsEntryGetListVariables>({\n query: GET_CONTENT_ENTRIES,\n variables: {\n /**\n * We need make sure nothing else other than modelId and id is passed to entries variable.\n */\n entries: values.map(value => {\n return {\n modelId: value.modelId,\n id: value.id\n };\n })\n }\n })\n .then(res => {\n if (!isMounted.current) {\n return;\n }\n\n setLoading(false);\n\n const latest = (res.data.latest.data || []).reduce((collection, item) => {\n collection[item.entryId] = item;\n return collection;\n }, {} as Record<string, CmsReferenceContentEntry>);\n\n const entries = (res.data.published.data || []).reduce((collection, item) => {\n const entryId = item.entryId;\n const existingItem = latest[entryId];\n if (existingItem) {\n collection[entryId] = {\n ...existingItem,\n published: {\n id: item.id,\n entryId: item.entryId,\n title: item.title\n }\n };\n return collection;\n }\n collection[entryId] = item;\n return collection;\n }, latest);\n\n // Calculate a couple of props for the Autocomplete component.\n setValueEntries(Object.values(entries).map(convertReferenceEntryToOption));\n });\n }, []);\n\n /**\n * onChange callback will update internal component state using the previously loaded entries by IDs.\n * It will also format the value to store to the DB.\n */\n const onChange = useCallback((values: OptionItem[]): void => {\n setSearch(\"\");\n setValueEntries(values);\n\n // Update parent form\n bind.onChange(\n values.map(item => ({\n modelId: item.modelId,\n id: item.id\n }))\n );\n }, []);\n\n // Format options for the Autocomplete component.\n const options = useMemo(() => Object.values(entries), [entries]);\n\n // Format default options for the Autocomplete component.\n const defaultOptions = useMemo(() => Object.values(latestEntries), [latestEntries]);\n\n return {\n onChange,\n loading,\n setSearch,\n // Selected entries\n entries: valueEntries,\n // Options to show when the autocomplete dropdown is visible\n options: search ? options : defaultOptions || []\n };\n};\n"]}
|
package/admin/plugins/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
declare const _default: () => (import("
|
|
1
|
+
declare const _default: () => (import("../../types").CmsEditorFormSettingsPlugin | import("../../types").CmsIconsPlugin | import("../../types").CmsFieldValueTransformer[] | import("@webiny/app/types").CacheGetObjectIdPlugin | import("@webiny/app/types").RoutePlugin[] | import("@webiny/app-admin/types").AdminInstallationPlugin | import("@webiny/app-admin/types").AdminAppPermissionRendererPlugin | import("../../types").CmsContentDetailsPlugin[] | {
|
|
2
2
|
name: string;
|
|
3
3
|
type: string;
|
|
4
4
|
render(): JSX.Element;
|
package/admin/plugins/routes.js
CHANGED
|
@@ -11,6 +11,7 @@ import { CircularProgress } from "@webiny/ui/Progress";
|
|
|
11
11
|
import { Route } from "@webiny/react-router";
|
|
12
12
|
import { AdminLayout } from "@webiny/app-admin/components/AdminLayout";
|
|
13
13
|
import { i18n } from "@webiny/app/i18n";
|
|
14
|
+
import { ContentEntriesView } from "../views/contentEntries/experiment/ContentEntriesViewConfig";
|
|
14
15
|
var t = i18n.ns("app-headless-cms/admin/routes");
|
|
15
16
|
|
|
16
17
|
var Loader = function Loader(_ref) {
|
|
@@ -31,9 +32,6 @@ var ContentModelsView = /*#__PURE__*/lazy(function () {
|
|
|
31
32
|
var ContentModelGroupsView = /*#__PURE__*/lazy(function () {
|
|
32
33
|
return import("../views/contentModelGroups/ContentModelGroups");
|
|
33
34
|
});
|
|
34
|
-
var ContentEntiesView = /*#__PURE__*/lazy(function () {
|
|
35
|
-
return import("../views/contentEntries/ContentEntries");
|
|
36
|
-
});
|
|
37
35
|
var plugins = [{
|
|
38
36
|
name: "route-cms-content-models-groups",
|
|
39
37
|
type: "route",
|
|
@@ -55,7 +53,7 @@ var plugins = [{
|
|
|
55
53
|
render: function render() {
|
|
56
54
|
return /*#__PURE__*/React.createElement(SecureRoute, {
|
|
57
55
|
permission: "cms.contentModel"
|
|
58
|
-
}, /*#__PURE__*/React.createElement(AdminLayout, null, /*#__PURE__*/React.createElement(Helmet, null, /*#__PURE__*/React.createElement("title", null, t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Content"]))))), /*#__PURE__*/React.createElement(
|
|
56
|
+
}, /*#__PURE__*/React.createElement(AdminLayout, null, /*#__PURE__*/React.createElement(Helmet, null, /*#__PURE__*/React.createElement("title", null, t(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["Content"]))))), /*#__PURE__*/React.createElement(ContentEntriesView, null)));
|
|
59
57
|
}
|
|
60
58
|
})
|
|
61
59
|
}, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["routes.tsx"],"names":["React","Suspense","lazy","Helmet","SecureRoute","CircularProgress","Route","AdminLayout","i18n","t","ns","Loader","children","props","cloneElement","ContentModelEditor","ContentModelsView","ContentModelGroupsView","
|
|
1
|
+
{"version":3,"sources":["routes.tsx"],"names":["React","Suspense","lazy","Helmet","SecureRoute","CircularProgress","Route","AdminLayout","i18n","ContentEntriesView","t","ns","Loader","children","props","cloneElement","ContentModelEditor","ContentModelsView","ContentModelGroupsView","plugins","name","type","route"],"mappings":"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","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"]}
|
|
@@ -8,7 +8,7 @@ var dateOnly = function dateOnly(value) {
|
|
|
8
8
|
|
|
9
9
|
try {
|
|
10
10
|
var date = new Date(value).toISOString();
|
|
11
|
-
return date.
|
|
11
|
+
return date.slice(0, 10);
|
|
12
12
|
} catch (error) {
|
|
13
13
|
throw new WebinyError("Could not transform value to a date.", "TRANSFORM_ERROR", {
|
|
14
14
|
error: error,
|
|
@@ -76,7 +76,7 @@ var dateTimeWithTimezone = function dateTimeWithTimezone(value) {
|
|
|
76
76
|
|
|
77
77
|
try {
|
|
78
78
|
var dateObj = new Date(initialDate);
|
|
79
|
-
date = dateObj.toISOString().
|
|
79
|
+
date = dateObj.toISOString().slice(0, 10);
|
|
80
80
|
} catch (ex) {
|
|
81
81
|
throw new WebinyError("Could not transform received date into Date object.", "DATE_TRANSFORM_ERROR", {
|
|
82
82
|
value: value,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["dateTransformer.ts"],"names":["WebinyError","dateOnly","value","date","Date","toISOString","
|
|
1
|
+
{"version":3,"sources":["dateTransformer.ts"],"names":["WebinyError","dateOnly","value","date","Date","toISOString","slice","error","type","extractTimeZone","result","includes","split","length","extractTime","def","dateTimeWithTimezone","initialDate","initialTimeZone","dateObj","ex","time","initialTime","replace","dateTimeWithoutTimezone","transformers","name","fieldType","transform","field","settings","String"],"mappings":";AACA,OAAOA,WAAP,MAAwB,eAAxB;;AAKA,IAAMC,QAAqC,GAAG,SAAxCA,QAAwC,CAAAC,KAAK,EAAI;AACnD,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH;;AACD,MAAI;AACA,QAAMC,IAAI,GAAG,IAAIC,IAAJ,CAASF,KAAT,EAAgBG,WAAhB,EAAb;AACA,WAAOF,IAAI,CAACG,KAAL,CAAW,CAAX,EAAc,EAAd,CAAP;AACH,GAHD,CAGE,OAAOC,KAAP,EAAc;AACZ,UAAM,IAAIP,WAAJ,yCAAwD,iBAAxD,EAA2E;AAC7EO,MAAAA,KAAK,EAALA,KAD6E;AAE7EC,MAAAA,IAAI,EAAE,MAFuE;AAG7EN,MAAAA,KAAK,EAALA;AAH6E,KAA3E,CAAN;AAKH;AACJ,CAdD;;AAgBA,IAAMO,eAAe,GAAG,SAAlBA,eAAkB,CAACP,KAAD,EAAsC;AAC1D,MAAIQ,MAAJ;;AACA,MAAI,CAACR,KAAL,EAAY;AACR,WAAO,CAAC,IAAIE,IAAJ,GAAWC,WAAX,EAAD,EAA2B,OAA3B,CAAP;AACH,GAFD,MAEO,IAAIH,KAAK,CAACS,QAAN,CAAe,GAAf,CAAJ,EAAyB;AAC5BD,IAAAA,MAAM,GAAGR,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAT;AACH,GAFM,MAEA;AACHF,IAAAA,MAAM,GAAGR,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAT;AACH;;AACD,MAAI,CAACF,MAAD,IAAWA,MAAM,CAACG,MAAP,KAAkB,CAAjC,EAAoC;AAChC,UAAM,IAAIb,WAAJ,8DAEF,iBAFE,EAGF;AACIE,MAAAA,KAAK,EAALA;AADJ,KAHE,CAAN;AAOH;;AACD,SAAOQ,MAAP;AACH,CAnBD;;AAqBA,IAAMI,WAAW,GAAG,SAAdA,WAAc,CAACZ,KAAD,EAA8D;AAAA,MAA7Ca,GAA6C,uEAAxB,IAAwB;;AAC9E,MAAI,CAACb,KAAL,EAAY;AACR,WAAO,IAAP;AACH,GAFD,MAEO,IAAIA,KAAK,CAACS,QAAN,CAAe,GAAf,MAAwB,KAA5B,EAAmC;AACtC,UAAM,IAAIX,WAAJ,CAAgB,qCAAhB,EAAuD,YAAvD,EAAqE;AACvEE,MAAAA,KAAK,EAALA;AADuE,KAArE,CAAN;AAGH;;AACD,MAAMQ,MAAM,GAAGR,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAf;;AACA,MAAIF,MAAM,CAACG,MAAP,KAAkB,CAAtB,EAAyB;AACrB,WAAOX,KAAP;AACH,GAFD,MAEO,IAAIQ,MAAM,CAACG,MAAP,KAAkB,CAAtB,EAAyB;AAC5B,qBAAUX,KAAV;AACH;;AACD,SAAOa,GAAP;AACH,CAfD;;AAiBA,IAAMC,oBAAiD,GAAG,SAApDA,oBAAoD,CAAAd,KAAK,EAAI;AAC/D,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH,GAFD,MAEO,IAAIA,KAAK,CAACS,QAAN,CAAe,GAAf,MAAwB,KAA5B,EAAmC;AACtC,WAAOT,KAAP;AACH;;AAED,qBAAuCA,KAAK,CAACU,KAAN,CAAY,GAAZ,CAAvC;AAAA;AAAA,MAAOK,WAAP;AAAA,MAAoBC,eAApB;;AAEA,MAAIf,IAAJ;;AAEA,MAAI;AACA,QAAMgB,OAAO,GAAG,IAAIf,IAAJ,CAASa,WAAT,CAAhB;AACAd,IAAAA,IAAI,GAAGgB,OAAO,CAACd,WAAR,GAAsBC,KAAtB,CAA4B,CAA5B,EAA+B,EAA/B,CAAP;AACH,GAHD,CAGE,OAAOc,EAAP,EAAW;AACT,UAAM,IAAIpB,WAAJ,CACF,qDADE,EAEF,sBAFE,EAGF;AACIE,MAAAA,KAAK,EAALA,KADJ;AAEIC,MAAAA,IAAI,EAAEc,WAFV;AAGII,MAAAA,IAAI,EAAEH;AAHV,KAHE,CAAN;AASH;;AACD,yBAAsBT,eAAe,CAACS,eAAD,CAArC;AAAA;AAAA,MAAOI,WAAP;;AAEA,MAAMD,IAAI,GAAGP,WAAW,CAACQ,WAAD,EAAc,UAAd,CAAxB;AAEA,SAAOpB,KAAK,CAACqB,OAAN,CAAcN,WAAd,EAA2Bd,IAA3B,EAAiCoB,OAAjC,CAAyCD,WAAzC,EAAsDD,IAAtD,CAAP;AACH,CA9BD;;AAgCA,IAAMG,uBAAoD,GAAG,SAAvDA,uBAAuD,CAACtB,KAAD,EAA0B;AACnF,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH,GAFD,MAEO,IAAIA,KAAK,CAACS,QAAN,CAAe,GAAf,MAAwB,KAA5B,EAAmC;AACtC,WAAOT,KAAP;AACH;;AACD,MAAI;AACA,WAAO,IAAIE,IAAJ,WAAYF,KAAK,CAACqB,OAAN,CAAc,GAAd,EAAmB,GAAnB,CAAZ,YAA4ClB,WAA5C,EAAP;AACH,GAFD,CAEE,OAAOE,KAAP,EAAc;AACZ,UAAM,IAAIP,WAAJ,yCAAwD,iBAAxD,EAA2E;AAC7EO,MAAAA,KAAK,EAALA,KAD6E;AAE7EC,MAAAA,IAAI,EAAE,yBAFuE;AAG7EN,MAAAA,KAAK,EAALA;AAH6E,KAA3E,CAAN;AAKH;AACJ,CAfD;;AAiBA,IAAMmB,IAAiC,GAAG,SAApCA,IAAoC,CAAAnB,KAAK,EAAI;AAC/C,MAAI,CAACA,KAAL,EAAY;AACR,WAAO,IAAP;AACH;;AACD,SAAOY,WAAW,CAACZ,KAAD,CAAlB;AACH,CALD;;AAOA,IAAMuB,YAAyD,GAAG;AAC9DJ,EAAAA,IAAI,EAAJA,IAD8D;AAE9DlB,EAAAA,IAAI,EAAEF,QAFwD;AAG9DuB,EAAAA,uBAAuB,EAAvBA,uBAH8D;AAI9DR,EAAAA,oBAAoB,EAApBA;AAJ8D,CAAlE;AAOA,gBAAe;AAAA,SAAiC;AAC5CR,IAAAA,IAAI,EAAE,6BADsC;AAE5CkB,IAAAA,IAAI,EAAE,kCAFsC;AAG5CC,IAAAA,SAAS,EAAE,UAHiC;AAI5CC,IAAAA,SAAS,EAAE,mBAAC1B,KAAD,EAAa2B,KAAb,EAAuB;AAC9B;AACA,UAAMrB,IAAI,GAAGqB,KAAK,CAACC,QAAN,IAAkBD,KAAK,CAACC,QAAN,CAAetB,IAAjC,GAAwCuB,MAAM,CAACF,KAAK,CAACC,QAAN,CAAetB,IAAhB,CAA9C,GAAsE,IAAnF;;AACA,UAAI,CAACA,IAAL,EAAW;AACP,eAAON,KAAP;AACH;;AACD,UAAM0B,SAAS,GAAGH,YAAY,CAACjB,IAAD,CAA9B;;AAEA,UAAI,CAACoB,SAAL,EAAgB;AACZ,eAAO1B,KAAP;AACH;;AAED,aAAO0B,SAAS,CAAC1B,KAAD,CAAhB;AACH;AAjB2C,GAAjC;AAAA,CAAf","sourcesContent":["import { CmsFieldValueTransformer } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\n\ninterface TransformerCallable<T> {\n (value?: T): string | null;\n}\nconst dateOnly: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n }\n try {\n const date = new Date(value).toISOString();\n return date.slice(0, 10);\n } catch (error) {\n throw new WebinyError(`Could not transform value to a date.`, \"TRANSFORM_ERROR\", {\n error,\n type: \"date\",\n value\n });\n }\n};\n\nconst extractTimeZone = (value?: string): [string, string] => {\n let result: string[];\n if (!value) {\n return [new Date().toISOString(), \"00:00\"];\n } else if (value.includes(\"+\")) {\n result = value.split(\"+\");\n } else {\n result = value.split(\"-\");\n }\n if (!result || result.length !== 2) {\n throw new WebinyError(\n `Could not determine time and timezone out of given value.`,\n \"TIME_ZONE_ERROR\",\n {\n value\n }\n );\n }\n return result as [string, string];\n};\n\nconst extractTime = (value?: string, def: string | null = null): string | null => {\n if (!value) {\n return null;\n } else if (value.includes(\":\") === false) {\n throw new WebinyError(\"Time value is missing : separators.\", \"TIME_ERROR\", {\n value\n });\n }\n const result = value.split(\":\");\n if (result.length === 3) {\n return value;\n } else if (result.length === 2) {\n return `${value}:00`;\n }\n return def;\n};\n\nconst dateTimeWithTimezone: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n } else if (value.includes(\"T\") === false) {\n return value;\n }\n\n const [initialDate, initialTimeZone] = value.split(\"T\");\n\n let date: string;\n\n try {\n const dateObj = new Date(initialDate);\n date = dateObj.toISOString().slice(0, 10);\n } catch (ex) {\n throw new WebinyError(\n \"Could not transform received date into Date object.\",\n \"DATE_TRANSFORM_ERROR\",\n {\n value,\n date: initialDate,\n time: initialTimeZone\n }\n );\n }\n const [initialTime] = extractTimeZone(initialTimeZone);\n\n const time = extractTime(initialTime, \"00:00:00\") as string;\n\n return value.replace(initialDate, date).replace(initialTime, time);\n};\n\nconst dateTimeWithoutTimezone: TransformerCallable<string> = (value): string | null => {\n if (!value) {\n return null;\n } else if (value.includes(\" \") === false) {\n return value;\n }\n try {\n return new Date(`${value.replace(\" \", \"T\")}.000Z`).toISOString();\n } catch (error) {\n throw new WebinyError(`Could not transform value to a date.`, \"TRANSFORM_ERROR\", {\n error,\n type: \"dateTimeWithoutTimezone\",\n value\n });\n }\n};\n\nconst time: TransformerCallable<string> = value => {\n if (!value) {\n return null;\n }\n return extractTime(value);\n};\n\nconst transformers: Record<string, TransformerCallable<string>> = {\n time,\n date: dateOnly,\n dateTimeWithoutTimezone,\n dateTimeWithTimezone\n};\n\nexport default (): CmsFieldValueTransformer => ({\n type: \"cms-field-value-transformer\",\n name: \"cms-field-value-transformer-date\",\n fieldType: \"datetime\",\n transform: (value: any, field) => {\n // check types in packages/app-headless-cms/src/admin/plugins/fieldRenderers/dateTime/dateTimeField.tsx\n const type = field.settings && field.settings.type ? String(field.settings.type) : null;\n if (!type) {\n return value;\n }\n const transform = transformers[type];\n\n if (!transform) {\n return value;\n }\n\n return transform(value);\n }\n});\n"]}
|
|
@@ -13,9 +13,9 @@ export interface ListQueryVariables {
|
|
|
13
13
|
}
|
|
14
14
|
export interface ContentEntriesContext {
|
|
15
15
|
contentModel: CmsEditorContentModel;
|
|
16
|
-
sorters: CmsEntriesSorter[];
|
|
17
16
|
canCreate: boolean;
|
|
18
17
|
listQueryVariables: ListQueryVariables;
|
|
18
|
+
sorters: CmsEntriesSorter[];
|
|
19
19
|
setListQueryVariables: Dispatch<SetStateAction<ListQueryVariables>>;
|
|
20
20
|
insideDialog?: boolean;
|
|
21
21
|
}
|