@inertiajs/vue3 2.3.6 → 2.3.8

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
@@ -87,6 +87,7 @@ function useForm(...args) {
87
87
  let recentlySuccessfulTimeoutId;
88
88
  let transform = (data2) => data2;
89
89
  let validatorRef = null;
90
+ let rememberExcludeKeys = [];
90
91
  let defaultsCalledInOnSuccess = false;
91
92
  const form = reactive({
92
93
  ...restored ? restored.data : cloneDeep2(defaults),
@@ -335,9 +336,19 @@ function useForm(...args) {
335
336
  cancelToken.cancel();
336
337
  }
337
338
  },
339
+ dontRemember(...keys) {
340
+ rememberExcludeKeys = keys;
341
+ return this;
342
+ },
338
343
  __rememberable: rememberKey === null,
339
344
  __remember() {
340
- return { data: this.data(), errors: this.errors };
345
+ const data2 = this.data();
346
+ if (rememberExcludeKeys.length > 0) {
347
+ const filtered = { ...data2 };
348
+ rememberExcludeKeys.forEach((k) => delete filtered[k]);
349
+ return { data: filtered, errors: this.errors };
350
+ }
351
+ return { data: data2, errors: this.errors };
341
352
  },
342
353
  __restore(restored2) {
343
354
  Object.assign(this, restored2.data);
@@ -349,8 +360,10 @@ function useForm(...args) {
349
360
  typedForm,
350
361
  (newValue) => {
351
362
  typedForm.isDirty = !isEqual(typedForm.data(), defaults);
352
- if (rememberKey) {
353
- router2.remember(cloneDeep2(newValue.__remember()), rememberKey);
363
+ const storedData = router2.restore(rememberKey);
364
+ const newData = cloneDeep2(newValue.__remember());
365
+ if (rememberKey && !isEqual(storedData, newData)) {
366
+ router2.remember(newData, rememberKey);
354
367
  }
355
368
  },
356
369
  { immediate: true, deep: true }
@@ -1074,6 +1087,13 @@ var InfiniteScroll = defineComponent5({
1074
1087
  const loadingPrevious = ref3(false);
1075
1088
  const loadingNext = ref3(false);
1076
1089
  const requestCount = ref3(0);
1090
+ const hasPreviousPage = ref3(false);
1091
+ const hasNextPage = ref3(false);
1092
+ const syncStateFromDataManager = () => {
1093
+ requestCount.value = dataManager.getRequestCount();
1094
+ hasPreviousPage.value = dataManager.hasPrevious();
1095
+ hasNextPage.value = dataManager.hasNext();
1096
+ };
1077
1097
  const {
1078
1098
  dataManager,
1079
1099
  elementManager,
@@ -1095,15 +1115,16 @@ var InfiniteScroll = defineComponent5({
1095
1115
  onBeforePreviousRequest: () => loadingPrevious.value = true,
1096
1116
  onBeforeNextRequest: () => loadingNext.value = true,
1097
1117
  onCompletePreviousRequest: () => {
1098
- requestCount.value = dataManager.getRequestCount();
1099
1118
  loadingPrevious.value = false;
1119
+ syncStateFromDataManager();
1100
1120
  },
1101
1121
  onCompleteNextRequest: () => {
1102
- requestCount.value = dataManager.getRequestCount();
1103
1122
  loadingNext.value = false;
1104
- }
1123
+ syncStateFromDataManager();
1124
+ },
1125
+ onDataReset: syncStateFromDataManager
1105
1126
  });
1106
- requestCount.value = dataManager.getRequestCount();
1127
+ syncStateFromDataManager();
1107
1128
  const autoLoad = computed3(() => !manualMode.value);
1108
1129
  const manualMode = computed3(
1109
1130
  () => props.manual || props.manualAfter > 0 && requestCount.value >= props.manualAfter
@@ -1150,8 +1171,8 @@ var InfiniteScroll = defineComponent5({
1150
1171
  const sharedExposed = {
1151
1172
  loadingPrevious: loadingPrevious.value,
1152
1173
  loadingNext: loadingNext.value,
1153
- hasPrevious: dataManager.hasPrevious(),
1154
- hasNext: dataManager.hasNext()
1174
+ hasPrevious: hasPreviousPage.value,
1175
+ hasNext: hasNextPage.value
1155
1176
  };
1156
1177
  if (!props.startElement) {
1157
1178
  const headerAutoMode = autoLoad.value && !props.onlyNext;
@@ -1160,7 +1181,7 @@ var InfiniteScroll = defineComponent5({
1160
1181
  fetch: dataManager.fetchPrevious,
1161
1182
  autoMode: headerAutoMode,
1162
1183
  manualMode: !headerAutoMode,
1163
- hasMore: dataManager.hasPrevious(),
1184
+ hasMore: hasPreviousPage.value,
1164
1185
  ...sharedExposed
1165
1186
  };
1166
1187
  renderElements.push(
@@ -1189,7 +1210,7 @@ var InfiniteScroll = defineComponent5({
1189
1210
  fetch: dataManager.fetchNext,
1190
1211
  autoMode: footerAutoMode,
1191
1212
  manualMode: !footerAutoMode,
1192
- hasMore: dataManager.hasNext(),
1213
+ hasMore: hasNextPage.value,
1193
1214
  ...sharedExposed
1194
1215
  };
1195
1216
  renderElements.push(
@@ -1582,7 +1603,9 @@ function useRemember(data, key2) {
1582
1603
  const restored = router8.restore(key2);
1583
1604
  const type = isReactive(data) ? reactive3 : ref6;
1584
1605
  const hasCallbacks = typeof data.__remember === "function" && typeof data.__restore === "function";
1585
- const remembered = type(restored === void 0 ? data : hasCallbacks ? data.__restore(restored) : restored);
1606
+ const remembered = type(
1607
+ restored === void 0 ? data : hasCallbacks ? data.__restore(cloneDeep3(restored)) : cloneDeep3(restored)
1608
+ );
1586
1609
  watch4(
1587
1610
  remembered,
1588
1611
  (newValue) => {
@@ -1644,7 +1667,9 @@ var whenVisible_default = defineComponent7({
1644
1667
  if (exists && !this.always) {
1645
1668
  return;
1646
1669
  }
1647
- this.$nextTick(this.registerObserver);
1670
+ if (!this.observer || !exists) {
1671
+ this.$nextTick(this.registerObserver);
1672
+ }
1648
1673
  },
1649
1674
  { immediate: true }
1650
1675
  );