@inertiajs/react 2.3.8 → 2.3.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -245,6 +245,7 @@ var Deferred_default = Deferred;
245
245
 
246
246
  // src/Form.ts
247
247
  import {
248
+ FormComponentResetSymbol,
248
249
  formDataToObject,
249
250
  isUrlMethodPair,
250
251
  mergeDataIntoQueryString,
@@ -253,8 +254,10 @@ import {
253
254
  } from "@inertiajs/core";
254
255
  import { isEqual as isEqual2 } from "lodash-es";
255
256
  import React2, {
257
+ createContext as createContext3,
256
258
  createElement as createElement3,
257
259
  forwardRef,
260
+ useContext,
258
261
  useEffect as useEffect6,
259
262
  useImperativeHandle,
260
263
  useMemo as useMemo4,
@@ -394,8 +397,7 @@ function useForm(...args) {
394
397
  if (isMounted.current) {
395
398
  setProcessing(false);
396
399
  setProgress(null);
397
- setErrors(errors2);
398
- setHasErrors(true);
400
+ setError(errors2);
399
401
  }
400
402
  if (options.onError) {
401
403
  return options.onError(errors2);
@@ -669,6 +671,7 @@ var deferStateUpdate = (callback) => {
669
671
  typeof React2.startTransition === "function" ? React2.startTransition(callback) : setTimeout(callback, 0);
670
672
  };
671
673
  var noop = () => void 0;
674
+ var FormContext = createContext3(void 0);
672
675
  var Form = forwardRef(
673
676
  ({
674
677
  action = "",
@@ -730,9 +733,14 @@ var Form = forwardRef(
730
733
  queryStringArrayFormat
731
734
  );
732
735
  };
733
- const updateDirtyState = (event) => deferStateUpdate(
734
- () => setIsDirty(event.type === "reset" ? false : !isEqual2(getData(), formDataToObject(defaultData.current)))
735
- );
736
+ const updateDirtyState = (event) => {
737
+ if (event.type === "reset" && event.detail?.[FormComponentResetSymbol]) {
738
+ event.preventDefault();
739
+ }
740
+ deferStateUpdate(
741
+ () => setIsDirty(event.type === "reset" ? false : !isEqual2(getData(), formDataToObject(defaultData.current)))
742
+ );
743
+ };
736
744
  const clearErrors = (...names) => {
737
745
  form.clearErrors(...names);
738
746
  return form;
@@ -815,7 +823,7 @@ var Form = forwardRef(
815
823
  defaultData.current = getFormData();
816
824
  setIsDirty(false);
817
825
  };
818
- const exposed = () => ({
826
+ const exposed = {
819
827
  errors: form.errors,
820
828
  hasErrors: form.hasErrors,
821
829
  processing: form.processing,
@@ -839,9 +847,9 @@ var Form = forwardRef(
839
847
  validate: (field, config2) => form.validate(...UseFormUtils2.mergeHeadersForValidation(field, config2, headers)),
840
848
  touch: form.touch,
841
849
  touched: form.touched
842
- });
843
- useImperativeHandle(ref, exposed, [form, isDirty, submit]);
844
- return createElement3(
850
+ };
851
+ useImperativeHandle(ref, () => exposed, [form, isDirty, submit]);
852
+ const formNode = createElement3(
845
853
  "form",
846
854
  {
847
855
  ...props,
@@ -858,18 +866,22 @@ var Form = forwardRef(
858
866
  // See: https://github.com/inertiajs/inertia/pull/2536
859
867
  inert: disableWhileProcessing && form.processing && "true"
860
868
  },
861
- typeof children === "function" ? children(exposed()) : children
869
+ typeof children === "function" ? children(exposed) : children
862
870
  );
871
+ return createElement3(FormContext.Provider, { value: exposed }, formNode);
863
872
  }
864
873
  );
865
874
  Form.displayName = "InertiaForm";
875
+ function useFormContext() {
876
+ return useContext(FormContext);
877
+ }
866
878
  var Form_default = Form;
867
879
 
868
880
  // src/Head.ts
869
881
  import { escape } from "lodash-es";
870
- import React3, { useContext, useEffect as useEffect7, useMemo as useMemo5 } from "react";
882
+ import React3, { useContext as useContext2, useEffect as useEffect7, useMemo as useMemo5 } from "react";
871
883
  var Head = function({ children, title }) {
872
- const headManager = useContext(HeadContext_default);
884
+ const headManager = useContext2(HeadContext_default);
873
885
  const provider = useMemo5(() => headManager.createProvider(), [headManager]);
874
886
  const isServer = typeof window === "undefined";
875
887
  useEffect7(() => {
@@ -1619,6 +1631,7 @@ export {
1619
1631
  progress,
1620
1632
  router3 as router,
1621
1633
  useForm,
1634
+ useFormContext,
1622
1635
  usePage,
1623
1636
  usePoll,
1624
1637
  usePrefetch,