payload 0.13.3 → 0.13.7-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.
Files changed (27) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/admin/components/elements/ReactSelect/types.d.ts +4 -3
  3. package/dist/admin/components/forms/field-types/RichText/elements/link/index.js +1 -0
  4. package/dist/admin/components/forms/field-types/RichText/elements/link/index.scss +1 -0
  5. package/dist/admin/components/forms/field-types/RichText/elements/link/utilities.d.ts +1 -1
  6. package/dist/admin/components/forms/field-types/RichText/elements/link/utilities.js +6 -2
  7. package/dist/admin/components/forms/field-types/Select/Input.d.ts +21 -0
  8. package/dist/admin/components/forms/field-types/Select/Input.js +32 -0
  9. package/dist/admin/components/forms/field-types/Select/index.d.ts +0 -1
  10. package/dist/admin/components/forms/field-types/Select/index.js +6 -38
  11. package/dist/admin/components/forms/field-types/Select/types.d.ts +0 -4
  12. package/dist/admin/components/forms/field-types/Text/Input.d.ts +19 -0
  13. package/dist/admin/components/forms/field-types/Text/Input.js +24 -0
  14. package/dist/admin/components/forms/field-types/Text/index.d.ts +0 -1
  15. package/dist/admin/components/forms/field-types/Text/index.js +8 -35
  16. package/dist/admin/components/forms/field-types/Textarea/Input.d.ts +20 -0
  17. package/dist/admin/components/forms/field-types/Textarea/Input.js +23 -0
  18. package/dist/admin/components/forms/field-types/Textarea/index.js +4 -17
  19. package/dist/admin/components/forms/field-types/Upload/Input.d.ts +25 -0
  20. package/dist/admin/components/forms/field-types/Upload/Input.js +83 -0
  21. package/dist/admin/components/forms/field-types/Upload/index.js +14 -96
  22. package/dist/admin/components/forms/useField/index.js +4 -3
  23. package/dist/admin/components/views/collections/Edit/index.js +5 -0
  24. package/dist/collections/operations/update.js +2 -2
  25. package/dist/fields/config/types.d.ts +0 -6
  26. package/dist/fields/config/types.js +1 -1
  27. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,44 @@
1
+ ## [0.13.7-beta.0](https://github.com/payloadcms/payload/compare/v0.13.6...v0.13.7-beta.0) (2021-12-14)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * [#370](https://github.com/payloadcms/payload/issues/370), only performs password functions when auth enabled ([9738873](https://github.com/payloadcms/payload/commit/97388738def687f3b26eaf8de6b067f4d3758418))
7
+ * [#390](https://github.com/payloadcms/payload/issues/390), safari rich text link bug ([a16b99b](https://github.com/payloadcms/payload/commit/a16b99b0c87d55f768ed74ab35708a291fc7bbb0))
8
+ * [#393](https://github.com/payloadcms/payload/issues/393), ensures preview button gets up to date data ([2f47e39](https://github.com/payloadcms/payload/commit/2f47e39a9f765bd8ce437d4b7500a5b314a192a5))
9
+
10
+ ## [0.13.6](https://github.com/payloadcms/payload/compare/v0.13.5...v0.13.6) (2021-11-30)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * requires path in select, text, textarea, and upload components ([925a33e](https://github.com/payloadcms/payload/commit/925a33e5602336f6128188aaf73001dbd23bd411))
16
+
17
+ ## [0.13.5](https://github.com/payloadcms/payload/compare/v0.13.4...v0.13.5) (2021-11-30)
18
+
19
+
20
+ ### Bug Fixes
21
+
22
+ * select component rendered value ([ecabf13](https://github.com/payloadcms/payload/commit/ecabf130fd1b4b87c45196d4bdf675e76b20c9e3))
23
+
24
+ ## [0.13.4](https://github.com/payloadcms/payload/compare/v0.13.3...v0.13.4) (2021-11-30)
25
+
26
+
27
+ ### Bug Fixes
28
+
29
+ * passes hasMany through select component ([c77bf3a](https://github.com/payloadcms/payload/commit/c77bf3aa42d76b7a0649b28fee3fe5d4bd06dcf6))
30
+ * prevents uncontrolled text field component ([f0fd859](https://github.com/payloadcms/payload/commit/f0fd859347804fdf0d79bbe566412abaeec6ff6a))
31
+ * select component types ([7e2b259](https://github.com/payloadcms/payload/commit/7e2b2598167dc59b8982f635cb95eacf247abb43))
32
+ * threads props through textarea component ([0b13eda](https://github.com/payloadcms/payload/commit/0b13eda1e55299f7d6dfac2854acc04cff459396))
33
+
34
+
35
+ ### Features
36
+
37
+ * abstracts input from text component ([615e369](https://github.com/payloadcms/payload/commit/615e3695f2e62ce5d8a43ccb84192aca57770af8))
38
+ * abstracts select component ([fa67137](https://github.com/payloadcms/payload/commit/fa671378c7282cda1ed6f46340a53622e3bc96dc))
39
+ * abstracts textarea component and improves event typing ([86480b7](https://github.com/payloadcms/payload/commit/86480b7482b2b9413272ab0f9d0a82cd5e2920b8))
40
+ * abstracts upload component ([f234f68](https://github.com/payloadcms/payload/commit/f234f68019f122bd46cb2af2e8f62cf07cd53c1b))
41
+
1
42
  ## [0.13.3](https://github.com/payloadcms/payload/compare/v0.13.2...v0.13.3) (2021-11-29)
2
43
 
3
44
 
@@ -1,8 +1,9 @@
1
1
  import { OptionsType, GroupedOptionsType } from 'react-select';
2
+ export declare type Options = OptionsType<Value> | GroupedOptionsType<Value>;
2
3
  export declare type Value = {
3
4
  label: string;
4
- value: any;
5
- options?: Value[];
5
+ value: string;
6
+ options?: Options;
6
7
  };
7
8
  export declare type Props = {
8
9
  className?: string;
@@ -10,7 +11,7 @@ export declare type Props = {
10
11
  onChange?: (value: any) => void;
11
12
  disabled?: boolean;
12
13
  showError?: boolean;
13
- options: OptionsType<Value> | GroupedOptionsType<Value>;
14
+ options: Options;
14
15
  isMulti?: boolean;
15
16
  isDisabled?: boolean;
16
17
  onInputChange?: (val: string) => void;
@@ -35,6 +35,7 @@ const Link = ({ attributes, children, element }) => {
35
35
  setURL(value);
36
36
  }, onKeyDown: (e) => {
37
37
  if (e.key === 'Enter') {
38
+ e.preventDefault();
38
39
  close();
39
40
  }
40
41
  } }),
@@ -58,6 +58,7 @@
58
58
 
59
59
  .rich-text-link__url {
60
60
  @include formInput;
61
+ padding-right: base(1.75);
61
62
  min-width: base(12);
62
63
  width: 100%;
63
64
  background: rgba($color-background-gray, .1);
@@ -1,5 +1,5 @@
1
1
  import { Editor } from 'slate';
2
2
  export declare const isLinkActive: (editor: Editor) => boolean;
3
3
  export declare const unwrapLink: (editor: Editor) => void;
4
- export declare const wrapLink: (editor: Editor, url?: string, newTab?: boolean) => void;
4
+ export declare const wrapLink: (editor: any, url?: string, newTab?: boolean) => void;
5
5
  export declare const withLinks: (incomingEditor: Editor) => Editor;
@@ -10,8 +10,12 @@ export const wrapLink = (editor, url, newTab) => {
10
10
  if (isLinkActive(editor)) {
11
11
  unwrapLink(editor);
12
12
  }
13
- const { selection } = editor;
14
- const isCollapsed = selection && Range.isCollapsed(selection);
13
+ const { selection, blurSelection } = editor;
14
+ if (blurSelection) {
15
+ Transforms.select(editor, blurSelection);
16
+ }
17
+ const selectionToUse = selection || blurSelection;
18
+ const isCollapsed = selectionToUse && Range.isCollapsed(selectionToUse);
15
19
  const link = {
16
20
  type: 'link',
17
21
  url,
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { OptionObject, SelectField } from '../../../../../fields/config/types';
3
+ import { Description } from '../../FieldDescription/types';
4
+ import { Value as ReactSelectValue } from '../../../elements/ReactSelect/types';
5
+ import './index.scss';
6
+ export declare type SelectInputProps = Omit<SelectField, 'type' | 'value' | 'options'> & {
7
+ showError?: boolean;
8
+ errorMessage?: string;
9
+ readOnly?: boolean;
10
+ path: string;
11
+ required?: boolean;
12
+ value?: string | string[];
13
+ description?: Description;
14
+ onChange?: (value: ReactSelectValue) => void;
15
+ style?: React.CSSProperties;
16
+ width?: string;
17
+ hasMany?: boolean;
18
+ options?: OptionObject[];
19
+ };
20
+ declare const SelectInput: React.FC<SelectInputProps>;
21
+ export default SelectInput;
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import Label from '../../Label';
3
+ import Error from '../../Error';
4
+ import FieldDescription from '../../FieldDescription';
5
+ import ReactSelect from '../../../elements/ReactSelect';
6
+ // import { FieldType } from '../../useField/types';
7
+ import './index.scss';
8
+ const SelectInput = (props) => {
9
+ const { showError, errorMessage, readOnly, path, label, required, value, onChange, description, style, width, options, hasMany, } = props;
10
+ const classes = [
11
+ 'field-type',
12
+ 'select',
13
+ showError && 'error',
14
+ readOnly && 'read-only',
15
+ ].filter(Boolean).join(' ');
16
+ let valueToRender;
17
+ if (hasMany && Array.isArray(value)) {
18
+ valueToRender = value.map((val) => options.find((option) => option.value === val));
19
+ }
20
+ else {
21
+ valueToRender = options.find((option) => option.value === value);
22
+ }
23
+ return (React.createElement("div", { className: classes, style: {
24
+ ...style,
25
+ width,
26
+ } },
27
+ React.createElement(Error, { showError: showError, message: errorMessage }),
28
+ React.createElement(Label, { htmlFor: path, label: label, required: required }),
29
+ React.createElement(ReactSelect, { onChange: onChange, value: valueToRender, showError: showError, isDisabled: readOnly, options: options, isMulti: hasMany }),
30
+ React.createElement(FieldDescription, { value: value, description: description })));
31
+ };
32
+ export default SelectInput;
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
2
  import { Props } from './types';
3
- import './index.scss';
4
3
  declare const _default: React.FC<Props>;
5
4
  export default _default;
@@ -1,13 +1,8 @@
1
1
  import React, { useCallback, useState } from 'react';
2
2
  import withCondition from '../../withCondition';
3
- import ReactSelect from '../../../elements/ReactSelect';
4
3
  import useField from '../../useField';
5
- import Label from '../../Label';
6
- import Error from '../../Error';
7
- import FieldDescription from '../../FieldDescription';
8
4
  import { select } from '../../../../../fields/validations';
9
- import './index.scss';
10
- const baseClass = 'select';
5
+ import SelectInput from './Input';
11
6
  const formatOptions = (options) => options.map((option) => {
12
7
  if (typeof option === 'object' && option.value) {
13
8
  return option;
@@ -18,14 +13,14 @@ const formatOptions = (options) => options.map((option) => {
18
13
  };
19
14
  });
20
15
  const Select = (props) => {
21
- const { path: pathFromProps, name, required, validate = select, label, options: optionsFromProps, hasMany, admin: { readOnly, style, width, description, condition, } = {}, value: valueFromProps, onChange: onChangeFromProps } = props;
16
+ const { path: pathFromProps, name, required, validate = select, label, options: optionsFromProps, hasMany, admin: { readOnly, style, width, description, condition, } = {}, } = props;
22
17
  const path = pathFromProps || name;
23
18
  const [options] = useState(formatOptions(optionsFromProps));
24
19
  const memoizedValidate = useCallback((value) => {
25
20
  const validationResult = validate(value, { required, options });
26
21
  return validationResult;
27
22
  }, [validate, required, options]);
28
- const { value: valueFromContext, showError, setValue, errorMessage, } = useField({
23
+ const { value, showError, setValue, errorMessage, } = useField({
29
24
  path,
30
25
  validate: memoizedValidate,
31
26
  condition,
@@ -44,40 +39,13 @@ const Select = (props) => {
44
39
  else {
45
40
  newValue = selectedOption.value;
46
41
  }
47
- if (typeof onChangeFromProps === 'function') {
48
- onChangeFromProps(newValue);
49
- }
50
- else {
51
- setValue(newValue);
52
- }
42
+ setValue(newValue);
53
43
  }
54
44
  }, [
55
45
  readOnly,
56
46
  hasMany,
57
- onChangeFromProps,
58
- setValue
47
+ setValue,
59
48
  ]);
60
- const classes = [
61
- 'field-type',
62
- baseClass,
63
- showError && 'error',
64
- readOnly && `${baseClass}--read-only`,
65
- ].filter(Boolean).join(' ');
66
- let valueToRender;
67
- const value = valueFromProps || valueFromContext || '';
68
- if (hasMany && Array.isArray(value)) {
69
- valueToRender = value.map((val) => options.find((option) => option.value === val));
70
- }
71
- else {
72
- valueToRender = options.find((option) => option.value === value);
73
- }
74
- return (React.createElement("div", { className: classes, style: {
75
- ...style,
76
- width,
77
- } },
78
- React.createElement(Error, { showError: showError, message: errorMessage }),
79
- React.createElement(Label, { htmlFor: path, label: label, required: required }),
80
- React.createElement(ReactSelect, { onChange: onChange, value: valueToRender, showError: showError, isDisabled: readOnly, options: options, isMulti: hasMany }),
81
- React.createElement(FieldDescription, { value: value, description: description })));
49
+ return (React.createElement(SelectInput, { path: path, onChange: onChange, value: value, name: name, options: options, label: label, showError: showError, errorMessage: errorMessage, description: description, style: style, width: width, hasMany: hasMany }));
82
50
  };
83
51
  export default withCondition(Select);
@@ -1,8 +1,4 @@
1
1
  import { SelectField } from '../../../../../fields/config/types';
2
- export declare type Option = {
3
- label: string;
4
- value: any;
5
- };
6
2
  export declare type Props = Omit<SelectField, 'type'> & {
7
3
  path?: string;
8
4
  };
@@ -0,0 +1,19 @@
1
+ import React, { ChangeEvent } from 'react';
2
+ import { TextField } from '../../../../../fields/config/types';
3
+ import { Description } from '../../FieldDescription/types';
4
+ import './index.scss';
5
+ export declare type TextInputProps = Omit<TextField, 'type'> & {
6
+ showError?: boolean;
7
+ errorMessage?: string;
8
+ readOnly?: boolean;
9
+ path: string;
10
+ required?: boolean;
11
+ value?: string;
12
+ description?: Description;
13
+ onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
14
+ placeholder?: string;
15
+ style?: React.CSSProperties;
16
+ width?: string;
17
+ };
18
+ declare const TextInput: React.FC<TextInputProps>;
19
+ export default TextInput;
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import Label from '../../Label';
3
+ import Error from '../../Error';
4
+ import FieldDescription from '../../FieldDescription';
5
+ // import { FieldType } from '../../useField/types';
6
+ import './index.scss';
7
+ const TextInput = (props) => {
8
+ const { showError, errorMessage, placeholder, readOnly, path, label, required, value, onChange, description, style, width, } = props;
9
+ const classes = [
10
+ 'field-type',
11
+ 'text',
12
+ showError && 'error',
13
+ readOnly && 'read-only',
14
+ ].filter(Boolean).join(' ');
15
+ return (React.createElement("div", { className: classes, style: {
16
+ ...style,
17
+ width,
18
+ } },
19
+ React.createElement(Error, { showError: showError, message: errorMessage }),
20
+ React.createElement(Label, { htmlFor: path, label: label, required: required }),
21
+ React.createElement("input", { value: value || '', onChange: onChange, disabled: readOnly, placeholder: placeholder, type: "text", id: path, name: path }),
22
+ React.createElement(FieldDescription, { value: value, description: description })));
23
+ };
24
+ export default TextInput;
@@ -1,5 +1,4 @@
1
1
  import React from 'react';
2
2
  import { Props } from './types';
3
- import './index.scss';
4
3
  declare const _default: React.FC<Props>;
5
4
  export default _default;
@@ -1,47 +1,20 @@
1
- import React, { useCallback } from 'react';
1
+ import React from 'react';
2
2
  import useField from '../../useField';
3
3
  import withCondition from '../../withCondition';
4
- import Label from '../../Label';
5
- import Error from '../../Error';
6
4
  import { text } from '../../../../../fields/validations';
7
- import FieldDescription from '../../FieldDescription';
8
- import './index.scss';
5
+ import TextInput from './Input';
9
6
  const Text = (props) => {
10
- const { path: pathFromProps, name, required, validate = text, label, admin: { placeholder, readOnly, style, width, description, condition, } = {}, value: valueFromProps, onChange: onChangeFromProps, } = props;
7
+ const { path: pathFromProps, name, required, validate = text, label, admin: { placeholder, readOnly, style, width, description, condition, } = {}, } = props;
11
8
  const path = pathFromProps || name;
12
- const fieldType = useField({
9
+ const field = useField({
13
10
  path,
14
11
  validate,
15
12
  enableDebouncedValue: true,
16
13
  condition,
17
14
  });
18
- const { value: valueFromContext, showError, setValue, errorMessage, } = fieldType;
19
- const onChange = useCallback((e) => {
20
- const { value: incomingValue } = e.target;
21
- if (typeof onChangeFromProps === 'function') {
22
- onChangeFromProps(incomingValue);
23
- }
24
- else {
25
- setValue(e);
26
- }
27
- }, [
28
- onChangeFromProps,
29
- setValue,
30
- ]);
31
- const classes = [
32
- 'field-type',
33
- 'text',
34
- showError && 'error',
35
- readOnly && 'read-only',
36
- ].filter(Boolean).join(' ');
37
- const value = valueFromProps || valueFromContext || '';
38
- return (React.createElement("div", { className: classes, style: {
39
- ...style,
40
- width,
41
- } },
42
- React.createElement(Error, { showError: showError, message: errorMessage }),
43
- React.createElement(Label, { htmlFor: path, label: label, required: required }),
44
- React.createElement("input", { value: value, onChange: onChange, disabled: readOnly, placeholder: placeholder, type: "text", id: path, name: path }),
45
- React.createElement(FieldDescription, { value: value, description: description })));
15
+ const { value, showError, setValue, errorMessage, } = field;
16
+ return (React.createElement(TextInput, { path: path, name: name, onChange: (e) => {
17
+ setValue(e.target.value);
18
+ }, showError: showError, errorMessage: errorMessage, required: required, label: label, value: value, placeholder: placeholder, readOnly: readOnly, style: style, width: width, description: description }));
46
19
  };
47
20
  export default withCondition(Text);
@@ -0,0 +1,20 @@
1
+ import React, { ChangeEvent } from 'react';
2
+ import { TextareaField } from '../../../../../fields/config/types';
3
+ import { Description } from '../../FieldDescription/types';
4
+ import './index.scss';
5
+ export declare type TextAreaInputProps = Omit<TextareaField, 'type'> & {
6
+ showError?: boolean;
7
+ errorMessage?: string;
8
+ readOnly?: boolean;
9
+ path: string;
10
+ required?: boolean;
11
+ value?: string;
12
+ description?: Description;
13
+ onChange?: (e: ChangeEvent<HTMLTextAreaElement>) => void;
14
+ placeholder?: string;
15
+ style?: React.CSSProperties;
16
+ width?: string;
17
+ rows?: number;
18
+ };
19
+ declare const TextareaInput: React.FC<TextAreaInputProps>;
20
+ export default TextareaInput;
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import Label from '../../Label';
3
+ import Error from '../../Error';
4
+ import FieldDescription from '../../FieldDescription';
5
+ import './index.scss';
6
+ const TextareaInput = (props) => {
7
+ const { path, required, readOnly, style, width, placeholder, description, label, showError, value, errorMessage, onChange, rows, } = props;
8
+ const classes = [
9
+ 'field-type',
10
+ 'textarea',
11
+ showError && 'error',
12
+ readOnly && 'read-only',
13
+ ].filter(Boolean).join(' ');
14
+ return (React.createElement("div", { className: classes, style: {
15
+ ...style,
16
+ width,
17
+ } },
18
+ React.createElement(Error, { showError: showError, message: errorMessage }),
19
+ React.createElement(Label, { htmlFor: path, label: label, required: required }),
20
+ React.createElement("textarea", { value: value || '', onChange: onChange, disabled: readOnly, placeholder: placeholder, id: path, name: path, rows: rows }),
21
+ React.createElement(FieldDescription, { value: value, description: description })));
22
+ };
23
+ export default TextareaInput;
@@ -1,11 +1,9 @@
1
1
  import React, { useCallback } from 'react';
2
2
  import useField from '../../useField';
3
3
  import withCondition from '../../withCondition';
4
- import Label from '../../Label';
5
- import Error from '../../Error';
6
- import FieldDescription from '../../FieldDescription';
7
4
  import { textarea } from '../../../../../fields/validations';
8
5
  import './index.scss';
6
+ import TextareaInput from './Input';
9
7
  const Textarea = (props) => {
10
8
  const { path: pathFromProps, name, required, validate = textarea, admin: { readOnly, style, width, placeholder, rows, description, condition, } = {}, label, minLength, maxLength, } = props;
11
9
  const path = pathFromProps || name;
@@ -19,19 +17,8 @@ const Textarea = (props) => {
19
17
  enableDebouncedValue: true,
20
18
  condition,
21
19
  });
22
- const classes = [
23
- 'field-type',
24
- 'textarea',
25
- showError && 'error',
26
- readOnly && 'read-only',
27
- ].filter(Boolean).join(' ');
28
- return (React.createElement("div", { className: classes, style: {
29
- ...style,
30
- width,
31
- } },
32
- React.createElement(Error, { showError: showError, message: errorMessage }),
33
- React.createElement(Label, { htmlFor: path, label: label, required: required }),
34
- React.createElement("textarea", { value: value || '', onChange: setValue, disabled: readOnly, placeholder: placeholder, id: path, name: path, rows: rows }),
35
- React.createElement(FieldDescription, { value: value, description: description })));
20
+ return (React.createElement(TextareaInput, { path: path, name: name, onChange: (e) => {
21
+ setValue(e.target.value);
22
+ }, showError: showError, errorMessage: errorMessage, required: required, label: label, value: value, placeholder: placeholder, readOnly: readOnly, style: style, width: width, description: description, rows: rows }));
36
23
  };
37
24
  export default withCondition(Textarea);
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { UploadField } from '../../../../../fields/config/types';
3
+ import { Description } from '../../FieldDescription/types';
4
+ import { FieldTypes } from '..';
5
+ import { SanitizedCollectionConfig } from '../../../../../collections/config/types';
6
+ import './index.scss';
7
+ export declare type UploadInputProps = Omit<UploadField, 'type'> & {
8
+ showError?: boolean;
9
+ errorMessage?: string;
10
+ readOnly?: boolean;
11
+ path: string;
12
+ required?: boolean;
13
+ value?: string;
14
+ description?: Description;
15
+ onChange?: (e: any) => void;
16
+ placeholder?: string;
17
+ style?: React.CSSProperties;
18
+ width?: string;
19
+ fieldTypes?: FieldTypes;
20
+ collection?: SanitizedCollectionConfig;
21
+ serverURL?: string;
22
+ api?: string;
23
+ };
24
+ declare const UploadInput: React.FC<UploadInputProps>;
25
+ export default UploadInput;
@@ -0,0 +1,83 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { useModal } from '@faceless-ui/modal';
3
+ import Button from '../../../elements/Button';
4
+ import Label from '../../Label';
5
+ import Error from '../../Error';
6
+ import FileDetails from '../../../elements/FileDetails';
7
+ import FieldDescription from '../../FieldDescription';
8
+ import AddModal from './Add';
9
+ import SelectExistingModal from './SelectExisting';
10
+ import './index.scss';
11
+ const baseClass = 'upload';
12
+ const UploadInput = (props) => {
13
+ const { path, required, readOnly, style, width, description, label, relationTo, fieldTypes, value, onChange, showError, serverURL = 'http://localhost:3000', api = '/api', collection, errorMessage, } = props;
14
+ const { toggle } = useModal();
15
+ const addModalSlug = `${path}-add`;
16
+ const selectExistingModalSlug = `${path}-select-existing`;
17
+ const [file, setFile] = useState(undefined);
18
+ const [missingFile, setMissingFile] = useState(false);
19
+ const classes = [
20
+ 'field-type',
21
+ baseClass,
22
+ showError && 'error',
23
+ readOnly && 'read-only',
24
+ ].filter(Boolean).join(' ');
25
+ useEffect(() => {
26
+ if (typeof value === 'string' && value !== '') {
27
+ const fetchFile = async () => {
28
+ const response = await fetch(`${serverURL}${api}/${relationTo}/${value}`);
29
+ if (response.ok) {
30
+ const json = await response.json();
31
+ setFile(json);
32
+ }
33
+ else {
34
+ setMissingFile(true);
35
+ setFile(undefined);
36
+ }
37
+ };
38
+ fetchFile();
39
+ }
40
+ else {
41
+ setFile(undefined);
42
+ }
43
+ }, [
44
+ value,
45
+ relationTo,
46
+ api,
47
+ serverURL,
48
+ ]);
49
+ return (React.createElement("div", { className: classes, style: {
50
+ ...style,
51
+ width,
52
+ } },
53
+ React.createElement(Error, { showError: showError, message: errorMessage }),
54
+ React.createElement(Label, { htmlFor: path, label: label, required: required }),
55
+ (collection === null || collection === void 0 ? void 0 : collection.upload) && (React.createElement(React.Fragment, null,
56
+ (file && !missingFile) && (React.createElement(FileDetails, { collection: collection, doc: file, handleRemove: () => {
57
+ onChange(null);
58
+ } })),
59
+ (!file || missingFile) && (React.createElement("div", { className: `${baseClass}__wrap` },
60
+ React.createElement(Button, { buttonStyle: "secondary", onClick: () => {
61
+ toggle(addModalSlug);
62
+ } },
63
+ "Upload new",
64
+ ' ',
65
+ collection.labels.singular),
66
+ React.createElement(Button, { buttonStyle: "secondary", onClick: () => {
67
+ toggle(selectExistingModalSlug);
68
+ } }, "Choose from existing"))),
69
+ React.createElement(AddModal, { ...{
70
+ collection,
71
+ slug: addModalSlug,
72
+ fieldTypes,
73
+ setValue: onChange,
74
+ } }),
75
+ React.createElement(SelectExistingModal, { ...{
76
+ collection,
77
+ slug: selectExistingModalSlug,
78
+ setValue: onChange,
79
+ addModalSlug,
80
+ } }),
81
+ React.createElement(FieldDescription, { value: file, description: description })))));
82
+ };
83
+ export default UploadInput;
@@ -1,115 +1,33 @@
1
- import React, { useState, useEffect, useCallback } from 'react';
2
- import { useModal } from '@faceless-ui/modal';
1
+ import React, { useCallback } from 'react';
3
2
  import { useConfig } from '@payloadcms/config-provider';
4
3
  import useField from '../../useField';
5
4
  import withCondition from '../../withCondition';
6
- import Button from '../../../elements/Button';
7
- import Label from '../../Label';
8
- import Error from '../../Error';
9
5
  import { upload } from '../../../../../fields/validations';
10
- import FileDetails from '../../../elements/FileDetails';
11
- import AddModal from './Add';
12
- import SelectExistingModal from './SelectExisting';
6
+ import UploadInput from './Input';
13
7
  import './index.scss';
14
- import FieldDescription from '../../FieldDescription';
15
- const baseClass = 'upload';
16
8
  const Upload = (props) => {
17
- const { toggle } = useModal();
18
- const [internalValue, setInternalValue] = useState(undefined);
19
- const [missingFile, setMissingFile] = useState(false);
20
- const { collections, serverURL, routes: { api } } = useConfig();
21
- const { path: pathFromProps, name, required, admin: { readOnly, style, width, description, condition, } = {}, label, validate = upload, relationTo, fieldTypes, value: valueFromProps, onChange: onChangeFromProps, } = props;
9
+ const { collections, serverURL, routes: { api, }, } = useConfig();
10
+ const { path, name, required, admin: { readOnly, style, width, description, condition, } = {}, label, validate = upload, relationTo, fieldTypes, } = props;
22
11
  const collection = collections.find((coll) => coll.slug === relationTo);
23
- const path = pathFromProps || name;
24
- const addModalSlug = `${path}-add`;
25
- const selectExistingModalSlug = `${path}-select-existing`;
26
12
  const memoizedValidate = useCallback((value) => {
27
13
  const validationResult = validate(value, { required });
28
14
  return validationResult;
29
15
  }, [validate, required]);
30
- const fieldType = useField({
16
+ const field = useField({
31
17
  path,
32
18
  validate: memoizedValidate,
33
19
  condition,
34
20
  });
35
- const { value: valueFromContext, showError, setValue, errorMessage, } = fieldType;
36
- const value = valueFromProps || valueFromContext || '';
37
- const classes = [
38
- 'field-type',
39
- baseClass,
40
- showError && 'error',
41
- readOnly && 'read-only',
42
- ].filter(Boolean).join(' ');
43
- useEffect(() => {
44
- if (typeof value === 'string') {
45
- const fetchFile = async () => {
46
- const response = await fetch(`${serverURL}${api}/${relationTo}/${value}`);
47
- if (response.ok) {
48
- const json = await response.json();
49
- setInternalValue(json);
50
- }
51
- else {
52
- setInternalValue(undefined);
53
- setMissingFile(true);
54
- }
55
- };
56
- fetchFile();
57
- }
21
+ const { value, showError, setValue, errorMessage, } = field;
22
+ const onChange = useCallback((incomingValue) => {
23
+ const incomingID = (incomingValue === null || incomingValue === void 0 ? void 0 : incomingValue.id) || incomingValue;
24
+ setValue(incomingID);
58
25
  }, [
59
- value,
60
- relationTo,
61
- api,
62
- serverURL,
63
- setValue
26
+ setValue,
64
27
  ]);
65
- useEffect(() => {
66
- const { id: incomingID } = internalValue || {};
67
- if (typeof onChangeFromProps === 'function') {
68
- onChangeFromProps(incomingID);
69
- }
70
- else {
71
- setValue(incomingID);
72
- }
73
- }, [internalValue]);
74
- return (React.createElement("div", { className: classes, style: {
75
- ...style,
76
- width,
77
- } },
78
- React.createElement(Error, { showError: showError, message: errorMessage }),
79
- React.createElement(Label, { htmlFor: path, label: label, required: required }),
80
- (collection === null || collection === void 0 ? void 0 : collection.upload) && (React.createElement(React.Fragment, null,
81
- (internalValue && !missingFile) && (React.createElement(FileDetails, { collection: collection, doc: internalValue, handleRemove: () => {
82
- setInternalValue(undefined);
83
- setValue(null);
84
- } })),
85
- (!value || missingFile) && (React.createElement("div", { className: `${baseClass}__wrap` },
86
- React.createElement(Button, { buttonStyle: "secondary", onClick: () => {
87
- toggle(addModalSlug);
88
- } },
89
- "Upload new",
90
- ' ',
91
- collection.labels.singular),
92
- React.createElement(Button, { buttonStyle: "secondary", onClick: () => {
93
- toggle(selectExistingModalSlug);
94
- } }, "Choose from existing"))),
95
- React.createElement(AddModal, { ...{
96
- collection,
97
- slug: addModalSlug,
98
- fieldTypes,
99
- setValue: (val) => {
100
- setMissingFile(false);
101
- setInternalValue(val);
102
- },
103
- } }),
104
- React.createElement(SelectExistingModal, { ...{
105
- collection,
106
- slug: selectExistingModalSlug,
107
- setValue: (val) => {
108
- setMissingFile(false);
109
- setInternalValue(val);
110
- },
111
- addModalSlug,
112
- } }),
113
- React.createElement(FieldDescription, { value: value, description: description })))));
28
+ if (collection.upload) {
29
+ return (React.createElement(UploadInput, { path: path, value: value, onChange: onChange, description: description, label: label, required: required, showError: showError, serverURL: serverURL, api: api, errorMessage: errorMessage, readOnly: readOnly, style: style, width: width, collection: collection, fieldTypes: fieldTypes, name: name, relationTo: relationTo }));
30
+ }
31
+ return null;
114
32
  };
115
33
  export default withCondition(Upload);
@@ -51,7 +51,7 @@ const useField = (options) => {
51
51
  ignoreWhileFlattening,
52
52
  initialValue,
53
53
  stringify,
54
- condition
54
+ condition,
55
55
  ]);
56
56
  // Method to return from `useField`, used to
57
57
  // update internal field values from field component(s)
@@ -67,7 +67,7 @@ const useField = (options) => {
67
67
  }, [
68
68
  setModified,
69
69
  modified,
70
- ignoreWhileFlattening
70
+ ignoreWhileFlattening,
71
71
  ]);
72
72
  useEffect(() => {
73
73
  setInternalValue(initialValue);
@@ -81,9 +81,10 @@ const useField = (options) => {
81
81
  sendField(valueToSend);
82
82
  }
83
83
  }, [
84
+ path,
84
85
  valueToSend,
85
86
  sendField,
86
- field
87
+ field,
87
88
  ]);
88
89
  return {
89
90
  ...options,
@@ -31,6 +31,11 @@ const EditView = (props) => {
31
31
  else {
32
32
  const state = await buildStateFromSchema(fields, json.doc);
33
33
  setInitialState(state);
34
+ history.push({
35
+ state: {
36
+ data: json.doc,
37
+ },
38
+ });
34
39
  }
35
40
  };
36
41
  const [{ data, isLoading, isError }] = usePayloadAPI((isEditing ? `${serverURL}${api}/${slug}/${id}` : null), { initialParams: { 'fallback-locale': 'null', depth: 0 } });
@@ -183,7 +183,7 @@ async function update(incomingArgs) {
183
183
  // Handle potential password update
184
184
  // /////////////////////////////////////
185
185
  const { password } = data;
186
- if (password) {
186
+ if (password && collectionConfig.auth) {
187
187
  await doc.setPassword(password);
188
188
  await doc.save();
189
189
  delete data.password;
@@ -261,4 +261,4 @@ async function update(incomingArgs) {
261
261
  return result;
262
262
  }
263
263
  exports.default = update;
264
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOERBQXFDO0FBQ3JDLGdEQUF3QjtBQUt4QixvR0FBNEU7QUFDNUUsNkVBQXFEO0FBQ3JELHlDQUErRjtBQUMvRixvRUFBNEM7QUFDNUMsOEVBQXNEO0FBQ3RELG9GQUE0RDtBQUU1RCw4RUFBdUQ7QUFJdkQsNENBQXNFO0FBQ3RFLHNGQUE4RDtBQWM5RCxLQUFLLFVBQVUsTUFBTSxDQUFDLFlBQXVCO0lBQzNDLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFaEQsSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBRXhCLHdDQUF3QztJQUN4QywrQkFBK0I7SUFDL0Isd0NBQXdDO0lBRXhDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNsRixNQUFNLFNBQVMsQ0FBQztRQUVoQixJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUNqQixJQUFJO1lBQ0osU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ2QsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sRUFDSixLQUFLLEVBQ0wsVUFBVSxFQUFFLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFBRSxnQkFBZ0IsR0FDekIsRUFDRCxFQUFFLEVBQ0YsR0FBRyxFQUNILEdBQUcsRUFBRSxFQUNILE1BQU0sR0FDUCxFQUNELGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQUcsS0FBSyxHQUMvQixHQUFHLElBQUksQ0FBQztJQUVULElB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
264
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbGxlY3Rpb25zL29wZXJhdGlvbnMvdXBkYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsOERBQXFDO0FBQ3JDLGdEQUF3QjtBQUt4QixvR0FBNEU7QUFDNUUsNkVBQXFEO0FBQ3JELHlDQUErRjtBQUMvRixvRUFBNEM7QUFDNUMsOEVBQXNEO0FBQ3RELG9GQUE0RDtBQUU1RCw4RUFBdUQ7QUFJdkQsNENBQXNFO0FBQ3RFLHNGQUE4RDtBQWM5RCxLQUFLLFVBQVUsTUFBTSxDQUFDLFlBQXVCO0lBQzNDLE1BQU0sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUM7SUFFaEQsSUFBSSxJQUFJLEdBQUcsWUFBWSxDQUFDO0lBRXhCLHdDQUF3QztJQUN4QywrQkFBK0I7SUFDL0Isd0NBQXdDO0lBRXhDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNsRixNQUFNLFNBQVMsQ0FBQztRQUVoQixJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQztZQUNqQixJQUFJO1lBQ0osU0FBUyxFQUFFLFFBQVE7U0FDcEIsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDO0lBQ2QsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXRCLE1BQU0sRUFDSixLQUFLLEVBQ0wsVUFBVSxFQUFFLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFBRSxnQkFBZ0IsR0FDekIsRUFDRCxFQUFFLEVBQ0YsR0FBRyxFQUNILEdBQUcsRUFBRSxFQUNILE1BQU0sR0FDUCxFQUNELGNBQWMsRUFDZCxnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQUcsS0FBSyxHQUMvQixHQUFHLElBQUksQ0FBQztJQUVULElB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
@@ -86,8 +86,6 @@ export declare type TextField = FieldBase & {
86
86
  placeholder?: string;
87
87
  autoComplete?: string;
88
88
  };
89
- value?: string;
90
- onChange?: (value: string) => void;
91
89
  };
92
90
  export declare type EmailField = FieldBase & {
93
91
  type: 'email';
@@ -150,8 +148,6 @@ export declare type UploadField = FieldBase & {
150
148
  type: 'upload';
151
149
  relationTo: string;
152
150
  maxDepth?: number;
153
- value?: string;
154
- onChange?: (value: string) => void;
155
151
  };
156
152
  declare type CodeAdmin = Admin & {
157
153
  language?: string;
@@ -166,8 +162,6 @@ export declare type SelectField = FieldBase & {
166
162
  type: 'select';
167
163
  options: Option[];
168
164
  hasMany?: boolean;
169
- value?: string;
170
- onChange?: (value: string) => void;
171
165
  };
172
166
  export declare type RelationshipField = FieldBase & {
173
167
  type: 'relationship';
@@ -41,4 +41,4 @@ function fieldAffectsData(field) {
41
41
  return 'name' in field && !fieldIsPresentationalOnly(field);
42
42
  }
43
43
  exports.fieldAffectsData = fieldAffectsData;
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGRzL2NvbmZpZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEwVkEsU0FBZ0IsaUJBQWlCLENBQUMsS0FBWTtJQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDaEMsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBWTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ2pDLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3BDLENBQUM7QUFGRCx3Q0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLE9BQWlCO0lBQ2pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLENBQUMsQ0FBQyxDQUFBLEtBQUssUUFBUSxDQUFDO0FBQ3BFLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxNQUFjO0lBQzFDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3BDLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEtBQVk7SUFDNUMsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQztBQUNsRSxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7QUFDMUcsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsS0FBWTtJQUNwRCxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQzdCLENBQUM7QUFGRCw4REFFQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQVk7SUFDM0MsT0FBTyxNQUFNLElBQUksS0FBSyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELDRDQUVDIn0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZmllbGRzL2NvbmZpZy90eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFvVkEsU0FBZ0IsaUJBQWlCLENBQUMsS0FBWTtJQUM1QyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQztBQUNwRixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxPQUFPLENBQUM7QUFDaEMsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsS0FBWTtJQUMzQyxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDO0FBQ2pDLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLGNBQWMsQ0FBQyxNQUFjO0lBQzNDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3BDLENBQUM7QUFGRCx3Q0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLE9BQWlCO0lBQ2pELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFHLENBQUMsQ0FBQyxDQUFBLEtBQUssUUFBUSxDQUFDO0FBQ3BFLENBQUM7QUFGRCw4Q0FFQztBQUVELFNBQWdCLGFBQWEsQ0FBQyxNQUFjO0lBQzFDLE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDO0FBQ3BDLENBQUM7QUFGRCxzQ0FFQztBQUVELFNBQWdCLGlCQUFpQixDQUFDLEtBQVk7SUFDNUMsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQztBQUNsRSxDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxLQUFZO0lBQzNDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxJQUFJLE9BQU8sS0FBSyxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7QUFDMUcsQ0FBQztBQUZELDRDQUVDO0FBRUQsU0FBZ0IseUJBQXlCLENBQUMsS0FBWTtJQUNwRCxPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQzdCLENBQUM7QUFGRCw4REFFQztBQUVELFNBQWdCLGdCQUFnQixDQUFDLEtBQVk7SUFDM0MsT0FBTyxNQUFNLElBQUksS0FBSyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUZELDRDQUVDIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "0.13.3",
3
+ "version": "0.13.7-beta.0",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "SEE LICENSE IN license.md",
6
6
  "author": {