@inertiajs/svelte 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/components/InfiniteScroll.svelte +16 -8
- package/dist/useForm.d.ts +1 -0
- package/dist/useForm.js +20 -1
- package/dist/useRemember.js +3 -2
- package/package.json +2 -2
|
@@ -22,20 +22,22 @@ let endElementRef;
|
|
|
22
22
|
let loadingPrevious = false;
|
|
23
23
|
let loadingNext = false;
|
|
24
24
|
let requestCount = 0;
|
|
25
|
+
let hasPreviousPage = false;
|
|
26
|
+
let hasNextPage = false;
|
|
25
27
|
$: resolvedItemsElement = resolveHTMLElement(itemsElement, itemsElementRef);
|
|
26
28
|
$: scrollableParent = resolvedItemsElement ? getScrollableParent(resolvedItemsElement) : null;
|
|
27
29
|
$: sharedExposed = {
|
|
28
30
|
loadingPrevious,
|
|
29
31
|
loadingNext,
|
|
30
|
-
hasPrevious:
|
|
31
|
-
hasNext:
|
|
32
|
+
hasPrevious: hasPreviousPage,
|
|
33
|
+
hasNext: hasNextPage
|
|
32
34
|
};
|
|
33
35
|
$: exposedPrevious = {
|
|
34
36
|
loading: loadingPrevious,
|
|
35
37
|
fetch: fetchPrevious,
|
|
36
38
|
autoMode: headerAutoMode,
|
|
37
39
|
manualMode: !headerAutoMode,
|
|
38
|
-
hasMore:
|
|
40
|
+
hasMore: hasPreviousPage,
|
|
39
41
|
...sharedExposed
|
|
40
42
|
};
|
|
41
43
|
$: exposedNext = {
|
|
@@ -43,7 +45,7 @@ $: exposedNext = {
|
|
|
43
45
|
fetch: fetchNext,
|
|
44
46
|
autoMode: footerAutoMode,
|
|
45
47
|
manualMode: !footerAutoMode,
|
|
46
|
-
hasMore:
|
|
48
|
+
hasMore: hasNextPage,
|
|
47
49
|
...sharedExposed
|
|
48
50
|
};
|
|
49
51
|
$: exposedSlot = {
|
|
@@ -92,6 +94,11 @@ export function hasNext() {
|
|
|
92
94
|
onMount(() => {
|
|
93
95
|
setTimeout(setupInfiniteScrollInstance);
|
|
94
96
|
});
|
|
97
|
+
function syncStateFromDataManager() {
|
|
98
|
+
requestCount = infiniteScrollInstance.dataManager.getRequestCount();
|
|
99
|
+
hasPreviousPage = infiniteScrollInstance.dataManager.hasPrevious();
|
|
100
|
+
hasNextPage = infiniteScrollInstance.dataManager.hasNext();
|
|
101
|
+
}
|
|
95
102
|
function setupInfiniteScrollInstance() {
|
|
96
103
|
const resolvedItemsElement2 = resolveHTMLElement(itemsElement, itemsElementRef);
|
|
97
104
|
const resolvedStartElement = resolveHTMLElement(startElement, startElementRef);
|
|
@@ -113,16 +120,17 @@ function setupInfiniteScrollInstance() {
|
|
|
113
120
|
onBeforePreviousRequest: () => loadingPrevious = true,
|
|
114
121
|
onBeforeNextRequest: () => loadingNext = true,
|
|
115
122
|
onCompletePreviousRequest: () => {
|
|
116
|
-
requestCount = infiniteScrollInstance.dataManager.getRequestCount();
|
|
117
123
|
loadingPrevious = false;
|
|
124
|
+
syncStateFromDataManager();
|
|
118
125
|
},
|
|
119
126
|
onCompleteNextRequest: () => {
|
|
120
|
-
requestCount = infiniteScrollInstance.dataManager.getRequestCount();
|
|
121
127
|
loadingNext = false;
|
|
122
|
-
|
|
128
|
+
syncStateFromDataManager();
|
|
129
|
+
},
|
|
130
|
+
onDataReset: syncStateFromDataManager
|
|
123
131
|
});
|
|
124
132
|
const { dataManager, elementManager } = infiniteScrollInstance;
|
|
125
|
-
|
|
133
|
+
syncStateFromDataManager();
|
|
126
134
|
elementManager.setupObservers();
|
|
127
135
|
elementManager.processServerLoadedElements(dataManager.getLastLoadedPage());
|
|
128
136
|
const shouldAutoScroll = autoScroll !== void 0 ? autoScroll : reverse;
|
package/dist/useForm.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ export interface InertiaFormProps<TForm extends object> {
|
|
|
33
33
|
patch(url: string, options?: UseFormSubmitOptions): void;
|
|
34
34
|
delete(url: string, options?: UseFormSubmitOptions): void;
|
|
35
35
|
cancel(): void;
|
|
36
|
+
dontRemember<K extends FormDataKeys<TForm>>(...fields: K[]): this;
|
|
36
37
|
withPrecognition: (...args: UseFormWithPrecognitionArguments) => InertiaPrecognitiveFormStore<TForm>;
|
|
37
38
|
}
|
|
38
39
|
export interface InertiaFormValidationProps<TForm extends object> {
|
package/dist/useForm.js
CHANGED
|
@@ -15,6 +15,7 @@ export default function useForm(...args) {
|
|
|
15
15
|
let cancelToken = null;
|
|
16
16
|
let recentlySuccessfulTimeoutId = null;
|
|
17
17
|
let transform = (data) => data;
|
|
18
|
+
let rememberExcludeKeys = [];
|
|
18
19
|
let defaultsCalledInOnSuccess = false;
|
|
19
20
|
let validatorRef = null;
|
|
20
21
|
let setFormState;
|
|
@@ -289,10 +290,24 @@ export default function useForm(...args) {
|
|
|
289
290
|
cancel() {
|
|
290
291
|
cancelToken?.cancel();
|
|
291
292
|
},
|
|
293
|
+
__remember() {
|
|
294
|
+
const data = this.data();
|
|
295
|
+
if (rememberExcludeKeys.length > 0) {
|
|
296
|
+
const filtered = { ...data };
|
|
297
|
+
rememberExcludeKeys.forEach((k) => delete filtered[k]);
|
|
298
|
+
return { data: filtered, errors: this.errors };
|
|
299
|
+
}
|
|
300
|
+
return { data, errors: this.errors };
|
|
301
|
+
},
|
|
292
302
|
withPrecognition,
|
|
293
303
|
});
|
|
304
|
+
const dontRememberMethod = (...keys) => {
|
|
305
|
+
rememberExcludeKeys = keys;
|
|
306
|
+
return store;
|
|
307
|
+
};
|
|
294
308
|
Object.assign(store, {
|
|
295
309
|
withPrecognition,
|
|
310
|
+
dontRemember: dontRememberMethod,
|
|
296
311
|
});
|
|
297
312
|
setFormState = (key, value) => {
|
|
298
313
|
store.update((form) => ({ ...form, [key]: value }));
|
|
@@ -306,7 +321,11 @@ export default function useForm(...args) {
|
|
|
306
321
|
setFormState('hasErrors', !form.hasErrors);
|
|
307
322
|
}
|
|
308
323
|
if (rememberKey) {
|
|
309
|
-
|
|
324
|
+
const storedData = router.restore(rememberKey);
|
|
325
|
+
const newData = form.__remember();
|
|
326
|
+
if (!isEqual(storedData, newData)) {
|
|
327
|
+
router.remember(newData, rememberKey);
|
|
328
|
+
}
|
|
310
329
|
}
|
|
311
330
|
});
|
|
312
331
|
return precognitionEndpoint
|
package/dist/useRemember.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { router } from '@inertiajs/core';
|
|
2
|
+
import { cloneDeep } from 'lodash-es';
|
|
2
3
|
import { onDestroy } from 'svelte';
|
|
3
4
|
import { writable } from 'svelte/store';
|
|
4
5
|
export default function useRemember(initialState, key) {
|
|
5
6
|
const restored = router.restore(key);
|
|
6
|
-
const store = writable(restored !== undefined ? restored : initialState);
|
|
7
|
-
const unsubscribe = store.subscribe((state) => router.remember(state, key));
|
|
7
|
+
const store = writable(restored !== undefined ? cloneDeep(restored) : initialState);
|
|
8
|
+
const unsubscribe = store.subscribe((state) => router.remember(cloneDeep(state), key));
|
|
8
9
|
onDestroy(unsubscribe);
|
|
9
10
|
return store;
|
|
10
11
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inertiajs/svelte",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.8",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "The Svelte adapter for Inertia.js",
|
|
6
6
|
"contributors": [
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@types/lodash-es": "^4.17.12",
|
|
56
56
|
"laravel-precognition": "^1.0.0",
|
|
57
57
|
"lodash-es": "^4.17.21",
|
|
58
|
-
"@inertiajs/core": "2.3.
|
|
58
|
+
"@inertiajs/core": "2.3.8"
|
|
59
59
|
},
|
|
60
60
|
"scripts": {
|
|
61
61
|
"build": "pnpm package && svelte-check --tsconfig ./tsconfig.json && publint",
|