@webiny/app-headless-cms 5.40.4 → 5.40.5

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.
@@ -111,7 +111,7 @@ var ContentEntryFormProvider = exports.ContentEntryFormProvider = function Conte
111
111
  setTimeout(function () {
112
112
  onAfterCreate(entry);
113
113
  resolve();
114
- }, 10);
114
+ }, 50);
115
115
  });
116
116
  }
117
117
  return entry;
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appAdmin","_appHeadlessCmsCommon","_","_excluded","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread3","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","onAfterCreate","setSaveEntry","addItemToListCache","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","contentEntry","useContentEntry","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","persistEntry","_ref2","isLocked","id","createEntry","updateEntryRevision","input","_objectWithoutProperties2","createEntryRevisionFrom","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","_await$persistEntry","meta","locked","error","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form, FormAPI, FormOnSubmit, FormValidation } from \"@webiny/form\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { useContentEntry } from \"~/index\";\nimport { PartialCmsContentEntryWithId } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormValidation;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\ninterface PersistEntryParams {\n entry: PartialCmsContentEntryWithId;\n isLocked: boolean;\n}\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n confirmNavigationIfDirty: boolean;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n addItemToListCache?: boolean;\n children: React.ReactNode;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation) => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message }),\n {} as Record<string, string | undefined>\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n onAfterCreate,\n setSaveEntry,\n addItemToListCache,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState({});\n const { showSnackbar } = useSnackbar();\n const contentEntry = useContentEntry();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const persistEntry = ({ entry, isLocked }: PersistEntryParams) => {\n const options = {\n skipValidators: saveOptionsRef.current.skipValidators,\n addItemToListCache\n };\n\n if (!entry.id) {\n return contentEntry.createEntry({ entry, options });\n }\n\n if (!isLocked) {\n return contentEntry.updateEntryRevision({\n entry,\n options: { skipValidators: options?.skipValidators }\n });\n }\n\n const { id, ...input } = entry;\n\n return contentEntry.createEntryRevisionFrom({\n id,\n input,\n options: { skipValidators: options?.skipValidators }\n });\n };\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry({\n entry: { id: data.id, ...gqlData },\n isLocked: data.meta?.locked === true\n });\n\n if (error) {\n showSnackbar(error.message);\n setInvalidFields(error.data as InvalidFieldError[]);\n return;\n }\n\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 10);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n data={entry}\n ref={ref}\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_pick","_interopRequireDefault","_reactRouter","_form","_appAdmin","_appHeadlessCmsCommon","_","_excluded","promptMessage","ContentEntryFormContext","exports","React","createContext","undefined","formValidationToMap","invalidFields","Object","keys","reduce","acc","key","_objectSpread3","default","_defineProperty2","message","ContentEntryFormProvider","_ref","model","entry","children","onAfterCreate","setSaveEntry","addItemToListCache","confirmNavigationIfDirty","ref","useRef","_useState","useState","_useState2","_slicedToArray2","setInvalidFields","_useSnackbar","useSnackbar","showSnackbar","contentEntry","useContentEntry","saveOptionsRef","skipValidators","saveEntry","useCallback","options","arguments","length","current","submit","persistEntry","_ref2","isLocked","id","createEntry","updateEntryRevision","input","_objectWithoutProperties2","createEntryRevisionFrom","onFormSubmit","data","fieldsIds","fields","map","item","fieldId","formData","pick","_toConsumableArray2","gqlData","prepareFormData","isNewEntry","_await$persistEntry","meta","locked","error","isNewRevision","Promise","resolve","setTimeout","useEffect","createElement","Form","onSubmit","onInvalid","formProps","context","Provider","value","CompositionScope","name","Prompt","when","form","isPristine"],"sources":["ContentEntryFormProvider.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport pick from \"lodash/pick\";\nimport { Prompt } from \"@webiny/react-router\";\nimport { Form, FormAPI, FormOnSubmit, FormValidation } from \"@webiny/form\";\nimport { CmsContentEntry, CmsModel } from \"@webiny/app-headless-cms-common/types\";\nimport { CompositionScope, useSnackbar } from \"@webiny/app-admin\";\nimport { prepareFormData } from \"@webiny/app-headless-cms-common\";\nimport { useContentEntry } from \"~/index\";\nimport { PartialCmsContentEntryWithId } from \"~/admin/contexts/Cms\";\n\nconst promptMessage =\n \"There are some unsaved changes! Are you sure you want to navigate away and discard all changes?\";\n\ninterface SaveEntryOptions {\n skipValidators?: string[];\n}\n\nexport interface ContentEntryFormContext {\n entry: Partial<CmsContentEntry>;\n saveEntry: (options?: SaveEntryOptions) => Promise<CmsContentEntry | null>;\n invalidFields: FormValidation;\n}\n\nexport const ContentEntryFormContext = React.createContext<ContentEntryFormContext | undefined>(\n undefined\n);\n\ninterface InvalidFieldError {\n fieldId: string;\n error: string;\n}\n\ninterface PersistEntryParams {\n entry: PartialCmsContentEntryWithId;\n isLocked: boolean;\n}\n\nexport interface SetSaveEntry {\n (cb: ContentEntryFormContext[\"saveEntry\"]): void;\n}\n\ninterface ContentEntryFormProviderProps {\n entry: Partial<CmsContentEntry>;\n model: CmsModel;\n confirmNavigationIfDirty: boolean;\n onAfterCreate?: (entry: CmsContentEntry) => void;\n setSaveEntry?: SetSaveEntry;\n addItemToListCache?: boolean;\n children: React.ReactNode;\n}\n\nconst formValidationToMap = (invalidFields: FormValidation) => {\n return Object.keys(invalidFields).reduce(\n (acc, key) => ({ ...acc, [key]: invalidFields[key].message }),\n {} as Record<string, string | undefined>\n );\n};\n\nexport const ContentEntryFormProvider = ({\n model,\n entry,\n children,\n onAfterCreate,\n setSaveEntry,\n addItemToListCache,\n confirmNavigationIfDirty\n}: ContentEntryFormProviderProps) => {\n const ref = useRef<FormAPI<CmsContentEntry> | null>(null);\n const [invalidFields, setInvalidFields] = useState({});\n const { showSnackbar } = useSnackbar();\n const contentEntry = useContentEntry();\n const saveOptionsRef = useRef<SaveEntryOptions>({ skipValidators: undefined });\n\n const saveEntry = useCallback(async (options: SaveEntryOptions = {}) => {\n saveOptionsRef.current.skipValidators = options.skipValidators;\n\n return ref.current!.submit(undefined, {\n skipValidators: options.skipValidators\n }) as unknown as Promise<CmsContentEntry | null>;\n }, []);\n\n const persistEntry = ({ entry, isLocked }: PersistEntryParams) => {\n const options = {\n skipValidators: saveOptionsRef.current.skipValidators,\n addItemToListCache\n };\n\n if (!entry.id) {\n return contentEntry.createEntry({ entry, options });\n }\n\n if (!isLocked) {\n return contentEntry.updateEntryRevision({\n entry,\n options: { skipValidators: options?.skipValidators }\n });\n }\n\n const { id, ...input } = entry;\n\n return contentEntry.createEntryRevisionFrom({\n id,\n input,\n options: { skipValidators: options?.skipValidators }\n });\n };\n\n const onFormSubmit: FormOnSubmit<CmsContentEntry> = async data => {\n const fieldsIds = model.fields.map(item => item.fieldId);\n const formData = pick(data, [...fieldsIds]);\n\n const gqlData = prepareFormData(formData, model.fields) as Partial<CmsContentEntry>;\n const isNewEntry = data.id === undefined;\n\n const { entry, error } = await persistEntry({\n entry: { id: data.id, ...gqlData },\n isLocked: data.meta?.locked === true\n });\n\n if (error) {\n showSnackbar(error.message);\n setInvalidFields(error.data as InvalidFieldError[]);\n return;\n }\n\n setInvalidFields({});\n\n const isNewRevision = !isNewEntry && data.id !== entry.id;\n\n if ((isNewEntry || isNewRevision) && onAfterCreate) {\n // We need a timeout to let the Prompt component update.\n await new Promise<void>(resolve => {\n setTimeout(() => {\n onAfterCreate(entry);\n resolve();\n }, 50);\n });\n }\n\n return entry;\n };\n\n useEffect(() => {\n if (typeof setSaveEntry === \"function\") {\n setSaveEntry(saveEntry);\n }\n }, [setSaveEntry]);\n\n return (\n <Form<CmsContentEntry>\n onSubmit={onFormSubmit}\n data={entry}\n ref={ref}\n invalidFields={invalidFields}\n onInvalid={invalidFields => {\n setInvalidFields(formValidationToMap(invalidFields));\n showSnackbar(\"Some fields did not pass the validation. Please check the form.\");\n }}\n >\n {formProps => {\n const context: ContentEntryFormContext = {\n entry: formProps.data,\n saveEntry,\n invalidFields\n };\n return (\n <ContentEntryFormContext.Provider value={context}>\n {confirmNavigationIfDirty ? (\n <CompositionScope name={\"cms.contentEntryForm\"}>\n <Prompt when={!formProps.form.isPristine} message={promptMessage} />\n </CompositionScope>\n ) : null}\n {children}\n </ContentEntryFormContext.Provider>\n );\n }}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -37,7 +37,7 @@ var LexicalCmsEditor = exports.LexicalCmsEditor = function LexicalCmsEditor(prop
37
37
  }, [props?.onChange]);
