@tiny-codes/react-easy 1.4.7 → 1.4.9
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/CHANGELOG.md +36 -0
- package/es/assets/request-camera-en.js +1 -1
- package/es/assets/request-camera-zh.js +1 -1
- package/es/assets/request-microphone-en.js +1 -1
- package/es/assets/request-microphone-zh.js +1 -1
- package/es/assets/reset-camera-en.js +1 -1
- package/es/assets/reset-camera-zh.js +1 -1
- package/es/assets/reset-microphone-en.js +1 -1
- package/es/assets/reset-microphone-zh.js +1 -1
- package/es/assets/save-default-audio1-en.js +1 -1
- package/es/assets/save-default-audio1-zh.js +1 -1
- package/es/assets/save-default-audio2-en.js +1 -1
- package/es/assets/save-default-audio2-zh.js +1 -1
- package/es/hooks/index.d.ts +6 -0
- package/es/hooks/index.js +6 -0
- package/es/hooks/index.js.map +1 -1
- package/es/hooks/useAudioPlayer.d.ts +7 -0
- package/es/hooks/useAudioPlayer.js +13 -0
- package/es/hooks/useAudioPlayer.js.map +1 -0
- package/es/hooks/useSSE.d.ts +26 -0
- package/es/hooks/useSSE.js +147 -0
- package/es/hooks/useSSE.js.map +1 -0
- package/es/hooks/useStompSocket.d.ts +63 -0
- package/es/hooks/useStompSocket.js +182 -0
- package/es/hooks/useStompSocket.js.map +1 -0
- package/es/hooks/useUserMedia.js +12 -24
- package/es/hooks/useUserMedia.js.map +1 -1
- package/es/locales/index.d.ts +6 -0
- package/es/locales/langs/en-US.d.ts +2 -0
- package/es/locales/langs/en-US.js +3 -1
- package/es/locales/langs/en-US.js.map +1 -1
- package/es/locales/langs/zh-CN.d.ts +2 -0
- package/es/locales/langs/zh-CN.js +3 -1
- package/es/locales/langs/zh-CN.js.map +1 -1
- package/es/utils/AudioPlayer.d.ts +159 -0
- package/es/utils/AudioPlayer.js +433 -0
- package/es/utils/AudioPlayer.js.map +1 -0
- package/es/utils/base64.d.ts +48 -0
- package/es/utils/base64.js +139 -0
- package/es/utils/base64.js.map +1 -0
- package/es/utils/crypto.d.ts +0 -30
- package/es/utils/crypto.js +8 -93
- package/es/utils/crypto.js.map +1 -1
- package/es/utils/index.d.ts +5 -1
- package/es/utils/index.js +5 -1
- package/es/utils/index.js.map +1 -1
- package/lib/hooks/index.d.ts +6 -0
- package/lib/hooks/index.js +17 -1
- package/lib/hooks/index.js.map +2 -2
- package/lib/hooks/useAudioPlayer.d.ts +7 -0
- package/lib/hooks/useAudioPlayer.js +42 -0
- package/lib/hooks/useAudioPlayer.js.map +7 -0
- package/lib/hooks/useSSE.d.ts +26 -0
- package/lib/hooks/useSSE.js +128 -0
- package/lib/hooks/useSSE.js.map +7 -0
- package/lib/hooks/useStompSocket.d.ts +63 -0
- package/lib/hooks/useStompSocket.js +154 -0
- package/lib/hooks/useStompSocket.js.map +7 -0
- package/lib/hooks/useUserMedia.js +12 -24
- package/lib/hooks/useUserMedia.js.map +2 -2
- package/lib/locales/index.d.ts +6 -0
- package/lib/locales/langs/en-US.d.ts +2 -0
- package/lib/locales/langs/en-US.js +3 -1
- package/lib/locales/langs/en-US.js.map +2 -2
- package/lib/locales/langs/zh-CN.d.ts +2 -0
- package/lib/locales/langs/zh-CN.js +3 -1
- package/lib/locales/langs/zh-CN.js.map +2 -2
- package/lib/utils/AudioPlayer.d.ts +159 -0
- package/lib/utils/AudioPlayer.js +284 -0
- package/lib/utils/AudioPlayer.js.map +7 -0
- package/lib/utils/base64.d.ts +48 -0
- package/lib/utils/base64.js +120 -0
- package/lib/utils/base64.js.map +7 -0
- package/lib/utils/crypto.d.ts +0 -30
- package/lib/utils/crypto.js +7 -66
- package/lib/utils/crypto.js.map +2 -2
- package/lib/utils/index.d.ts +5 -1
- package/lib/utils/index.js +28 -3
- package/lib/utils/index.js.map +2 -2
- package/package.json +10 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","key","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","err","undefined","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","useEffect","useRef","useState","fetchEventSource","useRefFunction","useRefValue","useSSE","props","url","autoConnect","connectOptions","onMessage","parseMessage","onError","onClose","autoConnectRef","_useState","_useState2","isRequesting","setIsRequesting","isRequestingRef","_useState3","_useState4","isConnected","setIsConnected","abortCtrlRef","connect","_ref","_callee2","options","_connectOptions$optio","_connectOptions$optio2","connectUrl","_connectOptions$optio3","headers","_onopen","onmessage","onclose","onerror","restOptions","_callee2$","_context2","onopen","_excluded","current","AbortController","signal","openWhenHidden","_onopen2","_callee","response","_callee$","_context","_x2","event","parsed","data","JSON","parse","console","log","_x","close","abort"],"sources":["../../src/hooks/useSSE.ts"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport type { EventSourceMessage, FetchEventSourceInit } from '@microsoft/fetch-event-source';\nimport { fetchEventSource } from '@microsoft/fetch-event-source';\nimport useRefFunction from './useRefFunction';\nimport useRefValue from './useRefValue';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UseSSEProps<T = any> {\n /** The URL to connect to */\n url: RequestInfo;\n /** Options for the connection. */\n connectOptions?: Omit<FetchEventSourceInit, 'onmessage' | 'onerror' | 'onclose'>;\n /** Automatically connect to the SSE channel. Default is `false`. */\n autoConnect?: boolean;\n /** Automatically close the connection when the component unmounts. Default is `true`. */\n autoClose?: boolean;\n /** Function to parse the incoming message. If not provided, the default JSON parser will be used. */\n parseMessage?: (original: EventSourceMessage) => T;\n /** Callback function to handle incoming messages. */\n onMessage?: (messageData: T) => void;\n /** Callback function to handle errors. */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n onError?: (error: any) => void;\n /** Callback function to handle connection closure. */\n onClose?: () => void;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst useSSE = <T = any>(props: UseSSEProps<T>) => {\n const { url, autoConnect, connectOptions, onMessage, parseMessage, onError, onClose } = props;\n const autoConnectRef = useRefValue(autoConnect);\n const [isRequesting, setIsRequesting] = useState(false);\n const isRequestingRef = useRefValue(isRequesting);\n const [isConnected, setIsConnected] = useState<boolean>(false);\n const abortCtrlRef = useRef<AbortController | undefined>(undefined);\n\n const connect = useRefFunction(async (options?: FetchEventSourceInit & Partial<Pick<UseSSEProps, 'url'>>) => {\n const {\n url: connectUrl = url,\n headers = {},\n onopen,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onmessage,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onclose,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n onerror,\n ...restOptions\n } = { ...connectOptions, ...options };\n abortCtrlRef.current = new AbortController();\n try {\n setIsRequesting(true);\n setIsConnected(false);\n await fetchEventSource(connectUrl, {\n method: 'post',\n signal: abortCtrlRef.current.signal,\n openWhenHidden: true,\n onopen: async (response: Response) => {\n setIsConnected(true);\n onopen?.(response);\n },\n onmessage(event) {\n if (!isRequestingRef.current) {\n setIsRequesting(false);\n }\n try {\n let parsed: T;\n if (parseMessage) {\n parsed = parseMessage(event);\n } else {\n parsed = event.data ? JSON.parse(event.data) : undefined;\n }\n if (parsed != null) {\n onMessage?.(parsed);\n }\n } catch (error) {\n console.error('Error parsing message data:', error);\n console.log('The underlying event:', event);\n }\n },\n onerror(error) {\n setIsRequesting(false);\n onError?.(error);\n },\n onclose() {\n setIsRequesting(false);\n onClose?.();\n },\n headers: {\n 'Content-Type': 'application/json',\n ...headers,\n },\n ...restOptions,\n });\n } finally {\n setIsRequesting(false);\n }\n });\n\n const close = useRefFunction(() => {\n setIsConnected(false);\n if (isConnected && abortCtrlRef.current) {\n abortCtrlRef.current.abort();\n }\n });\n\n useEffect(() => {\n if (autoConnectRef.current) {\n connect();\n }\n return close;\n }, []);\n\n // 清理函数\n return {\n connect,\n close,\n isRequesting,\n isConnected,\n };\n};\n\nexport default useSSE;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { StompConfig } from '@stomp/stompjs';
|
|
2
|
+
import { Client } from '@stomp/stompjs';
|
|
3
|
+
export interface UseSocketOptions<M = string> {
|
|
4
|
+
/**
|
|
5
|
+
* - **EN:** Socket connection address
|
|
6
|
+
* - **CN:** Socket连接地址
|
|
7
|
+
*/
|
|
8
|
+
url: string;
|
|
9
|
+
/**
|
|
10
|
+
* - **EN:** STOMP connection configuration
|
|
11
|
+
* - **CN:** - **CN:** STOMP连接配置
|
|
12
|
+
*/
|
|
13
|
+
connectConfig?: StompConfig;
|
|
14
|
+
/**
|
|
15
|
+
* - **EN:** Channel path for publishing messages
|
|
16
|
+
* - **CN:** 发布消息的频道路径
|
|
17
|
+
*/
|
|
18
|
+
sendEndpoint?: string;
|
|
19
|
+
/**
|
|
20
|
+
* - **EN:** Endpoint path for receiving messages
|
|
21
|
+
* - **CN:** 接收消息的端点路径
|
|
22
|
+
*/
|
|
23
|
+
subscribeEndpoint?: string;
|
|
24
|
+
/**
|
|
25
|
+
* - **EN:** Connection success callback
|
|
26
|
+
* - **CN:** 连接成功回调
|
|
27
|
+
*/
|
|
28
|
+
onConnected?: () => void;
|
|
29
|
+
/**
|
|
30
|
+
* - **EN:** Message received callback
|
|
31
|
+
* - **CN:** 接收到消息回调
|
|
32
|
+
*/
|
|
33
|
+
onMessage?: (message: M) => void;
|
|
34
|
+
/**
|
|
35
|
+
* - **EN:** Parse message body, return value as input parameter for `onMessage`
|
|
36
|
+
* - **CN:** 解析消息体,返回值作为`onMessage`的输入参数。
|
|
37
|
+
*
|
|
38
|
+
* @param body - The raw message body received from the server, needs to be deserialized based on
|
|
39
|
+
* actual conditions. | 从服务端接收到的原始消息体,需要根据实际情况进行反序列化。
|
|
40
|
+
*
|
|
41
|
+
* @returns Parsed message body as the input parameter of `onMessage`| 解析后的消息体,作为`onMessage`的输入参数
|
|
42
|
+
*/
|
|
43
|
+
parseMessageBody?: (body: string) => M;
|
|
44
|
+
/**
|
|
45
|
+
* - **EN:** Connection close callback
|
|
46
|
+
* - **CN:** 连接关闭回调
|
|
47
|
+
*/
|
|
48
|
+
onClose?: () => void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* - **EN:** Establish a WebSocket based on the STOMP protocol, mainly used for bidirectional
|
|
52
|
+
* transmission of serializable character messages.
|
|
53
|
+
* - **CN:** 建立基于STOMP协议的WebSocket,主要用于双向传递可序列化的字符型消息
|
|
54
|
+
*/
|
|
55
|
+
declare function useStompSocket<M = string>(options: UseSocketOptions<M>): {
|
|
56
|
+
connect: () => Promise<void>;
|
|
57
|
+
close: () => void;
|
|
58
|
+
send: (body: string) => void;
|
|
59
|
+
connecting: boolean;
|
|
60
|
+
socket: WebSocket | undefined;
|
|
61
|
+
stompClient: Client | undefined;
|
|
62
|
+
};
|
|
63
|
+
export default useStompSocket;
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw new Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator.return && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw new Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, catch: function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw new Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
|
|
3
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
4
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
5
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
7
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
8
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
9
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
10
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
11
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
12
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
13
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
14
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
15
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
16
|
+
import { useRef, useState } from 'react';
|
|
17
|
+
import { Client } from '@stomp/stompjs';
|
|
18
|
+
import { notification } from 'antd';
|
|
19
|
+
import SockJS from 'sockjs-client';
|
|
20
|
+
import useRefFunction from "./useRefFunction";
|
|
21
|
+
import useT from "./useT";
|
|
22
|
+
/**
|
|
23
|
+
* - **EN:** Establish a WebSocket based on the STOMP protocol, mainly used for bidirectional
|
|
24
|
+
* transmission of serializable character messages.
|
|
25
|
+
* - **CN:** 建立基于STOMP协议的WebSocket,主要用于双向传递可序列化的字符型消息
|
|
26
|
+
*/
|
|
27
|
+
function useStompSocket(options) {
|
|
28
|
+
var url = options.url,
|
|
29
|
+
sendEndpoint = options.sendEndpoint,
|
|
30
|
+
subscribeEndpoint = options.subscribeEndpoint,
|
|
31
|
+
connectConfig = options.connectConfig,
|
|
32
|
+
onMessage = options.onMessage,
|
|
33
|
+
parseMessageBody = options.parseMessageBody,
|
|
34
|
+
onConnected = options.onConnected,
|
|
35
|
+
onClose = options.onClose;
|
|
36
|
+
var t = useT();
|
|
37
|
+
var socketRef = useRef(undefined);
|
|
38
|
+
var stompClientRef = useRef(undefined);
|
|
39
|
+
var _useState = useState(false),
|
|
40
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
41
|
+
connecting = _useState2[0],
|
|
42
|
+
setConnecting = _useState2[1];
|
|
43
|
+
var isConnectedRef = useRef(false);
|
|
44
|
+
// eslint-disable-next-line @typescript-eslint/no-invalid-void-type
|
|
45
|
+
var _useState3 = useState(),
|
|
46
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
47
|
+
refresh = _useState4[1];
|
|
48
|
+
var connect = useRefFunction( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
49
|
+
var promise;
|
|
50
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
51
|
+
while (1) switch (_context.prev = _context.next) {
|
|
52
|
+
case 0:
|
|
53
|
+
promise = new Promise(function (resolve, reject) {
|
|
54
|
+
try {
|
|
55
|
+
setConnecting(true);
|
|
56
|
+
// Create SockJS instance
|
|
57
|
+
socketRef.current = new SockJS(url);
|
|
58
|
+
|
|
59
|
+
// Create STOMP client
|
|
60
|
+
stompClientRef.current = new Client(_objectSpread(_objectSpread({
|
|
61
|
+
heartbeatIncoming: 5000,
|
|
62
|
+
heartbeatOutgoing: 5000
|
|
63
|
+
}, connectConfig), {}, {
|
|
64
|
+
webSocketFactory: function webSocketFactory() {
|
|
65
|
+
return socketRef.current;
|
|
66
|
+
}
|
|
67
|
+
}));
|
|
68
|
+
// Connect to STOMP server
|
|
69
|
+
stompClientRef.current.activate();
|
|
70
|
+
|
|
71
|
+
// STOMP server connection established
|
|
72
|
+
stompClientRef.current.onConnect = function () {
|
|
73
|
+
setConnecting(false);
|
|
74
|
+
isConnectedRef.current = true;
|
|
75
|
+
onConnected === null || onConnected === void 0 || onConnected();
|
|
76
|
+
if (subscribeEndpoint) {
|
|
77
|
+
var _stompClientRef$curre;
|
|
78
|
+
(_stompClientRef$curre = stompClientRef.current) === null || _stompClientRef$curre === void 0 || _stompClientRef$curre.subscribe(subscribeEndpoint, function (response) {
|
|
79
|
+
if (parseMessageBody) {
|
|
80
|
+
onMessage === null || onMessage === void 0 || onMessage(parseMessageBody(response.body));
|
|
81
|
+
} else {
|
|
82
|
+
onMessage === null || onMessage === void 0 || onMessage(response.body);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
resolve();
|
|
87
|
+
};
|
|
88
|
+
stompClientRef.current.onStompError = function (error) {
|
|
89
|
+
console.error('STOMP Error:', error);
|
|
90
|
+
};
|
|
91
|
+
stompClientRef.current.onWebSocketError = function (error) {
|
|
92
|
+
console.error('WebSocket Error:', error);
|
|
93
|
+
};
|
|
94
|
+
if (socketRef.current) {
|
|
95
|
+
socketRef.current.onerror = function (error) {
|
|
96
|
+
console.error(error);
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
stompClientRef.current.onWebSocketClose = function (event) {
|
|
100
|
+
var _stompClientRef$curre2;
|
|
101
|
+
setConnecting(false);
|
|
102
|
+
// Normal close
|
|
103
|
+
if (event.type === 'close' && event.code === 1000) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
(_stompClientRef$curre2 = stompClientRef.current) === null || _stompClientRef$curre2 === void 0 || _stompClientRef$curre2.debug('StompClient closed');
|
|
107
|
+
if (isConnectedRef.current) {
|
|
108
|
+
isConnectedRef.current = false;
|
|
109
|
+
onClose === null || onClose === void 0 || onClose();
|
|
110
|
+
notification.error({
|
|
111
|
+
message: undefined,
|
|
112
|
+
description: t('hooks.useStompSocket.serverDisconnected')
|
|
113
|
+
});
|
|
114
|
+
} else {
|
|
115
|
+
// Client connection failed
|
|
116
|
+
notification.error({
|
|
117
|
+
message: t('hooks.useStompSocket.connectError')
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
if (socketRef.current) {
|
|
122
|
+
socketRef.current.onclose = function (event) {
|
|
123
|
+
var _stompClientRef$curre3;
|
|
124
|
+
setConnecting(false);
|
|
125
|
+
isConnectedRef.current = false;
|
|
126
|
+
(_stompClientRef$curre3 = stompClientRef.current) === null || _stompClientRef$curre3 === void 0 || _stompClientRef$curre3.debug('Socket closed');
|
|
127
|
+
console.log('event', event);
|
|
128
|
+
onClose === null || onClose === void 0 || onClose();
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
} catch (error) {
|
|
132
|
+
console.error(error);
|
|
133
|
+
// notification.error({ message: error?.message ?? JSON.stringify(error) });
|
|
134
|
+
reject(error);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
refresh();
|
|
138
|
+
_context.next = 4;
|
|
139
|
+
return new Promise(function (resolve) {
|
|
140
|
+
return setTimeout(resolve);
|
|
141
|
+
});
|
|
142
|
+
case 4:
|
|
143
|
+
return _context.abrupt("return", promise);
|
|
144
|
+
case 5:
|
|
145
|
+
case "end":
|
|
146
|
+
return _context.stop();
|
|
147
|
+
}
|
|
148
|
+
}, _callee);
|
|
149
|
+
})));
|
|
150
|
+
var close = useRefFunction(function () {
|
|
151
|
+
try {
|
|
152
|
+
var _stompClientRef$curre4, _socketRef$current;
|
|
153
|
+
(_stompClientRef$curre4 = stompClientRef.current) === null || _stompClientRef$curre4 === void 0 || _stompClientRef$curre4.deactivate();
|
|
154
|
+
(_socketRef$current = socketRef.current) === null || _socketRef$current === void 0 || _socketRef$current.close();
|
|
155
|
+
isConnectedRef.current = false;
|
|
156
|
+
setConnecting(false);
|
|
157
|
+
} catch (error) {
|
|
158
|
+
console.error(error);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
var send = useRefFunction(function (body) {
|
|
162
|
+
var _stompClientRef$curre5;
|
|
163
|
+
if (!sendEndpoint) {
|
|
164
|
+
console.error('No publish endpoint defined, unable to send message');
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
(_stompClientRef$curre5 = stompClientRef.current) === null || _stompClientRef$curre5 === void 0 || _stompClientRef$curre5.publish({
|
|
168
|
+
destination: sendEndpoint,
|
|
169
|
+
body: body
|
|
170
|
+
});
|
|
171
|
+
});
|
|
172
|
+
return {
|
|
173
|
+
connect: connect,
|
|
174
|
+
close: close,
|
|
175
|
+
send: send,
|
|
176
|
+
connecting: connecting,
|
|
177
|
+
socket: socketRef.current,
|
|
178
|
+
stompClient: stompClientRef.current
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
export default useStompSocket;
|
|
182
|
+
//# sourceMappingURL=useStompSocket.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","e","t","r","Object","prototype","n","hasOwnProperty","o","defineProperty","value","i","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","type","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","catch","_catch","delegateYield","ownKeys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","apply","_objectSpread","arguments","_defineProperty","getOwnPropertyDescriptors","defineProperties","obj","key","_toPropertyKey","_toPrimitive","String","toPrimitive","Number","asyncGeneratorStep","gen","reject","_next","_throw","info","error","_asyncToGenerator","fn","self","args","err","undefined","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","toString","Array","from","test","len","arr2","isArray","useRef","useState","Client","notification","SockJS","useRefFunction","useT","useStompSocket","options","url","sendEndpoint","subscribeEndpoint","connectConfig","onMessage","parseMessageBody","onConnected","onClose","socketRef","stompClientRef","_useState","_useState2","connecting","setConnecting","isConnectedRef","_useState3","_useState4","refresh","connect","_callee","promise","_callee$","_context","current","heartbeatIncoming","heartbeatOutgoing","webSocketFactory","activate","onConnect","_stompClientRef$curre","subscribe","response","body","onStompError","console","onWebSocketError","onerror","onWebSocketClose","event","_stompClientRef$curre2","code","debug","message","description","onclose","_stompClientRef$curre3","log","setTimeout","close","_stompClientRef$curre4","_socketRef$current","deactivate","send","_stompClientRef$curre5","publish","destination","socket","stompClient"],"sources":["../../src/hooks/useStompSocket.ts"],"sourcesContent":["import { useRef, useState } from 'react';\nimport type { StompConfig } from '@stomp/stompjs';\nimport { Client } from '@stomp/stompjs';\nimport { notification } from 'antd';\nimport SockJS from 'sockjs-client';\nimport useRefFunction from './useRefFunction';\nimport useT from './useT';\n\nexport interface UseSocketOptions<M = string> {\n /**\n * - **EN:** Socket connection address\n * - **CN:** Socket连接地址\n */\n url: string;\n /**\n * - **EN:** STOMP connection configuration\n * - **CN:** - **CN:** STOMP连接配置\n */\n connectConfig?: StompConfig;\n /**\n * - **EN:** Channel path for publishing messages\n * - **CN:** 发布消息的频道路径\n */\n sendEndpoint?: string;\n /**\n * - **EN:** Endpoint path for receiving messages\n * - **CN:** 接收消息的端点路径\n */\n subscribeEndpoint?: string;\n /**\n * - **EN:** Connection success callback\n * - **CN:** 连接成功回调\n */\n onConnected?: () => void;\n /**\n * - **EN:** Message received callback\n * - **CN:** 接收到消息回调\n */\n onMessage?: (message: M) => void;\n /**\n * - **EN:** Parse message body, return value as input parameter for `onMessage`\n * - **CN:** 解析消息体,返回值作为`onMessage`的输入参数。\n *\n * @param body - The raw message body received from the server, needs to be deserialized based on\n * actual conditions. | 从服务端接收到的原始消息体,需要根据实际情况进行反序列化。\n *\n * @returns Parsed message body as the input parameter of `onMessage`| 解析后的消息体,作为`onMessage`的输入参数\n */\n parseMessageBody?: (body: string) => M;\n /**\n * - **EN:** Connection close callback\n * - **CN:** 连接关闭回调\n */\n onClose?: () => void;\n}\n\n/**\n * - **EN:** Establish a WebSocket based on the STOMP protocol, mainly used for bidirectional\n * transmission of serializable character messages.\n * - **CN:** 建立基于STOMP协议的WebSocket,主要用于双向传递可序列化的字符型消息\n */\nfunction useStompSocket<M = string>(options: UseSocketOptions<M>) {\n const { url, sendEndpoint, subscribeEndpoint, connectConfig, onMessage, parseMessageBody, onConnected, onClose } =\n options;\n const t = useT();\n const socketRef = useRef<WebSocket | undefined>(undefined);\n const stompClientRef = useRef<Client | undefined>(undefined);\n const [connecting, setConnecting] = useState(false);\n const isConnectedRef = useRef(false);\n // eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n const [, refresh] = useState<void>();\n\n const connect = useRefFunction(async () => {\n const promise = new Promise<void>((resolve, reject) => {\n try {\n setConnecting(true);\n // Create SockJS instance\n socketRef.current = new SockJS(url);\n\n // Create STOMP client\n stompClientRef.current = new Client({\n heartbeatIncoming: 5000,\n heartbeatOutgoing: 5000,\n ...connectConfig,\n webSocketFactory: () => socketRef.current,\n });\n // Connect to STOMP server\n stompClientRef.current.activate();\n\n // STOMP server connection established\n stompClientRef.current.onConnect = () => {\n setConnecting(false);\n isConnectedRef.current = true;\n onConnected?.();\n if (subscribeEndpoint) {\n stompClientRef.current?.subscribe(subscribeEndpoint, (response) => {\n if (parseMessageBody) {\n onMessage?.(parseMessageBody(response.body));\n } else {\n onMessage?.(response.body as M);\n }\n });\n }\n resolve();\n };\n stompClientRef.current.onStompError = (error) => {\n console.error('STOMP Error:', error);\n };\n stompClientRef.current.onWebSocketError = (error) => {\n console.error('WebSocket Error:', error);\n };\n if (socketRef.current) {\n socketRef.current.onerror = (error: unknown) => {\n console.error(error);\n };\n }\n\n stompClientRef.current.onWebSocketClose = (event) => {\n setConnecting(false);\n // Normal close\n if (event.type === 'close' && event.code === 1000) {\n return;\n }\n stompClientRef.current?.debug('StompClient closed');\n if (isConnectedRef.current) {\n isConnectedRef.current = false;\n onClose?.();\n notification.error({ message: undefined, description: t('hooks.useStompSocket.serverDisconnected') });\n } else {\n // Client connection failed\n notification.error({ message: t('hooks.useStompSocket.connectError') });\n }\n };\n if (socketRef.current) {\n socketRef.current.onclose = (event) => {\n setConnecting(false);\n isConnectedRef.current = false;\n stompClientRef.current?.debug('Socket closed');\n console.log('event', event);\n onClose?.();\n };\n }\n } catch (error: unknown) {\n console.error(error);\n // notification.error({ message: error?.message ?? JSON.stringify(error) });\n reject(error);\n }\n });\n refresh();\n await new Promise((resolve) => setTimeout(resolve));\n return promise;\n });\n const close = useRefFunction(() => {\n try {\n stompClientRef.current?.deactivate();\n socketRef.current?.close();\n isConnectedRef.current = false;\n setConnecting(false);\n } catch (error) {\n console.error(error);\n }\n });\n const send = useRefFunction((body: string) => {\n if (!sendEndpoint) {\n console.error('No publish endpoint defined, unable to send message');\n return;\n }\n stompClientRef.current?.publish({\n destination: sendEndpoint,\n body,\n });\n });\n return {\n connect,\n close,\n send,\n connecting,\n socket: socketRef.current,\n stompClient: stompClientRef.current,\n };\n}\n\nexport default useStompSocket;\n"],"mappings":"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"}
|
package/es/hooks/useUserMedia.js
CHANGED
|
@@ -24,18 +24,6 @@ import useRefValue from "./useRefValue";
|
|
|
24
24
|
import useT from "./useT";
|
|
25
25
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
26
26
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
|
-
var requestMicrophoneEnUrlPromise = import("../assets/request-microphone-en.js");
|
|
28
|
-
var requestMicrophoneZhUrlPromise = import("../assets/request-microphone-zh.js");
|
|
29
|
-
var resetMicrophoneEnUrlPromise = import("../assets/reset-microphone-en.js");
|
|
30
|
-
var resetMicrophoneZhUrlPromise = import("../assets/reset-microphone-zh.js");
|
|
31
|
-
var saveAudioDeviceEnUrlPromise1 = import("../assets/save-default-audio1-en.js");
|
|
32
|
-
var saveAudioDeviceZhUrlPromise1 = import("../assets/save-default-audio1-zh.js");
|
|
33
|
-
var saveAudioDeviceEnUrlPromise2 = import("../assets/save-default-audio2-en.js");
|
|
34
|
-
var saveAudioDeviceZhUrlPromise2 = import("../assets/save-default-audio2-zh.js");
|
|
35
|
-
var requestCameraEnUrlPromise = import("../assets/request-camera-en.js");
|
|
36
|
-
var requestCameraZhUrlPromise = import("../assets/request-camera-zh.js");
|
|
37
|
-
var resetCameraEnUrlPromise = import("../assets/reset-camera-en.js");
|
|
38
|
-
var resetCameraZhUrlPromise = import("../assets/reset-camera-zh.js");
|
|
39
27
|
var useUserMedia = function useUserMedia(props) {
|
|
40
28
|
var _app$modal;
|
|
41
29
|
var media = props.media,
|
|
@@ -573,28 +561,28 @@ var useUserMedia = function useUserMedia(props) {
|
|
|
573
561
|
};
|
|
574
562
|
}, [includeAudio, mediaStream, t]);
|
|
575
563
|
useEffect(function () {
|
|
576
|
-
|
|
564
|
+
import("../assets/request-microphone-en.js").then(function (module) {
|
|
577
565
|
setRequestMicrophoneEnUrl(module.default);
|
|
578
566
|
});
|
|
579
|
-
|
|
567
|
+
import("../assets/request-microphone-zh.js").then(function (module) {
|
|
580
568
|
setRequestMicrophoneZhUrl(module.default);
|
|
581
569
|
});
|
|
582
|
-
|
|
570
|
+
import("../assets/reset-microphone-en.js").then(function (module) {
|
|
583
571
|
setResetMicrophoneEnUrl(module.default);
|
|
584
572
|
});
|
|
585
|
-
|
|
573
|
+
import("../assets/reset-microphone-zh.js").then(function (module) {
|
|
586
574
|
setResetMicrophoneZhUrl(module.default);
|
|
587
575
|
});
|
|
588
|
-
|
|
576
|
+
import("../assets/request-camera-en.js").then(function (module) {
|
|
589
577
|
setRequestCameraEnUrl(module.default);
|
|
590
578
|
});
|
|
591
|
-
|
|
579
|
+
import("../assets/request-camera-zh.js").then(function (module) {
|
|
592
580
|
setRequestCameraZhUrl(module.default);
|
|
593
581
|
});
|
|
594
|
-
|
|
582
|
+
import("../assets/reset-camera-en.js").then(function (module) {
|
|
595
583
|
setResetCameraEnUrl(module.default);
|
|
596
584
|
});
|
|
597
|
-
|
|
585
|
+
import("../assets/reset-camera-zh.js").then(function (module) {
|
|
598
586
|
setResetCameraZhUrl(module.default);
|
|
599
587
|
});
|
|
600
588
|
}, []);
|
|
@@ -665,16 +653,16 @@ function SaveAudioDeviceForm(props) {
|
|
|
665
653
|
window.open(url);
|
|
666
654
|
});
|
|
667
655
|
useEffect(function () {
|
|
668
|
-
|
|
656
|
+
import("../assets/save-default-audio1-en.js").then(function (module) {
|
|
669
657
|
setSaveAudioDeviceEnUrl1(module.default);
|
|
670
658
|
});
|
|
671
|
-
|
|
659
|
+
import("../assets/save-default-audio2-en.js").then(function (module) {
|
|
672
660
|
setSaveAudioDeviceEnUrl2(module.default);
|
|
673
661
|
});
|
|
674
|
-
|
|
662
|
+
import("../assets/save-default-audio1-zh.js").then(function (module) {
|
|
675
663
|
setSaveAudioDeviceZhUrl1(module.default);
|
|
676
664
|
});
|
|
677
|
-
|
|
665
|
+
import("../assets/save-default-audio2-zh.js").then(function (module) {
|
|
678
666
|
setSaveAudioDeviceZhUrl2(module.default);
|
|
679
667
|
});
|
|
680
668
|
}, []);
|