@ogcio/sag-client 0.4.1 → 0.5.0
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,6 +1,8 @@
|
|
|
1
1
|
import { type ActorType, SagFetchError } from "../types";
|
|
2
2
|
export interface UseGatewayDownloadOptions {
|
|
3
3
|
actorType?: ActorType;
|
|
4
|
+
/** When true the file opens in a new browser tab instead of triggering a save-file download. */
|
|
5
|
+
openInNewTab?: boolean;
|
|
4
6
|
}
|
|
5
7
|
export interface UseGatewayDownloadResult {
|
|
6
8
|
download: (path: string, filename: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-gateway-download.d.ts","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG3E,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"use-gateway-download.d.ts","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"AAIA,OAAO,EAAqB,KAAK,SAAS,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAG3E,MAAM,WAAW,yBAAyB;IACxC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,gGAAgG;IAChG,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3D,aAAa,EAAE,OAAO,CAAA;IACtB,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,CAAC,EAAE,yBAAyB,GAClC,wBAAwB,CA+F1B"}
|
|
@@ -16,8 +16,13 @@ export function useGatewayDownload(options) {
|
|
|
16
16
|
const [isDownloading, setIsDownloading] = useState(false);
|
|
17
17
|
const [error, setError] = useState(null);
|
|
18
18
|
const download = useCallback(async (path, filename) => {
|
|
19
|
+
var _a;
|
|
19
20
|
setIsDownloading(true);
|
|
20
21
|
setError(null);
|
|
22
|
+
const openInNewTab = (_a = options === null || options === void 0 ? void 0 : options.openInNewTab) !== null && _a !== void 0 ? _a : false;
|
|
23
|
+
// Open the tab synchronously (inside the click-event turn) to
|
|
24
|
+
// avoid popup-blockers on mobile browsers.
|
|
25
|
+
const newTab = openInNewTab ? window.open("about:blank", "_blank") : null;
|
|
21
26
|
try {
|
|
22
27
|
const url = `${client.gatewayUrl}${path}`;
|
|
23
28
|
const headers = {
|
|
@@ -31,10 +36,12 @@ export function useGatewayDownload(options) {
|
|
|
31
36
|
headers,
|
|
32
37
|
});
|
|
33
38
|
if (response.status === 401) {
|
|
39
|
+
newTab === null || newTab === void 0 ? void 0 : newTab.close();
|
|
34
40
|
signIn(client.gatewayUrl, client.appName);
|
|
35
41
|
throw new SagFetchError("Session expired. Redirecting to sign in\u2026", 401);
|
|
36
42
|
}
|
|
37
43
|
if (!response.ok) {
|
|
44
|
+
newTab === null || newTab === void 0 ? void 0 : newTab.close();
|
|
38
45
|
let message = `HTTP error! status: ${response.status} ${response.statusText}`;
|
|
39
46
|
let code;
|
|
40
47
|
try {
|
|
@@ -46,26 +53,31 @@ export function useGatewayDownload(options) {
|
|
|
46
53
|
if (body.code)
|
|
47
54
|
code = body.code;
|
|
48
55
|
}
|
|
49
|
-
catch (
|
|
56
|
+
catch (_b) {
|
|
50
57
|
// non-JSON body
|
|
51
58
|
}
|
|
52
59
|
throw new SagFetchError(message, response.status, code);
|
|
53
60
|
}
|
|
54
61
|
const blob = await response.blob();
|
|
55
62
|
const objectUrl = URL.createObjectURL(blob);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
if (newTab) {
|
|
64
|
+
newTab.location.href = objectUrl;
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
const anchor = document.createElement("a");
|
|
68
|
+
anchor.href = objectUrl;
|
|
69
|
+
anchor.download = filename;
|
|
70
|
+
anchor.style.display = "none";
|
|
71
|
+
document.body.appendChild(anchor);
|
|
72
|
+
anchor.click();
|
|
73
|
+
setTimeout(() => {
|
|
74
|
+
URL.revokeObjectURL(objectUrl);
|
|
75
|
+
document.body.removeChild(anchor);
|
|
76
|
+
}, 100);
|
|
77
|
+
}
|
|
67
78
|
}
|
|
68
79
|
catch (err) {
|
|
80
|
+
newTab === null || newTab === void 0 ? void 0 : newTab.close();
|
|
69
81
|
const sagError = err instanceof SagFetchError
|
|
70
82
|
? err
|
|
71
83
|
: new SagFetchError(err instanceof Error ? err.message : "Download failed", 0);
|
|
@@ -75,7 +87,7 @@ export function useGatewayDownload(options) {
|
|
|
75
87
|
finally {
|
|
76
88
|
setIsDownloading(false);
|
|
77
89
|
}
|
|
78
|
-
}, [client, options === null || options === void 0 ? void 0 : options.actorType]);
|
|
90
|
+
}, [client, options === null || options === void 0 ? void 0 : options.actorType, options === null || options === void 0 ? void 0 : options.openInNewTab]);
|
|
79
91
|
return { download, isDownloading, error };
|
|
80
92
|
}
|
|
81
93
|
//# sourceMappingURL=use-gateway-download.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-gateway-download.js","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAChC,OAAO,EAAE,iBAAiB,EAAkB,aAAa,EAAE,MAAM,UAAU,CAAA;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"use-gateway-download.js","sourceRoot":"","sources":["../../src/react/use-gateway-download.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED