payload 1.1.22 → 1.1.23

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.
@@ -1,4 +1,4 @@
1
- import { useCallback, useMemo } from 'react';
1
+ import { useCallback, useEffect, useMemo, useState } from 'react';
2
2
  import { useAuth } from '../../utilities/Auth';
3
3
  import { useFormProcessing, useFormSubmitted, useFormModified, useForm, useFormFields } from '../Form/context';
4
4
  import { useDocumentInfo } from '../../utilities/DocumentInfo';
@@ -15,10 +15,14 @@ const useField = (options) => {
15
15
  const field = useFormFields(([fields]) => fields[path]);
16
16
  const dispatchField = useFormFields(([_, dispatch]) => dispatch);
17
17
  const { getData, getSiblingData, setModified } = useForm();
18
- const value = field === null || field === void 0 ? void 0 : field.value;
19
18
  const initialValue = field === null || field === void 0 ? void 0 : field.initialValue;
20
19
  const valid = typeof (field === null || field === void 0 ? void 0 : field.valid) === 'boolean' ? field.valid : true;
21
20
  const showError = valid === false && submitted;
21
+ // We store internal value to ensure that components react immediately
22
+ // to any value changes, therefore preventing "cursor jump" that can be seen
23
+ // if a user types quickly in an input
24
+ const [internalValue, setInternalValue] = useState(() => field === null || field === void 0 ? void 0 : field.value);
25
+ const [internalInitialValue, setInternalInitialValue] = useState(() => field === null || field === void 0 ? void 0 : field.initialValue);
22
26
  // Method to return from `useField`, used to
23
27
  // update field values from field component(s)
24
28
  const setValue = useCallback((e, disableModifyingForm = false) => {
@@ -28,6 +32,7 @@ const useField = (options) => {
28
32
  setModified(true);
29
33
  }
30
34
  }
35
+ setInternalValue(val);
31
36
  dispatchField({
32
37
  type: 'UPDATE',
33
38
  path,
@@ -46,12 +51,12 @@ const useField = (options) => {
46
51
  const result = useMemo(() => ({
47
52
  showError,
48
53
  errorMessage: field === null || field === void 0 ? void 0 : field.errorMessage,
49
- value,
54
+ value: internalValue,
50
55
  formSubmitted: submitted,
51
56
  formProcessing: processing,
52
57
  setValue,
53
58
  initialValue,
54
- }), [field, processing, setValue, showError, submitted, value, initialValue]);
59
+ }), [field, processing, setValue, showError, submitted, internalValue, initialValue]);
55
60
  // Throttle the validate function
56
61
  useThrottledEffect(() => {
57
62
  const validateField = async () => {
@@ -61,7 +66,7 @@ const useField = (options) => {
61
66
  disableFormData,
62
67
  validate,
63
68
  condition,
64
- value,
69
+ value: internalValue,
65
70
  valid: false,
66
71
  errorMessage: undefined,
67
72
  };
@@ -72,7 +77,7 @@ const useField = (options) => {
72
77
  siblingData: getSiblingData(path),
73
78
  operation,
74
79
  };
75
- const validationResult = typeof validate === 'function' ? await validate(value, validateOptions) : true;
80
+ const validationResult = typeof validate === 'function' ? await validate(internalValue, validateOptions) : true;
76
81
  if (typeof validationResult === 'string') {
77
82
  action.errorMessage = validationResult;
78
83
  action.valid = false;
@@ -87,7 +92,7 @@ const useField = (options) => {
87
92
  };
88
93
  validateField();
89
94
  }, 150, [
90
- value,
95
+ internalValue,
91
96
  condition,
92
97
  disableFormData,
93
98
  dispatchField,
@@ -99,6 +104,12 @@ const useField = (options) => {
99
104
  user,
100
105
  validate,
101
106
  ]);
107
+ useEffect(() => {
108
+ if (initialValue !== internalInitialValue) {
109
+ setInternalValue(initialValue);
110
+ setInternalInitialValue(initialValue);
111
+ }
112
+ }, [initialValue, internalInitialValue]);
102
113
  return result;
103
114
  };
104
115
  export default useField;
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const url_1 = __importDefault(require("url"));
7
7
  const passport_jwt_1 = __importDefault(require("passport-jwt"));
8
- const findByID_1 = __importDefault(require("../../collections/operations/findByID"));
9
8
  const getExtractJWT_1 = __importDefault(require("../getExtractJWT"));
10
9
  const JwtStrategy = passport_jwt_1.default.Strategy;
11
10
  exports.default = ({ secret, config, collections }) => {
@@ -22,11 +21,10 @@ exports.default = ({ secret, config, collections }) => {
22
21
  const collection = collections[token.collection];
23
22
  const parsedURL = url_1.default.parse(req.url);
24
23
  const isGraphQL = parsedURL.pathname === config.routes.graphQL;
25
- const user = await (0, findByID_1.default)({
24
+ const user = await req.payload.findByID({
26
25
  id: token.id,
27
- collection,
26
+ collection: token.collection,
28
27
  req,
29
- overrideAccess: true,
30
28
  depth: isGraphQL ? 0 : collection.config.auth.depth,
31
29
  });
32
30
  if (user && (!collection.config.auth.verify || user._verified)) {
@@ -43,4 +41,4 @@ exports.default = ({ secret, config, collections }) => {
43
41
  }
44
42
  });
45
43
  };
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvc3RyYXRlZ2llcy9qd3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsZ0VBQTREO0FBRzVELHFGQUE2RDtBQUM3RCxxRUFBNkM7QUFFN0MsTUFBTSxXQUFXLEdBQUcsc0JBQVcsQ0FBQyxRQUFRLENBQUM7QUFFekMsa0JBQWUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFXLEVBQW9CLEVBQUU7SUFDNUUsTUFBTSxJQUFJLEdBQW9CO1FBQzVCLGlCQUFpQixFQUFFLElBQUk7UUFDdkIsY0FBYyxFQUFFLElBQUEsdUJBQWEsRUFBQyxNQUFNLENBQUM7UUFDckMsV0FBVyxFQUFFLE1BQU07S0FDcEIsQ0FBQztJQUVGLE9BQU8sSUFBSSxXQUFXLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ3RELElBQUksR0FBRyxDQUFDLElBQUksRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3RCO1FBRUQsSUFBSTtZQUNGLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFakQsTUFBTSxTQUFTLEdBQUcsYUFBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsS0FBSyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvRCxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsa0JBQVEsRUFBQztnQkFDMUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO2dCQUNaLFVBQVU7Z0JBQ1YsR0FBRztnQkFDSCxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQ3BELENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ25CO1NBQ0Y7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyJ9
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiand0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2F1dGgvc3RyYXRlZ2llcy9qd3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw4Q0FBc0I7QUFDdEIsZ0VBQTREO0FBRzVELHFFQUE2QztBQUU3QyxNQUFNLFdBQVcsR0FBRyxzQkFBVyxDQUFDLFFBQVEsQ0FBQztBQUV6QyxrQkFBZSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQVcsRUFBb0IsRUFBRTtJQUM1RSxNQUFNLElBQUksR0FBb0I7UUFDNUIsaUJBQWlCLEVBQUUsSUFBSTtRQUN2QixjQUFjLEVBQUUsSUFBQSx1QkFBYSxFQUFDLE1BQU0sQ0FBQztRQUNyQyxXQUFXLEVBQUUsTUFBTTtLQUNwQixDQUFDO0lBRUYsT0FBTyxJQUFJLFdBQVcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdEQsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFO1lBQ1osSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEI7UUFFRCxJQUFJO1lBQ0YsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUVqRCxNQUFNLFNBQVMsR0FBRyxhQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNyQyxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBRS9ELE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ3RDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtnQkFDWixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7Z0JBQzVCLEdBQUc7Z0JBQ0gsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLO2FBQ3BELENBQUMsQ0FBQztZQUVILElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLFdBQVcsQ0FBQztnQkFDN0IsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNsQjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ25CO1NBQ0Y7UUFBQyxPQUFPLEdBQUcsRUFBRTtZQUNaLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDbkI7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "1.1.22",
3
+ "version": "1.1.23",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "engines": {