@trtc/calls-uikit-react 4.5.3-beta.1 → 4.5.7

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.
Files changed (83) hide show
  1. package/package.json +4 -3
  2. package/src/Components/TUICallKit/TUICallKit.tsx +2 -0
  3. package/src/Components/components/SingleCall/MediaContainer/hooks/useGetLargeViewName.ts +9 -2
  4. package/src/Components/components/common/AutoPlayDialog/AutoPlayDialog.module.scss +33 -0
  5. package/src/Components/components/common/AutoPlayDialog/AutoPlayDialog.tsx +57 -0
  6. package/src/Components/components/common/AutoPlayDialog/index.ts +3 -0
  7. package/src/TUICallService/CallService/UIKitModal.ts +6 -3
  8. package/src/TUICallService/CallService/engineEventHandler.ts +2 -0
  9. package/src/TUICallService/CallService/index.ts +5 -5
  10. package/src/TUICallService/CallService/miniProgram.ts +4 -1
  11. package/src/TUICallService/UIKitModal/UIKitModal.ts +14 -5
  12. package/src/TUICallService/utils/env.ts +11 -1
  13. package/src/TUICallService/utils/permission.ts +294 -0
  14. package/src/TUICallService/utils/validate/avoidRepeatedCall.ts +5 -1
  15. package/src/index.ts +1 -1
  16. package/tuicall-uikit-react.es.js +3220 -3188
  17. package/tuicall-uikit-react.umd.js +4 -4
  18. package/types/Components/TUICallKit/TUICallKit.d.ts +2 -2
  19. package/types/Components/components/GroupCall/GroupCall.d.ts +1 -2
  20. package/types/Components/components/GroupCall/MediaContainer/AudioStream/AudioStream.d.ts +1 -2
  21. package/types/Components/components/GroupCall/MediaContainer/MediaContainer.d.ts +1 -2
  22. package/types/Components/components/GroupCall/MediaContainer/StreamLoading/StreamLoading.d.ts +1 -1
  23. package/types/Components/components/GroupCall/Waiting/Waiting.d.ts +1 -2
  24. package/types/Components/components/SingleCall/MediaContainer/AudioStream/AudioStream.d.ts +1 -2
  25. package/types/Components/components/SingleCall/MediaContainer/MediaContainer.d.ts +1 -2
  26. package/types/Components/components/SingleCall/SingleCall.d.ts +1 -1
  27. package/types/Components/components/SingleCall/Waiting/Waiting.d.ts +1 -2
  28. package/types/Components/components/base/Avatar/Avatar.d.ts +2 -2
  29. package/types/Components/components/base/Drag/Drag.d.ts +2 -2
  30. package/types/Components/components/base/Grid/Col/Col.d.ts +2 -2
  31. package/types/Components/components/base/Grid/Row/Row.d.ts +1 -1
  32. package/types/Components/components/base/GridLayout/GridLayout.d.ts +1 -2
  33. package/types/Components/components/base/GridLayout/GridPlusItem/GridPlusItem.d.ts +2 -2
  34. package/types/Components/components/base/Icon/Icon.d.ts +2 -2
  35. package/types/Components/components/base/Loading/Circle/Cilrcle.d.ts +1 -2
  36. package/types/Components/components/base/Loading/Dot/Dot.d.ts +1 -2
  37. package/types/Components/components/base/Loading/Loading.d.ts +2 -2
  38. package/types/Components/components/base/Message/Message.d.ts +2 -2
  39. package/types/Components/components/base/Message/MessageIcon/Error.d.ts +1 -1
  40. package/types/Components/components/base/Message/MessageIcon/Info.d.ts +1 -1
  41. package/types/Components/components/base/Message/MessageIcon/Success.d.ts +1 -1
  42. package/types/Components/components/base/Message/MessageIcon/Warning.d.ts +1 -1
  43. package/types/Components/components/base/Overlayer/Overlayer.d.ts +2 -2
  44. package/types/Components/components/base/Text/Text.d.ts +1 -2
  45. package/types/Components/components/base/Time/Time.d.ts +1 -2
  46. package/types/Components/components/base/ToggleWindow/ToggleWindow.d.ts +1 -1
  47. package/types/Components/components/base/ToggleWindow/ToggleWindowItem/ToggleWindowItem.d.ts +1 -2
  48. package/types/Components/components/common/AutoPlayDialog/AutoPlayDialog.d.ts +1 -0
  49. package/types/Components/components/common/AutoPlayDialog/index.d.ts +2 -0
  50. package/types/Components/components/common/ButtonPanel/ButtonPanel.d.ts +1 -2
  51. package/types/Components/components/common/ButtonPanel/ButtonPanelH5/ButtonPanelH5.d.ts +2 -2
  52. package/types/Components/components/common/ButtonPanel/ButtonPanelPC/ButtonPanelPC.d.ts +1 -2
  53. package/types/Components/components/common/ButtonPanel/button/Accept/Accept.d.ts +1 -2
  54. package/types/Components/components/common/ButtonPanel/button/BackgroundBlur/BackgroundBlur.d.ts +1 -2
  55. package/types/Components/components/common/ButtonPanel/button/Camera.d.ts +1 -2
  56. package/types/Components/components/common/ButtonPanel/button/FullScreen/FullScreen.d.ts +1 -2
  57. package/types/Components/components/common/ButtonPanel/button/Hangup/Hangup.d.ts +1 -2
  58. package/types/Components/components/common/ButtonPanel/button/Microphone.d.ts +1 -2
  59. package/types/Components/components/common/ButtonPanel/button/Minimize/Minimize.d.ts +1 -2
  60. package/types/Components/components/common/ButtonPanel/button/Reject/Reject.d.ts +1 -2
  61. package/types/Components/components/common/ButtonPanel/button/Speaker.d.ts +1 -2
  62. package/types/Components/components/common/ButtonPanel/button/SwitchAudioCall.d.ts +1 -2
  63. package/types/Components/components/common/ButtonPanel/button/SwitchCamera.d.ts +1 -2
  64. package/types/Components/components/common/CallMessage/CallMessage.d.ts +1 -1
  65. package/types/Components/components/common/CallMessage/CallMessageC2C/CallMessageC2C.d.ts +1 -2
  66. package/types/Components/components/common/CallMessage/CallMessageGroup/CallMessageGroup.d.ts +1 -2
  67. package/types/Components/components/common/DeviceSelector/DeviceSelector.d.ts +1 -2
  68. package/types/Components/components/common/FloatingWindow/FloatingWindow.d.ts +2 -2
  69. package/types/Components/components/common/FloatingWindow/FloatingWindowGroupCall/FloatingWindowGroupCall.d.ts +2 -2
  70. package/types/Components/components/common/FloatingWindow/FloatingWindowSingleCall/FloatingWindowSingleCall.d.ts +2 -2
  71. package/types/Components/components/common/MicrophoneVolumn/MicrophoneVolumn.d.ts +2 -2
  72. package/types/Components/components/common/OverlayStream/OverlayStream.d.ts +2 -2
  73. package/types/Components/components/common/Player/Player.d.ts +2 -2
  74. package/types/Components/components/common/Pusher/Pusher.d.ts +1 -1
  75. package/types/Components/components/common/StreamInfo/StreamInfo.d.ts +1 -2
  76. package/types/Components/components/common/StreamInfo/StreamInfoH5/StreamInfoH5.d.ts +1 -2
  77. package/types/Components/components/common/StreamInfo/StreamInfoPC/StreamInfoPC.d.ts +1 -2
  78. package/types/Components/components/common/Tip/Tip.d.ts +2 -2
  79. package/types/Components/components/common/TopBar/TopBar.d.ts +1 -2
  80. package/types/Components/components/common/TopBar/h5/TopBarH5.d.ts +1 -2
  81. package/types/Components/components/common/TopBar/pc/TopBarPC.d.ts +1 -2
  82. package/types/TUICallService/utils/env.d.ts +1 -0
  83. package/types/TUICallService/utils/permission.d.ts +88 -0