38
38
  return /*#__PURE__*/_react.default.createElement(_LexicalEditor.LexicalEditor, Object.assign({}, props, {
39
39
  focus: true,
40
- value: JSON.stringify(props.value),
40
+ value: props.value ? JSON.stringify(props.value) : props.value,
41
41
  onChange: onChange,
42
42
  staticToolbar: toolbar,
43
43
  tag: "p",
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_lexicalEditor","_reactComposition","_LexicalEditor","placeholderStyles","position","top","left","contentEditableStyles","minHeight","display","padding","styles","backgroundColor","border","maxHeight","toolbar","default","createElement","CompositionScope","name","StaticToolbar","LexicalCmsEditor","exports","props","onChange","useCallback","jsonString","JSON","parse","LexicalEditor","Object","assign","focus","value","stringify","staticToolbar","tag","placeholder"],"sources":["LexicalCmsEditor.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { StaticToolbar } from \"@webiny/lexical-editor\";\nimport { RichTextEditorProps } from \"@webiny/lexical-editor/types\";\nimport { CompositionScope } from \"@webiny/react-composition\";\nimport { LexicalEditor } from \"@webiny/app-admin/components/LexicalEditor\";\n\nconst placeholderStyles: React.CSSProperties = { position: \"absolute\", top: 40, left: 25 };\n\nconst contentEditableStyles: React.CSSProperties = {\n minHeight: 200,\n display: \"block\",\n padding: 10\n};\n\nconst styles: React.CSSProperties = {\n backgroundColor: \"#fff\",\n border: \"1px solid #e1e1e1\",\n padding: \"10px 14px\",\n minHeight: 200,\n maxHeight: 350\n};\n\nconst toolbar = (\n <CompositionScope name={\"cms\"}>\n <StaticToolbar />\n </CompositionScope>\n);\n\nexport const LexicalCmsEditor = (props: Omit<RichTextEditorProps, \"theme\">) => {\n const onChange = useCallback(\n (jsonString: string) => {\n if (props?.onChange) {\n props?.onChange(JSON.parse(jsonString));\n }\n },\n [props?.onChange]\n );\n\n return (\n <LexicalEditor\n {...props}\n focus={true}\n value={JSON.stringify(props.value)}\n onChange={onChange}\n staticToolbar={toolbar}\n tag={\"p\"}\n placeholder={props?.placeholder || \"Enter your text here...\"}\n placeholderStyles={placeholderStyles}\n contentEditableStyles={contentEditableStyles}\n styles={styles}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAMI,iBAAsC,GAAG;EAAEC,QAAQ,EAAE,UAAU;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE;AAAG,CAAC;AAE1F,IAAMC,qBAA0C,GAAG;EAC/CC,SAAS,EAAE,GAAG;EACdC,OAAO,EAAE,OAAO;EAChBC,OAAO,EAAE;AACb,CAAC;AAED,IAAMC,MAA2B,GAAG;EAChCC,eAAe,EAAE,MAAM;EACvBC,MAAM,EAAE,mBAAmB;EAC3BH,OAAO,EAAE,WAAW;EACpBF,SAAS,EAAE,GAAG;EACdM,SAAS,EAAE;AACf,CAAC;AAED,IAAMC,OAAO,gBACTlB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAAChB,iBAAA,CAAAiB,gBAAgB;EAACC,IAAI,EAAE;AAAM,gBAC1BtB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACjB,cAAA,CAAAoB,aAAa,MAAE,CACF,CACrB;AAEM,IAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAIE,KAAyC,EAAK;EAC3E,IAAMC,QAAQ,GAAG,IAAAC,kBAAW,EACxB,UAACC,UAAkB,EAAK;IACpB,IAAIH,KAAK,EAAEC,QAAQ,EAAE;MACjBD,KAAK,EAAEC,QAAQ,CAACG,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC,CAAC;IAC3C;EACJ,CAAC,EACD,CAACH,KAAK,EAAEC,QAAQ,CACpB,CAAC;EAED,oBACI3B,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACf,cAAA,CAAA2B,aAAa,EAAAC,MAAA,CAAAC,MAAA,KACNR,KAAK;IACTS,KAAK,EAAE,IAAK;IACZC,KAAK,EAAEN,IAAI,CAACO,SAAS,CAACX,KAAK,CAACU,KAAK,CAAE;IACnCT,QAAQ,EAAEA,QAAS;IACnBW,aAAa,EAAEpB,OAAQ;IACvBqB,GAAG,EAAE,GAAI;IACTC,WAAW,EAAEd,KAAK,EAAEc,WAAW,IAAI,yBAA0B;IAC7DlC,iBAAiB,EAAEA,iBAAkB;IACrCI,qBAAqB,EAAEA,qBAAsB;IAC7CI,MAAM,EAAEA;EAAO,EAClB,CAAC;AAEV,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_lexicalEditor","_reactComposition","_LexicalEditor","placeholderStyles","position","top","left","contentEditableStyles","minHeight","display","padding","styles","backgroundColor","border","maxHeight","toolbar","default","createElement","CompositionScope","name","StaticToolbar","LexicalCmsEditor","exports","props","onChange","useCallback","jsonString","JSON","parse","LexicalEditor","Object","assign","focus","value","stringify","staticToolbar","tag","placeholder"],"sources":["LexicalCmsEditor.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { StaticToolbar } from \"@webiny/lexical-editor\";\nimport { RichTextEditorProps } from \"@webiny/lexical-editor/types\";\nimport { CompositionScope } from \"@webiny/react-composition\";\nimport { LexicalEditor } from \"@webiny/app-admin/components/LexicalEditor\";\n\nconst placeholderStyles: React.CSSProperties = { position: \"absolute\", top: 40, left: 25 };\n\nconst contentEditableStyles: React.CSSProperties = {\n minHeight: 200,\n display: \"block\",\n padding: 10\n};\n\nconst styles: React.CSSProperties = {\n backgroundColor: \"#fff\",\n border: \"1px solid #e1e1e1\",\n padding: \"10px 14px\",\n minHeight: 200,\n maxHeight: 350\n};\n\nconst toolbar = (\n <CompositionScope name={\"cms\"}>\n <StaticToolbar />\n </CompositionScope>\n);\n\nexport const LexicalCmsEditor = (props: Omit<RichTextEditorProps, \"theme\">) => {\n const onChange = useCallback(\n (jsonString: string) => {\n if (props?.onChange) {\n props?.onChange(JSON.parse(jsonString));\n }\n },\n [props?.onChange]\n );\n\n return (\n <LexicalEditor\n {...props}\n focus={true}\n value={props.value ? JSON.stringify(props.value) : props.value}\n onChange={onChange}\n staticToolbar={toolbar}\n tag={\"p\"}\n placeholder={props?.placeholder || \"Enter your text here...\"}\n placeholderStyles={placeholderStyles}\n contentEditableStyles={contentEditableStyles}\n styles={styles}\n />\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,iBAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAEA,IAAMI,iBAAsC,GAAG;EAAEC,QAAQ,EAAE,UAAU;EAAEC,GAAG,EAAE,EAAE;EAAEC,IAAI,EAAE;AAAG,CAAC;AAE1F,IAAMC,qBAA0C,GAAG;EAC/CC,SAAS,EAAE,GAAG;EACdC,OAAO,EAAE,OAAO;EAChBC,OAAO,EAAE;AACb,CAAC;AAED,IAAMC,MAA2B,GAAG;EAChCC,eAAe,EAAE,MAAM;EACvBC,MAAM,EAAE,mBAAmB;EAC3BH,OAAO,EAAE,WAAW;EACpBF,SAAS,EAAE,GAAG;EACdM,SAAS,EAAE;AACf,CAAC;AAED,IAAMC,OAAO,gBACTlB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAAChB,iBAAA,CAAAiB,gBAAgB;EAACC,IAAI,EAAE;AAAM,gBAC1BtB,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACjB,cAAA,CAAAoB,aAAa,MAAE,CACF,CACrB;AAEM,IAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAAnBA,gBAAgBA,CAAIE,KAAyC,EAAK;EAC3E,IAAMC,QAAQ,GAAG,IAAAC,kBAAW,EACxB,UAACC,UAAkB,EAAK;IACpB,IAAIH,KAAK,EAAEC,QAAQ,EAAE;MACjBD,KAAK,EAAEC,QAAQ,CAACG,IAAI,CAACC,KAAK,CAACF,UAAU,CAAC,CAAC;IAC3C;EACJ,CAAC,EACD,CAACH,KAAK,EAAEC,QAAQ,CACpB,CAAC;EAED,oBACI3B,MAAA,CAAAmB,OAAA,CAAAC,aAAA,CAACf,cAAA,CAAA2B,aAAa,EAAAC,MAAA,CAAAC,MAAA,KACNR,KAAK;IACTS,KAAK,EAAE,IAAK;IACZC,KAAK,EAAEV,KAAK,CAACU,KAAK,GAAGN,IAAI,CAACO,SAAS,CAACX,KAAK,CAACU,KAAK,CAAC,GAAGV,KAAK,CAACU,KAAM;IAC/DT,QAAQ,EAAEA,QAAS;IACnBW,aAAa,EAAEpB,OAAQ;IACvBqB,GAAG,EAAE,GAAI;IACTC,WAAW,EAAEd,KAAK,EAAEc,WAAW,IAAI,yBAA0B;IAC7DlC,iBAAiB,EAAEA,iBAAkB;IACrCI,qBAAqB,EAAEA,qBAAsB;IAC7CI,MAAM,EAAEA;EAAO,EAClB,CAAC;AAEV,CAAC","ignoreList":[]}
@@ -171,6 +171,10 @@ var ContentEntryProvider = exports.ContentEntryProvider = function ContentEntryP
171
171
  if (response.entry && options?.addItemToListCache) {
172
172
  addRecordToCache(response.entry);
173
173
  }
174
+
175
+ // The `ContentEntryForm` component reads the `entry` from the context, and we want it to have the latest state.
176
+ // This way, the form also knows whether it's `pristine` or not.
177
+ setEntry(response.entry);
174
178
  return response;
175
179
  };
176
180
  var createEntryRevisionFrom = async function createEntryRevisionFrom(params) {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_get","_interopRequireDefault","_reactRouter","_appAdmin","_hooks","_useContentEntries2","_utils","_appHeadlessCmsCommon","_getFetchPolicy","_appAco","_useMockRecords","_constants","ContentEntryContext","exports","React","createContext","undefined","useContentEntryProviderProps","_useRouter","useRouter","location","query","URLSearchParams","search","isNewEntry","get","getContentId","ContentEntryProvider","_ref","children","readonly","currentFolderId","_useIsMounted","useIsMounted","isMounted","_useState","useState","_useState2","_slicedToArray2","default","activeTab","setActiveTab","_useState3","_useState4","entry","setEntry","_useContentEntries","useContentEntries","model","contentModel","canCreate","_useRouter2","history","_useSnackbar","useSnackbar","showSnackbar","cms","useCms","_ref2","useMockRecords","useRecords","addRecordToCache","updateRecordInCache","removeRecordFromCache","_useState5","_useState6","isLoading","setLoading","contentEntryProviderProps","newEntry","contentId","revisionId","decodeURIComponent","entryId","version","result","parseIdentifier","id","useEffect","_useMemo","useMemo","READ_CONTENT","createReadQuery","modelId","_useMemo2","GET_REVISIONS","createRevisionsQuery","variables","revision","loadEntry","useQuery","skip","fetchPolicy","getFetchPolicy","onCompleted","response","_response$content","content","data","error","push","concat","message","getRevisions","loading","refetch","getEntry","_ref3","createEntry","_ref4","options","_objectSpread2","wbyAco_location","folderId","ROOT_FOLDER","skipValidators","addItemToListCache","createEntryRevisionFrom","params","updateEntryRevision","deleteEntry","publishEntryRevision","unpublishEntryRevision","value","refetchContent","revisions","showEmptyView","createElement","Provider","displayName"],"sources":["ContentEntryContext.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar, useIsMounted } from \"@webiny/app-admin\";\nimport { useCms, useQuery } from \"~/admin/hooks\";\nimport { ContentEntriesContext } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { useContentEntries } from \"~/admin/views/contentEntries/hooks/useContentEntries\";\nimport { CmsContentEntry, CmsContentEntryRevision } from \"~/types\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n createReadQuery,\n createRevisionsQuery\n} from \"@webiny/app-headless-cms-common\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport * as Cms from \"~/admin/contexts/Cms\";\nimport { useMockRecords } from \"./useMockRecords\";\nimport { ROOT_FOLDER } from \"~/admin/constants\";\n\ninterface UpdateListCacheOptions {\n options?: {\n addItemToListCache?: boolean;\n };\n}\n\nexport type GetEntryParams = Omit<Cms.GetEntryParams, \"model\">;\nexport type CreateEntryParams = Omit<Cms.CreateEntryParams, \"model\"> & UpdateListCacheOptions;\nexport type CreateEntryRevisionFromParams = Omit<Cms.CreateEntryRevisionFromParams, \"model\">;\nexport type UpdateEntryRevisionParams = Omit<Cms.UpdateEntryRevisionParams, \"model\">;\nexport type PublishEntryRevisionParams = Omit<Cms.PublishEntryRevisionParams, \"model\">;\nexport type UnpublishEntryRevisionParams = Omit<Cms.UnpublishEntryRevisionParams, \"model\">;\nexport type DeleteEntryParams = Omit<Cms.DeleteEntryParams, \"model\">;\n\nexport interface ContentEntryCrud {\n getEntry: (params: GetEntryParams) => Promise<Cms.GetEntryResponse>;\n createEntry: (params: CreateEntryParams) => Promise<Cms.CreateEntryResponse>;\n createEntryRevisionFrom: (\n params: CreateEntryRevisionFromParams\n ) => Promise<Cms.CreateEntryRevisionFromResponse>;\n updateEntryRevision: (\n params: UpdateEntryRevisionParams\n ) => Promise<Cms.UpdateEntryRevisionResponse>;\n publishEntryRevision: (\n params: PublishEntryRevisionParams\n ) => Promise<Cms.PublishEntryRevisionResponse>;\n unpublishEntryRevision: (\n params: UnpublishEntryRevisionParams\n ) => Promise<Cms.UnpublishEntryRevisionResponse>;\n deleteEntry: (params: DeleteEntryParams) => Promise<Cms.DeleteEntryResponse>;\n}\n\nexport interface ContentEntryContext extends ContentEntriesContext, ContentEntryCrud {\n entry: CmsContentEntry;\n loading: boolean;\n revisions: CmsContentEntryRevision[];\n refetchContent: () => void;\n setActiveTab(index: number): void;\n activeTab: number;\n showEmptyView: boolean;\n}\n\nexport const ContentEntryContext = React.createContext<ContentEntryContext | undefined>(undefined);\n\nexport interface ContentEntryContextProviderProps extends Partial<UseContentEntryProviderProps> {\n /**\n * This prop is used when you need to mount this provider outside the main content entry view, with limited features.\n * Example: Model Editor \"preview\" tab.\n */\n readonly?: boolean;\n children: React.ReactNode;\n currentFolderId?: string;\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 = ({\n children,\n isNewEntry,\n readonly,\n getContentId,\n currentFolderId\n}: ContentEntryContextProviderProps) => {\n const { isMounted } = useIsMounted();\n const [activeTab, setActiveTab] = useState(0);\n const [entry, setEntry] = useState<CmsContentEntry>();\n const { contentModel: model, canCreate } = useContentEntries();\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const cms = useCms();\n const { addRecordToCache, updateRecordInCache, removeRecordFromCache } = readonly\n ? useMockRecords()\n : useRecords();\n const [isLoading, setLoading] = useState<boolean>(false);\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 useEffect(() => {\n if (!revisionId && entry) {\n setEntry(undefined);\n }\n setActiveTab(0);\n }, [revisionId]);\n\n const { READ_CONTENT } = useMemo(() => {\n return {\n READ_CONTENT: createReadQuery(model)\n };\n }, [model.modelId]);\n\n const { GET_REVISIONS } = useMemo(() => {\n return {\n GET_REVISIONS: createRevisionsQuery(model)\n };\n }, [model.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 // TODO: refactor to use `getEntry` from useCms()\n const loadEntry = useQuery<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>(READ_CONTENT, {\n variables,\n skip: !revisionId,\n fetchPolicy: getFetchPolicy(model),\n onCompleted: response => {\n if (!response || !isMounted()) {\n return;\n }\n\n const { data, error } = response.content;\n if (!error) {\n setEntry(data);\n return;\n }\n history.push(`/cms/content-entries/${model.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 || loadEntry.loading || getRevisions.loading;\n\n useEffect(() => {\n if (getRevisions.loading || !entryId) {\n return;\n }\n getRevisions.refetch({\n id: entryId\n });\n }, [revisionId, getRevisions]);\n\n // CRUD methods\n const getEntry: ContentEntryCrud[\"getEntry\"] = async ({ id }) => {\n return await cms.getEntry({ model, id });\n };\n\n const createEntry: ContentEntryCrud[\"createEntry\"] = async ({ entry, options }) => {\n setLoading(true);\n const response = await cms.createEntry({\n model,\n entry: {\n ...entry,\n wbyAco_location: {\n folderId: currentFolderId || ROOT_FOLDER\n }\n },\n options: { skipValidators: options?.skipValidators }\n });\n setLoading(false);\n if (response.entry && options?.addItemToListCache) {\n addRecordToCache(response.entry);\n }\n return response;\n };\n\n const createEntryRevisionFrom: ContentEntryCrud[\"createEntryRevisionFrom\"] = async params => {\n setLoading(true);\n const response = await cms.createEntryRevisionFrom({ model, ...params });\n setLoading(false);\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const updateEntryRevision: ContentEntryCrud[\"updateEntryRevision\"] = async params => {\n setLoading(true);\n const response = await cms.updateEntryRevision({ model, ...params });\n setLoading(false);\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const deleteEntry: ContentEntryCrud[\"deleteEntry\"] = async params => {\n const response = await cms.deleteEntry({ model, ...params });\n removeRecordFromCache(params.id);\n return response;\n };\n\n const publishEntryRevision: ContentEntryCrud[\"publishEntryRevision\"] = async params => {\n const response = await cms.publishEntryRevision({ model, ...params });\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const unpublishEntryRevision: ContentEntryCrud[\"unpublishEntryRevision\"] = async params => {\n const response = await cms.unpublishEntryRevision({ model, ...params });\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const value: ContentEntryContext = {\n activeTab,\n canCreate,\n contentModel: model,\n getEntry,\n createEntry,\n createEntryRevisionFrom,\n deleteEntry,\n entry: (entry || {}) as CmsContentEntry,\n loading,\n publishEntryRevision,\n refetchContent: loadEntry.refetch,\n revisions: get(getRevisions, \"data.revisions.data\") || [],\n setActiveTab,\n showEmptyView: !newEntry && !loading && !revisionId,\n unpublishEntryRevision,\n updateEntryRevision\n };\n\n return <ContentEntryContext.Provider value={value}>{children}</ContentEntryContext.Provider>;\n};\n\nContentEntryProvider.displayName = \"ContentEntryProvider\";\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_get","_interopRequireDefault","_reactRouter","_appAdmin","_hooks","_useContentEntries2","_utils","_appHeadlessCmsCommon","_getFetchPolicy","_appAco","_useMockRecords","_constants","ContentEntryContext","exports","React","createContext","undefined","useContentEntryProviderProps","_useRouter","useRouter","location","query","URLSearchParams","search","isNewEntry","get","getContentId","ContentEntryProvider","_ref","children","readonly","currentFolderId","_useIsMounted","useIsMounted","isMounted","_useState","useState","_useState2","_slicedToArray2","default","activeTab","setActiveTab","_useState3","_useState4","entry","setEntry","_useContentEntries","useContentEntries","model","contentModel","canCreate","_useRouter2","history","_useSnackbar","useSnackbar","showSnackbar","cms","useCms","_ref2","useMockRecords","useRecords","addRecordToCache","updateRecordInCache","removeRecordFromCache","_useState5","_useState6","isLoading","setLoading","contentEntryProviderProps","newEntry","contentId","revisionId","decodeURIComponent","entryId","version","result","parseIdentifier","id","useEffect","_useMemo","useMemo","READ_CONTENT","createReadQuery","modelId","_useMemo2","GET_REVISIONS","createRevisionsQuery","variables","revision","loadEntry","useQuery","skip","fetchPolicy","getFetchPolicy","onCompleted","response","_response$content","content","data","error","push","concat","message","getRevisions","loading","refetch","getEntry","_ref3","createEntry","_ref4","options","_objectSpread2","wbyAco_location","folderId","ROOT_FOLDER","skipValidators","addItemToListCache","createEntryRevisionFrom","params","updateEntryRevision","deleteEntry","publishEntryRevision","unpublishEntryRevision","value","refetchContent","revisions","showEmptyView","createElement","Provider","displayName"],"sources":["ContentEntryContext.tsx"],"sourcesContent":["import React, { useEffect, useMemo, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { useRouter } from \"@webiny/react-router\";\nimport { useSnackbar, useIsMounted } from \"@webiny/app-admin\";\nimport { useCms, useQuery } from \"~/admin/hooks\";\nimport { ContentEntriesContext } from \"~/admin/views/contentEntries/ContentEntriesContext\";\nimport { useContentEntries } from \"~/admin/views/contentEntries/hooks/useContentEntries\";\nimport { CmsContentEntry, CmsContentEntryRevision } from \"~/types\";\nimport { parseIdentifier } from \"@webiny/utils\";\nimport {\n CmsEntriesListRevisionsQueryResponse,\n CmsEntriesListRevisionsQueryVariables,\n CmsEntryGetQueryResponse,\n CmsEntryGetQueryVariables,\n createReadQuery,\n createRevisionsQuery\n} from \"@webiny/app-headless-cms-common\";\nimport { getFetchPolicy } from \"~/utils/getFetchPolicy\";\nimport { useRecords } from \"@webiny/app-aco\";\nimport * as Cms from \"~/admin/contexts/Cms\";\nimport { useMockRecords } from \"./useMockRecords\";\nimport { ROOT_FOLDER } from \"~/admin/constants\";\n\ninterface UpdateListCacheOptions {\n options?: {\n addItemToListCache?: boolean;\n };\n}\n\nexport type GetEntryParams = Omit<Cms.GetEntryParams, \"model\">;\nexport type CreateEntryParams = Omit<Cms.CreateEntryParams, \"model\"> & UpdateListCacheOptions;\nexport type CreateEntryRevisionFromParams = Omit<Cms.CreateEntryRevisionFromParams, \"model\">;\nexport type UpdateEntryRevisionParams = Omit<Cms.UpdateEntryRevisionParams, \"model\">;\nexport type PublishEntryRevisionParams = Omit<Cms.PublishEntryRevisionParams, \"model\">;\nexport type UnpublishEntryRevisionParams = Omit<Cms.UnpublishEntryRevisionParams, \"model\">;\nexport type DeleteEntryParams = Omit<Cms.DeleteEntryParams, \"model\">;\n\nexport interface ContentEntryCrud {\n getEntry: (params: GetEntryParams) => Promise<Cms.GetEntryResponse>;\n createEntry: (params: CreateEntryParams) => Promise<Cms.CreateEntryResponse>;\n createEntryRevisionFrom: (\n params: CreateEntryRevisionFromParams\n ) => Promise<Cms.CreateEntryRevisionFromResponse>;\n updateEntryRevision: (\n params: UpdateEntryRevisionParams\n ) => Promise<Cms.UpdateEntryRevisionResponse>;\n publishEntryRevision: (\n params: PublishEntryRevisionParams\n ) => Promise<Cms.PublishEntryRevisionResponse>;\n unpublishEntryRevision: (\n params: UnpublishEntryRevisionParams\n ) => Promise<Cms.UnpublishEntryRevisionResponse>;\n deleteEntry: (params: DeleteEntryParams) => Promise<Cms.DeleteEntryResponse>;\n}\n\nexport interface ContentEntryContext extends ContentEntriesContext, ContentEntryCrud {\n entry: CmsContentEntry;\n loading: boolean;\n revisions: CmsContentEntryRevision[];\n refetchContent: () => void;\n setActiveTab(index: number): void;\n activeTab: number;\n showEmptyView: boolean;\n}\n\nexport const ContentEntryContext = React.createContext<ContentEntryContext | undefined>(undefined);\n\nexport interface ContentEntryContextProviderProps extends Partial<UseContentEntryProviderProps> {\n /**\n * This prop is used when you need to mount this provider outside the main content entry view, with limited features.\n * Example: Model Editor \"preview\" tab.\n */\n readonly?: boolean;\n children: React.ReactNode;\n currentFolderId?: string;\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 = ({\n children,\n isNewEntry,\n readonly,\n getContentId,\n currentFolderId\n}: ContentEntryContextProviderProps) => {\n const { isMounted } = useIsMounted();\n const [activeTab, setActiveTab] = useState(0);\n const [entry, setEntry] = useState<CmsContentEntry>();\n const { contentModel: model, canCreate } = useContentEntries();\n const { history } = useRouter();\n const { showSnackbar } = useSnackbar();\n const cms = useCms();\n const { addRecordToCache, updateRecordInCache, removeRecordFromCache } = readonly\n ? useMockRecords()\n : useRecords();\n const [isLoading, setLoading] = useState<boolean>(false);\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 useEffect(() => {\n if (!revisionId && entry) {\n setEntry(undefined);\n }\n setActiveTab(0);\n }, [revisionId]);\n\n const { READ_CONTENT } = useMemo(() => {\n return {\n READ_CONTENT: createReadQuery(model)\n };\n }, [model.modelId]);\n\n const { GET_REVISIONS } = useMemo(() => {\n return {\n GET_REVISIONS: createRevisionsQuery(model)\n };\n }, [model.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 // TODO: refactor to use `getEntry` from useCms()\n const loadEntry = useQuery<CmsEntryGetQueryResponse, CmsEntryGetQueryVariables>(READ_CONTENT, {\n variables,\n skip: !revisionId,\n fetchPolicy: getFetchPolicy(model),\n onCompleted: response => {\n if (!response || !isMounted()) {\n return;\n }\n\n const { data, error } = response.content;\n if (!error) {\n setEntry(data);\n return;\n }\n history.push(`/cms/content-entries/${model.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 || loadEntry.loading || getRevisions.loading;\n\n useEffect(() => {\n if (getRevisions.loading || !entryId) {\n return;\n }\n getRevisions.refetch({\n id: entryId\n });\n }, [revisionId, getRevisions]);\n\n // CRUD methods\n const getEntry: ContentEntryCrud[\"getEntry\"] = async ({ id }) => {\n return await cms.getEntry({ model, id });\n };\n\n const createEntry: ContentEntryCrud[\"createEntry\"] = async ({ entry, options }) => {\n setLoading(true);\n const response = await cms.createEntry({\n model,\n entry: {\n ...entry,\n wbyAco_location: {\n folderId: currentFolderId || ROOT_FOLDER\n }\n },\n options: { skipValidators: options?.skipValidators }\n });\n setLoading(false);\n if (response.entry && options?.addItemToListCache) {\n addRecordToCache(response.entry);\n }\n\n // The `ContentEntryForm` component reads the `entry` from the context, and we want it to have the latest state.\n // This way, the form also knows whether it's `pristine` or not.\n setEntry(response.entry);\n\n return response;\n };\n\n const createEntryRevisionFrom: ContentEntryCrud[\"createEntryRevisionFrom\"] = async params => {\n setLoading(true);\n const response = await cms.createEntryRevisionFrom({ model, ...params });\n setLoading(false);\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const updateEntryRevision: ContentEntryCrud[\"updateEntryRevision\"] = async params => {\n setLoading(true);\n const response = await cms.updateEntryRevision({ model, ...params });\n setLoading(false);\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const deleteEntry: ContentEntryCrud[\"deleteEntry\"] = async params => {\n const response = await cms.deleteEntry({ model, ...params });\n removeRecordFromCache(params.id);\n return response;\n };\n\n const publishEntryRevision: ContentEntryCrud[\"publishEntryRevision\"] = async params => {\n const response = await cms.publishEntryRevision({ model, ...params });\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const unpublishEntryRevision: ContentEntryCrud[\"unpublishEntryRevision\"] = async params => {\n const response = await cms.unpublishEntryRevision({ model, ...params });\n if (response.entry) {\n setEntry(response.entry);\n updateRecordInCache(response.entry);\n }\n return response;\n };\n\n const value: ContentEntryContext = {\n activeTab,\n canCreate,\n contentModel: model,\n getEntry,\n createEntry,\n createEntryRevisionFrom,\n deleteEntry,\n entry: (entry || {}) as CmsContentEntry,\n loading,\n publishEntryRevision,\n refetchContent: loadEntry.refetch,\n revisions: get(getRevisions, \"data.revisions.data\") || [],\n setActiveTab,\n showEmptyView: !newEntry && !loading && !revisionId,\n unpublishEntryRevision,\n updateEntryRevision\n };\n\n return <ContentEntryContext.Provider value={value}>{children}</ContentEntryContext.Provider>;\n};\n\nContentEntryProvider.displayName = \"ContentEntryProvider\";\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms",
3
- "version": "5.40.4",
3
+ "version": "5.40.5",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -28,30 +28,30 @@
28
28
  "@material-design-icons/svg": "0.14.13",
29
29
  "@svgr/webpack": "6.5.1",
30
30
  "@types/react": "18.2.79",
31
- "@webiny/app": "5.40.4",
32
- "@webiny/app-aco": "5.40.4",
33
- "@webiny/app-admin": "5.40.4",
34
- "@webiny/app-graphql-playground": "5.40.4",
35
- "@webiny/app-headless-cms-common": "5.40.4",
36
- "@webiny/app-i18n": "5.40.4",
37
- "@webiny/app-plugin-admin-welcome-screen": "5.40.4",
38
- "@webiny/app-security": "5.40.4",
39
- "@webiny/app-tenancy": "5.40.4",
40
- "@webiny/app-trash-bin": "5.40.4",
41
- "@webiny/error": "5.40.4",
42
- "@webiny/feature-flags": "5.40.4",
43
- "@webiny/form": "5.40.4",
44
- "@webiny/lexical-editor": "5.40.4",
45
- "@webiny/lexical-nodes": "5.40.4",
46
- "@webiny/lexical-theme": "5.40.4",
47
- "@webiny/plugins": "5.40.4",
48
- "@webiny/react-composition": "5.40.4",
49
- "@webiny/react-properties": "5.40.4",
50
- "@webiny/react-router": "5.40.4",
51
- "@webiny/theme": "5.40.4",
52
- "@webiny/ui": "5.40.4",
53
- "@webiny/utils": "5.40.4",
54
- "@webiny/validation": "5.40.4",
31
+ "@webiny/app": "5.40.5",
32
+ "@webiny/app-aco": "5.40.5",
33
+ "@webiny/app-admin": "5.40.5",
34
+ "@webiny/app-graphql-playground": "5.40.5",
35
+ "@webiny/app-headless-cms-common": "5.40.5",
36
+ "@webiny/app-i18n": "5.40.5",
37
+ "@webiny/app-plugin-admin-welcome-screen": "5.40.5",
38
+ "@webiny/app-security": "5.40.5",
39
+ "@webiny/app-tenancy": "5.40.5",
40
+ "@webiny/app-trash-bin": "5.40.5",
41
+ "@webiny/error": "5.40.5",
42
+ "@webiny/feature-flags": "5.40.5",
43
+ "@webiny/form": "5.40.5",
44
+ "@webiny/lexical-editor": "5.40.5",
45
+ "@webiny/lexical-nodes": "5.40.5",
46
+ "@webiny/lexical-theme": "5.40.5",
47
+ "@webiny/plugins": "5.40.5",
48
+ "@webiny/react-composition": "5.40.5",
49
+ "@webiny/react-properties": "5.40.5",
50
+ "@webiny/react-router": "5.40.5",
51
+ "@webiny/theme": "5.40.5",
52
+ "@webiny/ui": "5.40.5",
53
+ "@webiny/utils": "5.40.5",
54
+ "@webiny/validation": "5.40.5",
55
55
  "apollo-cache": "1.3.5",
56
56
  "apollo-client": "2.6.10",
57
57
  "apollo-link": "1.2.14",
@@ -85,8 +85,8 @@
85
85
  "@babel/preset-react": "7.24.1",
86
86
  "@babel/preset-typescript": "7.24.1",
87
87
  "@emotion/babel-plugin": "11.11.0",
88
- "@webiny/cli": "5.40.4",
89
- "@webiny/project-utils": "5.40.4",
88
+ "@webiny/cli": "5.40.5",
89
+ "@webiny/project-utils": "5.40.5",
90
90
  "babel-plugin-module-resolver": "5.0.0",
91
91
  "rimraf": "5.0.5",
92
92
  "ttypescript": "1.5.15",
@@ -115,5 +115,5 @@
115
115
  ]
116
116
  }
117
117
  },
118
- "gitHead": "1be8d8c3ebb404e7582ee9b426d8ec870afb5b99"
118
+ "gitHead": "f67778732392ed88f28da869ddacbf08a98cdec6"
119
119
  }