@ttt-productions/upload-ui 0.7.18 → 0.7.19
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/react/tray/use-clear-upload-activity.d.ts +1 -1
- package/dist/react/tray/use-clear-upload-activity.d.ts.map +1 -1
- package/dist/react/tray/use-clear-upload-activity.js +2 -2
- package/dist/react/tray/use-clear-upload-activity.js.map +1 -1
- package/dist/react/tray/use-mark-upload-activity-seen.d.ts.map +1 -1
- package/dist/react/tray/use-mark-upload-activity-seen.js +5 -4
- package/dist/react/tray/use-mark-upload-activity-seen.js.map +1 -1
- package/package.json +9 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { MutationKey } from '@tanstack/react-query';
|
|
2
2
|
export interface ClearUploadActivityOptions {
|
|
3
3
|
clearFn: (pendingMediaId: string) => Promise<void>;
|
|
4
4
|
onError?: (error: Error, pendingMediaId: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-clear-upload-activity.d.ts","sourceRoot":"","sources":["../../../src/react/tray/use-clear-upload-activity.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"use-clear-upload-activity.d.ts","sourceRoot":"","sources":["../../../src/react/tray/use-clear-upload-activity.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,0BAA0B,mFASzE"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { useSessionMutation } from '@ttt-productions/query-core/react';
|
|
3
3
|
export function useClearUploadActivity(options) {
|
|
4
4
|
const { clearFn, onError, mutationKey } = options;
|
|
5
|
-
return
|
|
5
|
+
return useSessionMutation({
|
|
6
6
|
mutationKey,
|
|
7
7
|
mutationFn: clearFn,
|
|
8
8
|
onError: (error, pendingMediaId) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-clear-upload-activity.js","sourceRoot":"","sources":["../../../src/react/tray/use-clear-upload-activity.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"use-clear-upload-activity.js","sourceRoot":"","sources":["../../../src/react/tray/use-clear-upload-activity.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAGb,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAQvE,MAAM,UAAU,sBAAsB,CAAC,OAAmC;IACxE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAClD,OAAO,kBAAkB,CAAsB;QAC7C,WAAW;QACX,UAAU,EAAE,OAAO;QACnB,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE;YACjC,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["'use client';\n\nimport type { MutationKey } from '@tanstack/react-query';\nimport { useSessionMutation } from '@ttt-productions/query-core/react';\n\nexport interface ClearUploadActivityOptions {\n clearFn: (pendingMediaId: string) => Promise<void>;\n onError?: (error: Error, pendingMediaId: string) => void;\n mutationKey?: MutationKey;\n}\n\nexport function useClearUploadActivity(options: ClearUploadActivityOptions) {\n const { clearFn, onError, mutationKey } = options;\n return useSessionMutation<void, Error, string>({\n mutationKey,\n mutationFn: clearFn,\n onError: (error, pendingMediaId) => {\n onError?.(error, pendingMediaId);\n },\n });\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mark-upload-activity-seen.d.ts","sourceRoot":"","sources":["../../../src/react/tray/use-mark-upload-activity-seen.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;gBAEnB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE;CAMlD;
|
|
1
|
+
{"version":3,"file":"use-mark-upload-activity-seen.d.ts","sourceRoot":"","sources":["../../../src/react/tray/use-mark-upload-activity-seen.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,CAAC,eAAe,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACrD,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7D;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,OAAO,EAAE,KAAK,CAAC;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;gBAEnB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE;CAMlD;AA0BD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,6BAA6B,qFAU/E"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { useSessionMutation } from '@ttt-productions/query-core/react';
|
|
3
3
|
export class MarkUploadActivitySeenError extends Error {
|
|
4
4
|
failure;
|
|
5
5
|
unmarkedIds;
|
|
@@ -10,7 +10,7 @@ export class MarkUploadActivitySeenError extends Error {
|
|
|
10
10
|
this.unmarkedIds = unmarkedIds;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
async function markInBatches(markFn, maxIdsPerCall, pendingMediaIds) {
|
|
13
|
+
async function markInBatches(markFn, maxIdsPerCall, pendingMediaIds, session) {
|
|
14
14
|
if (!Number.isInteger(maxIdsPerCall) || maxIdsPerCall < 1) {
|
|
15
15
|
throw new Error(`maxIdsPerCall must be a positive whole number, got ${maxIdsPerCall}.`);
|
|
16
16
|
}
|
|
@@ -18,6 +18,7 @@ async function markInBatches(markFn, maxIdsPerCall, pendingMediaIds) {
|
|
|
18
18
|
const unmarkedIds = [];
|
|
19
19
|
for (let start = 0; start < pendingMediaIds.length; start += maxIdsPerCall) {
|
|
20
20
|
const batch = pendingMediaIds.slice(start, start + maxIdsPerCall);
|
|
21
|
+
session.assertCurrent();
|
|
21
22
|
try {
|
|
22
23
|
await markFn(batch);
|
|
23
24
|
}
|
|
@@ -31,8 +32,8 @@ async function markInBatches(markFn, maxIdsPerCall, pendingMediaIds) {
|
|
|
31
32
|
}
|
|
32
33
|
export function useMarkUploadActivitySeen(options) {
|
|
33
34
|
const { markFn, maxIdsPerCall, onError } = options;
|
|
34
|
-
return
|
|
35
|
-
mutationFn: (pendingMediaIds) => markInBatches(markFn, maxIdsPerCall, pendingMediaIds),
|
|
35
|
+
return useSessionMutation({
|
|
36
|
+
mutationFn: (pendingMediaIds, { session }) => markInBatches(markFn, maxIdsPerCall, pendingMediaIds, session),
|
|
36
37
|
onError: (error, pendingMediaIds) => {
|
|
37
38
|
if (error instanceof MarkUploadActivitySeenError)
|
|
38
39
|
onError?.(error.failure, error.unmarkedIds);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-mark-upload-activity-seen.js","sourceRoot":"","sources":["../../../src/react/tray/use-mark-upload-activity-seen.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"use-mark-upload-activity-seen.js","sourceRoot":"","sources":["../../../src/react/tray/use-mark-upload-activity-seen.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,kBAAkB,EAAwB,MAAM,mCAAmC,CAAC;AAQ7F,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAC3C,OAAO,CAAQ;IACf,WAAW,CAAW;IAE/B,YAAY,OAAc,EAAE,WAAqB;QAC/C,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED,KAAK,UAAU,aAAa,CAC1B,MAAoD,EACpD,aAAqB,EACrB,eAAyB,EACzB,OAAwB;IAExB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,IAAI,KAAK,CAAC,sDAAsD,aAAa,GAAG,CAAC,CAAC;IAC1F,CAAC;IACD,IAAI,YAAY,GAAiB,IAAI,CAAC;IACtC,MAAM,WAAW,GAAa,EAAE,CAAC;IACjC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,IAAI,aAAa,EAAE,CAAC;QAC3E,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,CAAC;QAClE,OAAO,CAAC,aAAa,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,YAAY,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,IAAI,YAAY;QAAE,MAAM,IAAI,2BAA2B,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAsC;IAC9E,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnD,OAAO,kBAAkB,CAAwB;QAC/C,UAAU,EAAE,CAAC,eAAe,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAC3C,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,OAAO,CAAC;QAChE,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE;YAClC,IAAI,KAAK,YAAY,2BAA2B;gBAAE,OAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,CAAC;;gBACzF,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACzC,CAAC;KACF,CAAC,CAAC;AACL,CAAC","sourcesContent":["'use client';\n\nimport { useSessionMutation, type MutationSession } from '@ttt-productions/query-core/react';\n\nexport interface MarkUploadActivitySeenOptions {\n markFn: (pendingMediaIds: string[]) => Promise<void>;\n maxIdsPerCall: number;\n onError?: (error: Error, pendingMediaIds: string[]) => void;\n}\n\nexport class MarkUploadActivitySeenError extends Error {\n readonly failure: Error;\n readonly unmarkedIds: string[];\n\n constructor(failure: Error, unmarkedIds: string[]) {\n super(failure.message);\n this.name = 'MarkUploadActivitySeenError';\n this.failure = failure;\n this.unmarkedIds = unmarkedIds;\n }\n}\n\nasync function markInBatches(\n markFn: (pendingMediaIds: string[]) => Promise<void>,\n maxIdsPerCall: number,\n pendingMediaIds: string[],\n session: MutationSession,\n): Promise<void> {\n if (!Number.isInteger(maxIdsPerCall) || maxIdsPerCall < 1) {\n throw new Error(`maxIdsPerCall must be a positive whole number, got ${maxIdsPerCall}.`);\n }\n let firstFailure: Error | null = null;\n const unmarkedIds: string[] = [];\n for (let start = 0; start < pendingMediaIds.length; start += maxIdsPerCall) {\n const batch = pendingMediaIds.slice(start, start + maxIdsPerCall);\n session.assertCurrent();\n try {\n await markFn(batch);\n } catch (err) {\n firstFailure ??= err instanceof Error ? err : new Error(String(err));\n unmarkedIds.push(...batch);\n }\n }\n if (firstFailure) throw new MarkUploadActivitySeenError(firstFailure, unmarkedIds);\n}\n\nexport function useMarkUploadActivitySeen(options: MarkUploadActivitySeenOptions) {\n const { markFn, maxIdsPerCall, onError } = options;\n return useSessionMutation<void, Error, string[]>({\n mutationFn: (pendingMediaIds, { session }) =>\n markInBatches(markFn, maxIdsPerCall, pendingMediaIds, session),\n onError: (error, pendingMediaIds) => {\n if (error instanceof MarkUploadActivitySeenError) onError?.(error.failure, error.unmarkedIds);\n else onError?.(error, pendingMediaIds);\n },\n });\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ttt-productions/upload-ui",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.19",
|
|
4
4
|
"description": "Upload UI primitives: local upload guard provider, useGuardedUpload helper, DeferredUploadFormShell for forms that defer Firebase Storage upload until form submit.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -46,7 +46,8 @@
|
|
|
46
46
|
"@ttt-productions/upload-core": "^0.7.8"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@tanstack/react-query": ">=5.
|
|
49
|
+
"@tanstack/react-query": ">=5.90.0",
|
|
50
|
+
"@ttt-productions/query-core": "^0.14.24",
|
|
50
51
|
"firebase": ">=12.0.0",
|
|
51
52
|
"react": ">=19.0.0",
|
|
52
53
|
"react-dom": ">=19.0.0"
|
|
@@ -55,6 +56,9 @@
|
|
|
55
56
|
"@tanstack/react-query": {
|
|
56
57
|
"optional": true
|
|
57
58
|
},
|
|
59
|
+
"@ttt-productions/query-core": {
|
|
60
|
+
"optional": true
|
|
61
|
+
},
|
|
58
62
|
"firebase": {
|
|
59
63
|
"optional": true
|
|
60
64
|
},
|
|
@@ -65,6 +69,9 @@
|
|
|
65
69
|
"optional": true
|
|
66
70
|
}
|
|
67
71
|
},
|
|
72
|
+
"devDependencies": {
|
|
73
|
+
"@ttt-productions/query-core": "^0.14.24"
|
|
74
|
+
},
|
|
68
75
|
"author": "DJ (TTT Productions)",
|
|
69
76
|
"license": "MIT"
|
|
70
77
|
}
|