@@ -4,6 +4,7 @@ export declare const IN_MINI_APP: boolean;
4
4
  export declare const IN_UNI_APP: boolean;
5
5
  export declare const IN_BROWSER: boolean;
6
6
  export declare const APP_NAMESPACE: any;
7
+ export declare const IS_HARMONY_WEBVIEW: boolean;
7
8
  export declare const IS_H5: boolean;
8
9
  export declare const IS_PC: boolean;
9
10
  export declare const IS_WIN: any;
@@ -0,0 +1,88 @@
1
+ /**
2
+ * WeChat mini-program permission utility.
3
+ *
4
+ * NOTE: This module is only referenced inside `// @if process.env.BUILD_TARGET='MINI'`
5
+ * conditional-compilation blocks, so it will be tree-shaken out of the web builds.
6
+ * `wx` global typings are not available in this package, therefore `// @ts-ignore`
7
+ * is used before each `wx.*` call, following the same convention as `miniProgram.ts`.
8
+ *
9
+ * Distinguishes two levels of permission denial:
10
+ * 1. Mini-program level: the user has rejected the scope in this mini-program.
11
+ * Fix: call wx.openSetting to let the user toggle it.
12
+ * 2. System level: WeChat itself lacks the OS-level permission (Settings >
13
+ * Privacy > Microphone / Camera on iOS, App Permissions on Android).
14
+ * Fix: guide the user to the system settings page (cannot be opened
15
+ * programmatically).
16
+ */
17
+ export declare const PermissionScope: {
18
+ readonly RECORD: "scope.record";
19
+ readonly CAMERA: "scope.camera";
20
+ };
21
+ export interface PermissionCheckResult {
22
+ /** Whether the permission is granted. */
23
+ granted: boolean;
24
+ /** Human-readable tip shown to the user. */
25
+ tip: string;
26
+ /**
27
+ * Denial level:
28
+ * - 'mini-program': rejected within this mini-program → wx.openSetting works.
29
+ * - 'system': WeChat lacks the OS permission → user must go to system settings.
30
+ * - 'granted': already authorized.
31
+ */
32
+ level: 'granted' | 'mini-program' | 'system';
33
+ }
34
+ /**
35
+ * Check and request microphone permission.
36
+ *
37
+ * - No camera permission → calls can still proceed (video call falls back to audio).
38
+ * - No microphone permission → calls MUST be blocked; user is guided to settings.
39
+ *
40
+ * The result's `level` field tells you whether the permission is already
41
+ * granted, denied at the mini-program level (wx.openSetting can fix it),
42
+ * or denied at the system level (user must go to OS settings manually).
43
+ */
44
+ export declare function checkMicrophonePermission(): Promise<PermissionCheckResult>;
45
+ /**
46
+ * Check camera permission.
47
+ *
48
+ * Camera permission is REQUIRED for video calls — a denial MUST block the
49
+ * call (both for initiating and for answering). For audio calls this check
50
+ * is irrelevant and should be skipped by the caller.
51
+ *
52
+ * Tip wording here reflects the blocking policy: it tells the user that
53
+ * video calls cannot proceed without camera permission, and points them to
54
+ * the appropriate settings page (mini-program vs. system level).
55
+ */
56
+ export declare function checkCameraPermission(): Promise<PermissionCheckResult>;
57
+ /**
58
+ * Handle a failed permission check by showing the appropriate dialog and
59
+ * optionally navigating to the settings page.
60
+ *
61
+ * Resolves with `{ confirm }` describing the user's choice:
62
+ * - confirm === true : the user clicked the primary button (前往设置 for the
63
+ * mini-program level, or 我知道了 for the system level).
64
+ * - confirm === false: the user cancelled the dialog (only possible for the
65
+ * mini-program level, which shows a 取消 button).
66
+ *
67
+ * Callers can use this to decide follow-up behavior, e.g. a callee rejecting
68
+ * the incoming call when the user cancels the mandatory permission dialog.
69
+ */
70
+ export declare function handlePermissionDenied(result: PermissionCheckResult): Promise<{
71
+ confirm: boolean;
72
+ }>;
73
+ /**
74
+ * Combined device-permission pre-check used as the mini-program replacement
75
+ * for `tuiCallEngine.deviceCheck(deviceMap)`.
76
+ *
77
+ * - Microphone is mandatory for every call (audio and video).
78
+ * - Camera is mandatory only for video calls (`deviceMap.camera === true`).
79
+ *
80
+ * When a required permission is missing, the corresponding guidance dialog is
81
+ * shown (via `handlePermissionDenied`) and `false` is returned so the caller
82
+ * can abort / postpone the call. Returns `true` only when all required
83
+ * permissions are granted.
84
+ */
85
+ export declare function checkDevicePermission(deviceMap?: {
86
+ microphone?: boolean;
87
+ camera?: boolean;
88
+ }): Promise<boolean>;