@webiny/app-headless-cms 5.25.1-beta.0 → 5.26.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -109,7 +109,7 @@ var Field = function Field(props) {
109
109
  case 2:
110
110
  response = _context.sent;
111
111
 
112
- if (!response.error) {
112
+ if (!(response && response.error)) {
113
113
  _context.next = 5;
114
114
  break;
115
115
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["Field.tsx"],"names":["React","Fragment","useCallback","css","styled","IconButton","Typography","ReactComponent","EditIcon","DeleteIcon","TitleIcon","MoreVerticalIcon","Menu","MenuItem","plugins","ListItemGraphic","Icon","i18n","useSnackbar","useContentModelEditor","useFieldEditor","t","ns","FieldContainer","display","flexDirection","justifyContent","alignItems","Info","flex","lineHeight","Actions","menuStyles","width","right","left","opacity","pointerEvents","allowedTitleFieldTypes","isFieldAllowedToBeTitle","field","parent","multipleValues","includes","type","Field","props","onEdit","showSnackbar","setData","data","getFieldPlugin","onDelete","fieldId","setAsTitle","titleFieldId","response","error","message","fieldPlugin","editorFieldOptionPlugins","byType","isTitleField","lockedFields","label","map","pl","cloneElement","render","key","name","some","lockedField","find","memo"],"mappings":"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","sourcesContent":["import React, { Fragment, useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsEditorField, CmsEditorFieldOptionPlugin } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\nimport { useFieldEditor } from \"~/admin/components/FieldEditor/useFieldEditor\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\nconst menuStyles = css({\n width: 220,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (field: CmsEditorField, parent?: CmsEditorField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n }\n return true;\n};\n\nexport interface FieldProps {\n field: CmsEditorField;\n onDelete: (field: CmsEditorField) => void;\n onEdit: (field: CmsEditorField) => void;\n parent?: CmsEditorField;\n}\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData, data } = useContentModelEditor();\n const { getFieldPlugin } = useFieldEditor();\n\n const onDelete = useCallback(() => {\n props.onDelete(field);\n }, [field.fieldId]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setData(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const isTitleField = data && field.fieldId === data.titleFieldId && !parent;\n\n const lockedFields = data ? data.lockedFields || [] : [];\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label}{\" \"}\n {field.multipleValues && <>({t`multiple values`})</>}\n {isTitleField && <>({t`entry title`})</>}\n </Typography>\n </Info>\n <Actions>\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem\n disabled={lockedFields.some(\n lockedField => lockedField.fieldId === field.fieldId\n )}\n onClick={onDelete}\n >\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {lockedFields.find(lockedField => lockedField.fieldId === field.fieldId)\n ? t`Cannot delete`\n : t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <div className={\"field-extra\"}>\n {fieldPlugin.field.render && fieldPlugin.field.render({ field, data, setData })}\n </div>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"]}
1
+ {"version":3,"sources":["Field.tsx"],"names":["React","Fragment","useCallback","css","styled","IconButton","Typography","ReactComponent","EditIcon","DeleteIcon","TitleIcon","MoreVerticalIcon","Menu","MenuItem","plugins","ListItemGraphic","Icon","i18n","useSnackbar","useContentModelEditor","useFieldEditor","t","ns","FieldContainer","display","flexDirection","justifyContent","alignItems","Info","flex","lineHeight","Actions","menuStyles","width","right","left","opacity","pointerEvents","allowedTitleFieldTypes","isFieldAllowedToBeTitle","field","parent","multipleValues","includes","type","Field","props","onEdit","showSnackbar","setData","data","getFieldPlugin","onDelete","fieldId","setAsTitle","titleFieldId","response","error","message","fieldPlugin","editorFieldOptionPlugins","byType","isTitleField","lockedFields","label","map","pl","cloneElement","render","key","name","some","lockedField","find","memo"],"mappings":"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","sourcesContent":["import React, { Fragment, useCallback } from \"react\";\nimport { css } from \"emotion\";\nimport styled from \"@emotion/styled\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Typography } from \"@webiny/ui/Typography\";\nimport { ReactComponent as EditIcon } from \"~/admin/icons/edit.svg\";\nimport { ReactComponent as DeleteIcon } from \"~/admin/icons/delete.svg\";\nimport { ReactComponent as TitleIcon } from \"~/admin/icons/title-24px.svg\";\nimport { ReactComponent as MoreVerticalIcon } from \"~/admin/icons/more_vert.svg\";\nimport { Menu, MenuItem } from \"@webiny/ui/Menu\";\nimport { plugins } from \"@webiny/plugins\";\nimport { CmsEditorField, CmsEditorFieldOptionPlugin } from \"~/types\";\nimport { ListItemGraphic } from \"@webiny/ui/List\";\nimport { Icon } from \"@webiny/ui/Icon\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport { useSnackbar } from \"@webiny/app-admin/hooks/useSnackbar\";\nimport { useContentModelEditor } from \"~/admin/components/ContentModelEditor/useContentModelEditor\";\nimport { useFieldEditor } from \"~/admin/components/FieldEditor/useFieldEditor\";\n\nconst t = i18n.ns(\"app-headless-cms/admin/components/editor/field\");\n\nconst FieldContainer = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n});\n\nconst Info = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"column\",\n \"> *\": {\n flex: \"1 100%\",\n lineHeight: \"150%\"\n }\n});\n\nconst Actions = styled(\"div\")({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"right\",\n \"> *\": {\n flex: \"1 100%\"\n }\n});\n\nconst menuStyles = css({\n width: 220,\n right: -105,\n left: \"auto !important\",\n \".disabled\": {\n opacity: 0.5,\n pointerEvents: \"none\"\n }\n});\n\nconst allowedTitleFieldTypes: string[] = [\"text\", \"number\"];\n\nconst isFieldAllowedToBeTitle = (field: CmsEditorField, parent?: CmsEditorField) => {\n if (field.multipleValues || parent) {\n return false;\n } else if (allowedTitleFieldTypes.includes(field.type) === false) {\n return false;\n }\n return true;\n};\n\nexport interface FieldProps {\n field: CmsEditorField;\n onDelete: (field: CmsEditorField) => void;\n onEdit: (field: CmsEditorField) => void;\n parent?: CmsEditorField;\n}\nconst Field: React.FC<FieldProps> = props => {\n const { field, onEdit, parent } = props;\n const { showSnackbar } = useSnackbar();\n const { setData, data } = useContentModelEditor();\n const { getFieldPlugin } = useFieldEditor();\n\n const onDelete = useCallback(() => {\n props.onDelete(field);\n }, [field.fieldId]);\n\n const setAsTitle = useCallback(async (): Promise<void> => {\n const response = await setData(data => {\n return { ...data, titleFieldId: field.fieldId };\n });\n\n if (response && response.error) {\n return showSnackbar(response.error.message);\n }\n\n showSnackbar(t`Title field set successfully.`);\n }, [field.fieldId]);\n\n const fieldPlugin = getFieldPlugin(field.type);\n const editorFieldOptionPlugins =\n plugins.byType<CmsEditorFieldOptionPlugin>(\"cms-editor-field-option\");\n\n if (!fieldPlugin) {\n return null;\n }\n\n const isTitleField = data && field.fieldId === data.titleFieldId && !parent;\n\n const lockedFields = data ? data.lockedFields || [] : [];\n return (\n <Fragment>\n <FieldContainer>\n <Info>\n <Typography use={\"subtitle1\"}>{field.label}</Typography>\n <Typography use={\"caption\"}>\n {fieldPlugin.field.label}{\" \"}\n {field.multipleValues && <>({t`multiple values`})</>}\n {isTitleField && <>({t`entry title`})</>}\n </Typography>\n </Info>\n <Actions>\n <IconButton\n data-testid={\"cms.editor.edit-field\"}\n icon={<EditIcon />}\n onClick={() => onEdit(field)}\n />\n <Menu\n className={menuStyles}\n handle={<IconButton icon={<MoreVerticalIcon />} />}\n >\n {editorFieldOptionPlugins.map(pl =>\n React.cloneElement(pl.render(), { key: pl.name })\n )}\n {/* We only allow this action for top-level fields. */}\n <MenuItem\n disabled={!isFieldAllowedToBeTitle(field, parent)}\n onClick={setAsTitle}\n >\n <ListItemGraphic>\n <Icon icon={<TitleIcon />} />\n </ListItemGraphic>\n {t`Use as title`}\n </MenuItem>\n <MenuItem\n disabled={lockedFields.some(\n lockedField => lockedField.fieldId === field.fieldId\n )}\n onClick={onDelete}\n >\n <ListItemGraphic>\n <Icon icon={<DeleteIcon />} />\n </ListItemGraphic>\n {lockedFields.find(lockedField => lockedField.fieldId === field.fieldId)\n ? t`Cannot delete`\n : t`Delete`}\n </MenuItem>\n </Menu>\n </Actions>\n </FieldContainer>\n <div className={\"field-extra\"}>\n {fieldPlugin.field.render && fieldPlugin.field.render({ field, data, setData })}\n </div>\n </Fragment>\n );\n};\n\nexport default React.memo(Field);\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webiny/app-headless-cms",
3
- "version": "5.25.1-beta.0",
3
+ "version": "5.26.0-beta.1",
4
4
  "main": "index.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,19 +26,19 @@
26
26
  "@fortawesome/react-fontawesome": "0.1.17",
27
27
  "@svgr/webpack": "6.2.1",
28
28
  "@types/react": "16.14.2",
29
- "@webiny/app": "5.25.1-beta.0",
30
- "@webiny/app-admin": "5.25.1-beta.0",
31
- "@webiny/app-graphql-playground": "5.25.1-beta.0",
32
- "@webiny/app-i18n": "5.25.1-beta.0",
33
- "@webiny/app-plugin-admin-welcome-screen": "5.25.1-beta.0",
34
- "@webiny/app-security": "5.25.1-beta.0",
35
- "@webiny/error": "5.25.1-beta.0",
36
- "@webiny/form": "5.25.1-beta.0",
37
- "@webiny/plugins": "5.25.1-beta.0",
38
- "@webiny/react-router": "5.25.1-beta.0",
39
- "@webiny/ui": "5.25.1-beta.0",
40
- "@webiny/utils": "5.25.1-beta.0",
41
- "@webiny/validation": "5.25.1-beta.0",
29
+ "@webiny/app": "5.26.0-beta.1",
30
+ "@webiny/app-admin": "5.26.0-beta.1",
31
+ "@webiny/app-graphql-playground": "5.26.0-beta.1",
32
+ "@webiny/app-i18n": "5.26.0-beta.1",
33
+ "@webiny/app-plugin-admin-welcome-screen": "5.26.0-beta.1",
34
+ "@webiny/app-security": "5.26.0-beta.1",
35
+ "@webiny/error": "5.26.0-beta.1",
36
+ "@webiny/form": "5.26.0-beta.1",
37
+ "@webiny/plugins": "5.26.0-beta.1",
38
+ "@webiny/react-router": "5.26.0-beta.1",
39
+ "@webiny/ui": "5.26.0-beta.1",
40
+ "@webiny/utils": "5.26.0-beta.1",
41
+ "@webiny/validation": "5.26.0-beta.1",
42
42
  "apollo-cache": "1.3.5",
43
43
  "apollo-client": "2.6.10",
44
44
  "apollo-link": "1.2.14",
@@ -73,8 +73,8 @@
73
73
  "@babel/preset-env": "^7.16.4",
74
74
  "@babel/preset-react": "^7.16.0",
75
75
  "@babel/preset-typescript": "^7.16.0",
76
- "@webiny/cli": "^5.25.1-beta.0",
77
- "@webiny/project-utils": "^5.25.1-beta.0",
76
+ "@webiny/cli": "^5.26.0-beta.1",
77
+ "@webiny/project-utils": "^5.26.0-beta.1",
78
78
  "babel-plugin-emotion": "^9.2.8",
79
79
  "babel-plugin-lodash": "^3.3.4",
80
80
  "babel-plugin-module-resolver": "^4.1.0",
@@ -106,5 +106,5 @@
106
106
  ]
107
107
  }
108
108
  },
109
- "gitHead": "887c9678ec12921eb00edb033e9f2c1a13e35fa5"
109
+ "gitHead": "ba9a3a3e4b7864a85ecf10a97523391eca63df3b"
110
110
  }