@awiki/dsh-plugin 0.3.7 → 0.3.11-rc.1
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/README.md +112 -73
- package/README.zh.md +91 -62
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/cordis.patch.yml +6 -5
- package/lib/builtin-tenants.json +22 -0
- package/lib/builtin-tenants.sha256 +1 -0
- package/lib/client.js +9281 -2379
- package/lib/client.js.map +1 -1
- package/lib/index.js +3553 -1138
- package/lib/model-proxy-contract.js +19 -11
- package/lib/provider.js +73 -17
- package/lib/{sdk-adapter--trNlr-T.mjs → sdk-adapter-CYcJH7sM.mjs} +374 -101
- package/lib/typert.host.js +1595 -168
- package/lib/typert.remote-client.d.ts +43 -7
- package/lib/typert.remote-client.d.ts.map +1 -1
- package/lib/typert.remote-client.js +1595 -168
- package/lib/types/builtin-tenant-config.d.ts +19 -0
- package/lib/types/builtin-tenant-config.d.ts.map +1 -0
- package/lib/types/builtin-tenant-config.js +57 -0
- package/lib/types/builtin-tenant-config.js.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts +15 -0
- package/lib/types/client/AwikiDeviceJoinReminder.d.ts.map +1 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js +74 -0
- package/lib/types/client/AwikiDeviceJoinReminder.js.map +1 -0
- package/lib/types/client/AwikiDevices.d.ts +33 -0
- package/lib/types/client/AwikiDevices.d.ts.map +1 -0
- package/lib/types/client/AwikiDevices.js +141 -0
- package/lib/types/client/AwikiDevices.js.map +1 -0
- package/lib/types/client/AwikiGroupDetails.d.ts.map +1 -1
- package/lib/types/client/AwikiGroupDetails.js +16 -13
- package/lib/types/client/AwikiGroupDetails.js.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.d.ts +17 -8
- package/lib/types/client/AwikiIdentityAccess.d.ts.map +1 -1
- package/lib/types/client/AwikiIdentityAccess.js +269 -37
- package/lib/types/client/AwikiIdentityAccess.js.map +1 -1
- package/lib/types/client/AwikiIntegrationSettings.d.ts +21 -0
- package/lib/types/client/AwikiIntegrationSettings.d.ts.map +1 -0
- package/lib/types/client/AwikiIntegrationSettings.js +105 -0
- package/lib/types/client/AwikiIntegrationSettings.js.map +1 -0
- package/lib/types/client/AwikiMail.d.ts +1 -1
- package/lib/types/client/AwikiMail.d.ts.map +1 -1
- package/lib/types/client/AwikiMail.js +17 -137
- package/lib/types/client/AwikiMail.js.map +1 -1
- package/lib/types/client/AwikiOverlay.d.ts +0 -1
- package/lib/types/client/AwikiOverlay.d.ts.map +1 -1
- package/lib/types/client/AwikiOverlay.js +26 -28
- package/lib/types/client/AwikiOverlay.js.map +1 -1
- package/lib/types/client/AwikiProfileCard.d.ts.map +1 -1
- package/lib/types/client/AwikiProfileCard.js +17 -18
- package/lib/types/client/AwikiProfileCard.js.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts +6 -1
- package/lib/types/client/AwikiRecoveryForm.d.ts.map +1 -1
- package/lib/types/client/AwikiRecoveryForm.js +74 -30
- package/lib/types/client/AwikiRecoveryForm.js.map +1 -1
- package/lib/types/client/AwikiSettingsSection.d.ts +28 -13
- package/lib/types/client/AwikiSettingsSection.d.ts.map +1 -1
- package/lib/types/client/AwikiSettingsSection.js +93 -61
- package/lib/types/client/AwikiSettingsSection.js.map +1 -1
- package/lib/types/client/AwikiUpdates.d.ts +10 -0
- package/lib/types/client/AwikiUpdates.d.ts.map +1 -0
- package/lib/types/client/AwikiUpdates.js +57 -0
- package/lib/types/client/AwikiUpdates.js.map +1 -0
- package/lib/types/client/awiki-client-bridge.d.ts +2 -2
- package/lib/types/client/awiki-client-bridge.d.ts.map +1 -1
- package/lib/types/client/awiki-client-bridge.js +4 -1
- package/lib/types/client/awiki-client-bridge.js.map +1 -1
- package/lib/types/client/controller.d.ts +92 -44
- package/lib/types/client/controller.d.ts.map +1 -1
- package/lib/types/client/controller.js +761 -334
- package/lib/types/client/controller.js.map +1 -1
- package/lib/types/client/drafts.d.ts +31 -0
- package/lib/types/client/drafts.d.ts.map +1 -0
- package/lib/types/client/drafts.js +94 -0
- package/lib/types/client/drafts.js.map +1 -0
- package/lib/types/client/image-cache.d.ts +2 -2
- package/lib/types/client/image-cache.d.ts.map +1 -1
- package/lib/types/client/image-cache.js +15 -2
- package/lib/types/client/image-cache.js.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/index.js +64 -19
- package/lib/types/client/index.js.map +1 -1
- package/lib/types/client/integration-operation.d.ts +9 -0
- package/lib/types/client/integration-operation.d.ts.map +1 -0
- package/lib/types/client/integration-operation.js +54 -0
- package/lib/types/client/integration-operation.js.map +1 -0
- package/lib/types/client/mail-list-cache.d.ts +2 -0
- package/lib/types/client/mail-list-cache.d.ts.map +1 -1
- package/lib/types/client/mail-list-cache.js +18 -0
- package/lib/types/client/mail-list-cache.js.map +1 -1
- package/lib/types/client/otp-cooldown.d.ts +7 -0
- package/lib/types/client/otp-cooldown.d.ts.map +1 -0
- package/lib/types/client/otp-cooldown.js +29 -0
- package/lib/types/client/otp-cooldown.js.map +1 -0
- package/lib/types/client/settings-controller.d.ts +38 -2
- package/lib/types/client/settings-controller.d.ts.map +1 -1
- package/lib/types/client/settings-controller.js +206 -10
- package/lib/types/client/settings-controller.js.map +1 -1
- package/lib/types/client/settings-locales.d.ts +1 -1
- package/lib/types/client/settings-locales.d.ts.map +1 -1
- package/lib/types/client/settings-locales.js +192 -14
- package/lib/types/client/settings-locales.js.map +1 -1
- package/lib/types/client/slots.d.ts +21 -10
- package/lib/types/client/slots.d.ts.map +1 -1
- package/lib/types/client/slots.js +0 -1
- package/lib/types/client/slots.js.map +1 -1
- package/lib/types/client/store.d.ts +1 -1
- package/lib/types/client/store.d.ts.map +1 -1
- package/lib/types/client/store.js +1 -1
- package/lib/types/client/store.js.map +1 -1
- package/lib/types/conversation-preferences.d.ts.map +1 -1
- package/lib/types/conversation-preferences.js +0 -17
- package/lib/types/conversation-preferences.js.map +1 -1
- package/lib/types/desktop-distribution.d.ts +25 -0
- package/lib/types/desktop-distribution.d.ts.map +1 -0
- package/lib/types/desktop-distribution.js +57 -0
- package/lib/types/desktop-distribution.js.map +1 -0
- package/lib/types/domain.d.ts +1 -1
- package/lib/types/domain.d.ts.map +1 -1
- package/lib/types/domain.js +2 -1
- package/lib/types/domain.js.map +1 -1
- package/lib/types/index.d.ts +165 -41
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/index.js +1594 -535
- package/lib/types/index.js.map +1 -1
- package/lib/types/integration-client.d.ts +17 -0
- package/lib/types/integration-client.d.ts.map +1 -0
- package/lib/types/integration-client.js +233 -0
- package/lib/types/integration-client.js.map +1 -0
- package/lib/types/legacy-sent-mail-cache.d.ts +4 -0
- package/lib/types/legacy-sent-mail-cache.d.ts.map +1 -0
- package/lib/types/legacy-sent-mail-cache.js +29 -0
- package/lib/types/legacy-sent-mail-cache.js.map +1 -0
- package/lib/types/listener-state.d.ts +5 -3
- package/lib/types/listener-state.d.ts.map +1 -1
- package/lib/types/listener-state.js +28 -13
- package/lib/types/listener-state.js.map +1 -1
- package/lib/types/listener.d.ts +9 -32
- package/lib/types/listener.d.ts.map +1 -1
- package/lib/types/listener.js +13 -128
- package/lib/types/listener.js.map +1 -1
- package/lib/types/mail-list-client.d.ts +12 -0
- package/lib/types/mail-list-client.d.ts.map +1 -0
- package/lib/types/mail-list-client.js +254 -0
- package/lib/types/mail-list-client.js.map +1 -0
- package/lib/types/mail-recovery-observability.d.ts +8 -0
- package/lib/types/mail-recovery-observability.d.ts.map +1 -0
- package/lib/types/mail-recovery-observability.js +119 -0
- package/lib/types/mail-recovery-observability.js.map +1 -0
- package/lib/types/mail.d.ts +2 -28
- package/lib/types/mail.d.ts.map +1 -1
- package/lib/types/mail.js +2 -79
- package/lib/types/mail.js.map +1 -1
- package/lib/types/model-proxy-contract.d.ts +8 -8
- package/lib/types/model-proxy-contract.d.ts.map +1 -1
- package/lib/types/model-proxy-contract.js +15 -8
- package/lib/types/model-proxy-contract.js.map +1 -1
- package/lib/types/package-version.generated.d.ts +4 -0
- package/lib/types/package-version.generated.d.ts.map +1 -0
- package/lib/types/package-version.generated.js +4 -0
- package/lib/types/package-version.generated.js.map +1 -0
- package/lib/types/profile-state.d.ts +2 -13
- package/lib/types/profile-state.d.ts.map +1 -1
- package/lib/types/profile-state.js +3 -20
- package/lib/types/profile-state.js.map +1 -1
- package/lib/types/provider-api.d.ts +134 -43
- package/lib/types/provider-api.d.ts.map +1 -1
- package/lib/types/provider.d.ts +8 -2
- package/lib/types/provider.d.ts.map +1 -1
- package/lib/types/provider.js +76 -16
- package/lib/types/provider.js.map +1 -1
- package/lib/types/realtime-supervisor.d.ts +60 -0
- package/lib/types/realtime-supervisor.d.ts.map +1 -0
- package/lib/types/realtime-supervisor.js +255 -0
- package/lib/types/realtime-supervisor.js.map +1 -0
- package/lib/types/registration-policy.d.ts +7 -0
- package/lib/types/registration-policy.d.ts.map +1 -0
- package/lib/types/registration-policy.js +21 -0
- package/lib/types/registration-policy.js.map +1 -0
- package/lib/types/sdk-adapter.d.ts +62 -11
- package/lib/types/sdk-adapter.d.ts.map +1 -1
- package/lib/types/sdk-adapter.js +285 -123
- package/lib/types/sdk-adapter.js.map +1 -1
- package/lib/types/settings-rpc-contract.d.ts +63 -5
- package/lib/types/settings-rpc-contract.d.ts.map +1 -1
- package/lib/types/settings-rpc-contract.js +108 -5
- package/lib/types/settings-rpc-contract.js.map +1 -1
- package/lib/types/settings-rpc.d.ts +14 -1
- package/lib/types/settings-rpc.d.ts.map +1 -1
- package/lib/types/settings-rpc.js +132 -3
- package/lib/types/settings-rpc.js.map +1 -1
- package/lib/types/settings-transport.d.ts +7 -0
- package/lib/types/settings-transport.d.ts.map +1 -0
- package/lib/types/settings-transport.js +52 -0
- package/lib/types/settings-transport.js.map +1 -0
- package/lib/types/tenant-registry.d.ts +74 -0
- package/lib/types/tenant-registry.d.ts.map +1 -0
- package/lib/types/tenant-registry.js +440 -0
- package/lib/types/tenant-registry.js.map +1 -0
- package/lib/types/tools.d.ts +1 -1
- package/lib/types/tools.d.ts.map +1 -1
- package/lib/types/tools.js +4 -20
- package/lib/types/tools.js.map +1 -1
- package/lib/types/types.d.ts +249 -66
- package/lib/types/types.d.ts.map +1 -1
- package/lib/types/types.js.map +1 -1
- package/lib/types/update-policy.d.ts +51 -0
- package/lib/types/update-policy.d.ts.map +1 -0
- package/lib/types/update-policy.js +379 -0
- package/lib/types/update-policy.js.map +1 -0
- package/lib/types/version.d.ts +4 -0
- package/lib/types/version.d.ts.map +1 -0
- package/lib/types/version.js +44 -0
- package/lib/types/version.js.map +1 -0
- package/package.json +88 -61
- package/lib/types/base64.d.ts +0 -4
- package/lib/types/base64.d.ts.map +0 -1
- package/lib/types/base64.js +0 -28
- package/lib/types/base64.js.map +0 -1
- package/lib/types/client/mail-attachment.d.ts +0 -40
- package/lib/types/client/mail-attachment.d.ts.map +0 -1
- package/lib/types/client/mail-attachment.js +0 -187
- package/lib/types/client/mail-attachment.js.map +0 -1
- package/lib/types/sent-mail-store.d.ts +0 -27
- package/lib/types/sent-mail-store.d.ts.map +0 -1
- package/lib/types/sent-mail-store.js +0 -348
- package/lib/types/sent-mail-store.js.map +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { useRecoveryOtpCooldown } from "./otp-cooldown.js";
|
|
3
|
+
import { useDraftState } from "./drafts.js";
|
|
4
|
+
import { useEffect, useRef } from 'react';
|
|
3
5
|
import { IconCheckOutline16, IconLoadingOutline16, IconRefreshOutline16, IconUserOutline16, IconWarningOutline16, } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
4
6
|
import { AwikiIdentityPage } from "./AwikiIdentityPage.js";
|
|
5
7
|
import css from './AwikiOverlay.module.css';
|
|
@@ -15,7 +17,7 @@ function phaseLabel(phase) {
|
|
|
15
17
|
}
|
|
16
18
|
}
|
|
17
19
|
function canResume(progress) {
|
|
18
|
-
return progress.
|
|
20
|
+
return progress.allowedActions?.includes('resume') === true;
|
|
19
21
|
}
|
|
20
22
|
function maskedPhone(value) {
|
|
21
23
|
const normalized = value.replace(/[\s()-]/g, '');
|
|
@@ -24,53 +26,64 @@ function maskedPhone(value) {
|
|
|
24
26
|
return `${normalized.slice(0, 3)}****${normalized.slice(-4)}`;
|
|
25
27
|
}
|
|
26
28
|
function progressMessage(progress) {
|
|
29
|
+
if (progress.failureCode === 'local_transition_superseded')
|
|
30
|
+
return '此恢复操作已由更新的身份状态关闭。请返回身份入口重新检查当前身份。';
|
|
27
31
|
switch (progress.phase) {
|
|
28
32
|
case 'remote_outcome_unknown': return '恢复请求已经提交,正在确认服务端结果。请不要重新发起恢复。';
|
|
29
33
|
case 'remote_committed': return '身份已在服务端恢复,正在为当前设备更新本机凭证。';
|
|
30
34
|
case 'identity_transition_pending': return '身份已在服务端恢复,本机切换尚未完成。请继续完成本机切换。';
|
|
31
35
|
case 'quarantined_key_unavailable': return '新的本机凭证暂时不可用,请稍后重新检查恢复结果。';
|
|
32
36
|
case 'applied': return '身份已经恢复完成。';
|
|
33
|
-
default: return '
|
|
37
|
+
default: return '请根据当前状态继续操作,也可以返回入口稍后处理。';
|
|
34
38
|
}
|
|
35
39
|
}
|
|
36
40
|
function RecoveryDiagnostics(props) {
|
|
37
41
|
return (_jsxs("details", { className: css.recoveryDiagnostics, children: [_jsx("summary", { children: "\u8BCA\u65AD\u4FE1\u606F" }), _jsxs("dl", { children: [_jsxs("div", { children: [_jsx("dt", { children: "\u6062\u590D\u8BF7\u6C42\u7F16\u53F7" }), _jsx("dd", { children: _jsx("code", { children: props.operationId }) })] }), props.failureCode !== undefined && _jsxs("div", { children: [_jsx("dt", { children: "\u72B6\u6001\u4EE3\u7801" }), _jsx("dd", { children: _jsx("code", { children: props.failureCode }) })] })] })] }));
|
|
38
42
|
}
|
|
39
|
-
/** Status-first Handle recovery. Secret inputs
|
|
43
|
+
/** Status-first Handle recovery. Secret inputs stay in browser memory only. */
|
|
40
44
|
export function AwikiRecoveryForm(props) {
|
|
45
|
+
const cooldown = useRecoveryOtpCooldown();
|
|
41
46
|
const handle = useRef(null);
|
|
42
47
|
const requestPhone = useRef(null);
|
|
43
48
|
const factorPhone = useRef(null);
|
|
44
49
|
const otp = useRef(null);
|
|
45
|
-
const [
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
const [
|
|
49
|
-
const
|
|
50
|
+
const [handleDraft, setHandleDraft] = useDraftState('recovery:handle', props.fixedHandle ?? '');
|
|
51
|
+
const targetHandle = props.progress?.fullHandle ?? props.fixedHandle ?? props.initialFactorContext?.fullHandle ?? handleDraft;
|
|
52
|
+
const initialContext = props.initialFactorContext?.fullHandle === targetHandle ? props.initialFactorContext : undefined;
|
|
53
|
+
const [phoneDraft, setPhoneDraft] = useDraftState(`recovery:${targetHandle}:phone`, initialContext?.phone ?? '');
|
|
54
|
+
const [otpDraft, setOtpDraft] = useDraftState(`recovery:${props.operationId}:otp`, '');
|
|
55
|
+
const [autoAttempt, setAutoAttempt] = useDraftState(`recovery:${props.operationId}:autoAttempt`, false, false);
|
|
56
|
+
const [commitAttempted, setCommitAttempted] = useDraftState(`recovery:${props.operationId}:commitAttempted`, false, false);
|
|
57
|
+
const [factorContext, setFactorContext] = useDraftState(`recovery:${targetHandle}:factorContext`, null, false);
|
|
58
|
+
const [notice, setNotice] = useDraftState(`recovery:${props.operationId}:notice`, null, false);
|
|
59
|
+
const [error, setError] = useDraftState(`recovery:${props.operationId}:error`, null, false);
|
|
60
|
+
const effectiveFactorContext = factorContext ?? initialContext ?? null;
|
|
50
61
|
useEffect(() => {
|
|
51
|
-
setCommitAttempted(false);
|
|
52
62
|
setNotice(null);
|
|
53
63
|
setError(null);
|
|
54
64
|
}, [props.operationId]);
|
|
65
|
+
useEffect(() => { cooldown.restore(props.retryAt); }, [cooldown.restore, props.retryAt]);
|
|
55
66
|
useEffect(() => {
|
|
56
67
|
const progress = props.progress;
|
|
57
68
|
if (progress === null
|
|
69
|
+
|| !canResume(progress)
|
|
58
70
|
|| progress.phase === 'awaiting_factor'
|
|
59
71
|
|| progress.phase === 'ready_to_commit'
|
|
60
72
|
|| progress.phase === 'applied'
|
|
61
73
|
|| progress.phase === 'quarantined_key_unavailable'
|
|
62
74
|
|| props.pending
|
|
75
|
+
|| props.statusError
|
|
76
|
+
|| autoAttempt
|
|
63
77
|
|| error !== null)
|
|
64
78
|
return;
|
|
65
79
|
const timer = setTimeout(() => {
|
|
80
|
+
setAutoAttempt(true);
|
|
66
81
|
void (canResume(progress) ? resume() : refresh());
|
|
67
82
|
}, 900);
|
|
68
83
|
return () => { clearTimeout(timer); };
|
|
69
|
-
}, [error, props.pending, props.progress]);
|
|
70
|
-
const
|
|
84
|
+
}, [error, props.pending, props.progress, props.statusError, autoAttempt]);
|
|
85
|
+
const sendOtp = async (fullHandle, phone) => {
|
|
71
86
|
setError(null);
|
|
72
|
-
const fullHandle = props.fixedHandle?.trim() ?? handle.current?.value.trim() ?? '';
|
|
73
|
-
const phone = requestPhone.current?.value.trim() ?? '';
|
|
74
87
|
const result = await props.sendRecoveryOtp({
|
|
75
88
|
fullHandle,
|
|
76
89
|
phone,
|
|
@@ -79,19 +92,38 @@ export function AwikiRecoveryForm(props) {
|
|
|
79
92
|
setError(result.error);
|
|
80
93
|
return;
|
|
81
94
|
}
|
|
95
|
+
cooldown.start(result.value.retryAfterSeconds);
|
|
96
|
+
setOtpDraft('');
|
|
82
97
|
setFactorContext({ fullHandle: result.value.fullHandle, phone });
|
|
83
98
|
setNotice('恢复验证码已发送。');
|
|
84
99
|
};
|
|
100
|
+
const requestOtp = async () => {
|
|
101
|
+
const fullHandle = props.fixedHandle?.trim() ?? handleDraft.trim();
|
|
102
|
+
const phone = phoneDraft.trim();
|
|
103
|
+
const continued = await props.continueRecoveryForHandle?.(fullHandle);
|
|
104
|
+
if (continued !== undefined && !continued.ok)
|
|
105
|
+
return setError(continued.error);
|
|
106
|
+
if (continued?.ok && continued.value)
|
|
107
|
+
return;
|
|
108
|
+
await sendOtp(fullHandle, phone);
|
|
109
|
+
};
|
|
110
|
+
const resendOtp = async () => {
|
|
111
|
+
if (props.progress?.allowedActions?.includes('request_otp') !== true || props.pending)
|
|
112
|
+
return;
|
|
113
|
+
const fullHandle = effectiveFactorContext?.fullHandle ?? props.progress?.fullHandle;
|
|
114
|
+
if (fullHandle === undefined)
|
|
115
|
+
return;
|
|
116
|
+
await sendOtp(fullHandle, effectiveFactorContext?.phone ?? phoneDraft.trim());
|
|
117
|
+
};
|
|
85
118
|
const prepare = async () => {
|
|
119
|
+
if (props.progress?.allowedActions?.includes('prepare') !== true || props.pending)
|
|
120
|
+
return;
|
|
86
121
|
setError(null);
|
|
87
122
|
const result = await props.prepareRecovery({
|
|
88
|
-
phone: effectiveFactorContext?.phone ??
|
|
89
|
-
otp:
|
|
123
|
+
phone: effectiveFactorContext?.phone ?? phoneDraft.trim(),
|
|
124
|
+
otp: otpDraft.trim(),
|
|
90
125
|
});
|
|
91
|
-
|
|
92
|
-
factorPhone.current.value = '';
|
|
93
|
-
if (otp.current !== null)
|
|
94
|
-
otp.current.value = '';
|
|
126
|
+
setOtpDraft('');
|
|
95
127
|
if (!result.ok) {
|
|
96
128
|
setError(result.error);
|
|
97
129
|
return;
|
|
@@ -99,6 +131,8 @@ export function AwikiRecoveryForm(props) {
|
|
|
99
131
|
setNotice(null);
|
|
100
132
|
};
|
|
101
133
|
const activate = async () => {
|
|
134
|
+
if (props.progress?.allowedActions?.includes('activate') !== true || props.pending)
|
|
135
|
+
return;
|
|
102
136
|
setCommitAttempted(true);
|
|
103
137
|
setError(null);
|
|
104
138
|
const result = await props.activateRecovery();
|
|
@@ -113,7 +147,7 @@ export function AwikiRecoveryForm(props) {
|
|
|
113
147
|
setError(result.error);
|
|
114
148
|
return;
|
|
115
149
|
}
|
|
116
|
-
if (result.value.
|
|
150
|
+
if (result.value.allowedActions?.includes('discard_pre_attempt'))
|
|
117
151
|
setCommitAttempted(false);
|
|
118
152
|
};
|
|
119
153
|
const resume = async () => {
|
|
@@ -123,30 +157,40 @@ export function AwikiRecoveryForm(props) {
|
|
|
123
157
|
setError(result.error);
|
|
124
158
|
return;
|
|
125
159
|
}
|
|
126
|
-
if (result.value.
|
|
160
|
+
if (result.value.allowedActions?.includes('discard_pre_attempt'))
|
|
127
161
|
setCommitAttempted(false);
|
|
128
162
|
};
|
|
129
163
|
const discard = async () => {
|
|
164
|
+
if (props.progress?.allowedActions?.includes('discard_pre_attempt') !== true || props.pending)
|
|
165
|
+
return;
|
|
130
166
|
setError(null);
|
|
131
167
|
const result = await props.discardRecovery();
|
|
132
168
|
if (!result.ok) {
|
|
133
169
|
setError(result.error);
|
|
134
170
|
return;
|
|
135
171
|
}
|
|
172
|
+
setHandleDraft('');
|
|
173
|
+
setPhoneDraft('');
|
|
174
|
+
setOtpDraft('');
|
|
175
|
+
setFactorContext(null);
|
|
136
176
|
props.onExit?.();
|
|
137
177
|
};
|
|
138
178
|
if (props.operationId === null) {
|
|
139
|
-
return (_jsx(AwikiIdentityPage, { ...props.onExit === undefined ? {} : { onBack: props.onExit }, backLabel: props.onExitLabel ?? '
|
|
140
|
-
? _jsxs("label", { children: ["\u5B8C\u6574 Handle", _jsx("input", { ref: handle, autoComplete: "username", placeholder: "\u4F8B\u5982 alice.awiki.info", autoFocus: true })] })
|
|
141
|
-
: (_jsxs("div", { className: css.recoveryIdentitySummary, children: [_jsx("span", { children: "\u5F53\u524D\u8EAB\u4EFD" }), _jsx("strong", { children: props.fixedHandle })] })), _jsxs("label", { children: ["\u7ED1\u5B9A\u624B\u673A\u53F7", _jsx("input", { ref: requestPhone, type: "tel", autoComplete: "tel", autoFocus: props.fixedHandle !== undefined })] }), _jsx("button", { type: "submit", className: css.primary, disabled: props.pending, children: "\
|
|
179
|
+
return (_jsx(AwikiIdentityPage, { ...props.onExit === undefined ? {} : { onBack: props.onExit }, backLabel: props.onExitLabel ?? '返回身份入口', backDisabled: false, children: _jsxs("form", { className: css.recoveryForm, onSubmit: (event) => { event.preventDefault(); void requestOtp(); }, children: [_jsx("div", { className: css.registrationIcon, children: _jsx(IconUserOutline16, { size: 24 }) }), _jsx("h3", { children: props.requestTitle ?? '恢复已有身份' }), _jsx("p", { children: props.requestDescription ?? '输入原来的完整 Handle 和绑定手机号。发送验证码会开始一次替换 DID 的恢复,使其他设备的旧凭证失效。' }), props.fixedHandle === undefined
|
|
180
|
+
? _jsxs("label", { children: ["\u5B8C\u6574 Handle", _jsx("input", { ref: handle, value: handleDraft, onChange: event => { setHandleDraft(event.target.value); }, autoComplete: "username", placeholder: "\u4F8B\u5982 alice.awiki.info", autoFocus: true })] })
|
|
181
|
+
: (_jsxs("div", { className: css.recoveryIdentitySummary, children: [_jsx("span", { children: "\u5F53\u524D\u8EAB\u4EFD" }), _jsx("strong", { children: props.fixedHandle })] })), _jsxs("label", { children: ["\u7ED1\u5B9A\u624B\u673A\u53F7", _jsx("input", { ref: requestPhone, value: phoneDraft, onChange: event => { setPhoneDraft(event.target.value); }, type: "tel", autoComplete: "tel", autoFocus: props.fixedHandle !== undefined })] }), _jsx("button", { type: "submit", className: css.primary, disabled: props.pending || cooldown.seconds > 0 || phoneDraft.trim() === '', children: "\u53D1\u9001\u6062\u590D\u9A8C\u8BC1\u7801\u5E76\u66FF\u6362 DID" }), (error ?? props.requestError) && _jsx("small", { className: css.inlineError, role: "alert", children: error ?? props.requestError })] }) }));
|
|
182
|
+
}
|
|
183
|
+
if (props.progress === null || props.statusError) {
|
|
184
|
+
return _jsx(AwikiIdentityPage, { ...props.onExit === undefined ? {} : { onBack: props.onExit }, backLabel: props.onExitLabel ?? '返回身份入口', children: _jsxs("div", { className: css.recoveryForm, children: [_jsx("h3", { children: "\u786E\u8BA4\u4E0A\u6B21\u6062\u590D\u7684\u8FDB\u5EA6" }), _jsx("p", { children: "\u8BF7\u5148\u786E\u8BA4\u6062\u590D\u72B6\u6001\uFF0C\u65E0\u9700\u91CD\u65B0\u53D1\u8D77\u6062\u590D\u3002" }), _jsx("p", { children: "\u6062\u590D\u8FDB\u5EA6\u5DF2\u4FDD\u7559\u3002\u8FD4\u56DE\u4E0D\u4F1A\u64A4\u9500\u5DF2\u63D0\u4EA4\u7684\u6062\u590D\u3002" }), (error ?? props.statusError) && _jsx("p", { role: "alert", children: error ?? props.statusError }), _jsx("button", { type: "button", className: css.primary, disabled: props.pending, onClick: () => { void refresh(); }, children: "\u91CD\u65B0\u68C0\u67E5\u6062\u590D\u7ED3\u679C" })] }) });
|
|
142
185
|
}
|
|
143
|
-
if (props.progress ===
|
|
144
|
-
return (_jsx(AwikiIdentityPage, {
|
|
186
|
+
if (props.progress.phase === 'awaiting_factor' || (props.progress.allowedActions?.includes('prepare') && !props.progress.allowedActions?.includes('activate'))) {
|
|
187
|
+
return (_jsx(AwikiIdentityPage, { ...props.onExit === undefined ? {} : { onBack: props.onExit }, backLabel: props.onExitLabel ?? '返回身份入口', children: _jsxs("form", { className: css.recoveryForm, onSubmit: (event) => { event.preventDefault(); void prepare(); }, children: [_jsx("div", { className: css.recoveryStatusLine, children: _jsx("span", { children: "\u6062\u590D\u8BF7\u6C42\u5DF2\u521B\u5EFA" }) }), _jsx("h3", { children: "\u9A8C\u8BC1\u8EAB\u4EFD\u5F52\u5C5E" }), _jsx("p", { children: "\u8BF7\u586B\u5199\u6536\u5230\u7684\u9A8C\u8BC1\u7801\u3002\u9A8C\u8BC1\u7801\u8FC7\u671F\u65F6\uFF0C\u53EF\u4EE5\u91CD\u65B0\u83B7\u53D6\u3002" }), _jsxs("div", { className: css.recoveryIdentitySummary, children: [_jsx("span", { children: "\u6062\u590D\u8EAB\u4EFD" }), _jsx("strong", { children: effectiveFactorContext?.fullHandle ?? props.progress?.fullHandle ?? '待确认' }), effectiveFactorContext !== null && _jsxs(_Fragment, { children: [_jsx("span", { children: "\u9A8C\u8BC1\u7801\u5DF2\u53D1\u9001\u81F3" }), _jsx("strong", { children: maskedPhone(effectiveFactorContext.phone) })] })] }), effectiveFactorContext === null && (_jsxs("label", { children: ["\u7ED1\u5B9A\u624B\u673A\u53F7", _jsx("input", { ref: factorPhone, value: phoneDraft, onChange: event => { setPhoneDraft(event.target.value); }, type: "tel", autoComplete: "tel", autoFocus: true })] })), _jsxs("label", { children: ["\u6062\u590D\u9A8C\u8BC1\u7801", _jsx("input", { ref: otp, value: otpDraft, onChange: event => { setOtpDraft(event.target.value); }, inputMode: "numeric", autoComplete: "one-time-code", autoFocus: effectiveFactorContext !== null })] }), _jsx("button", { type: "submit", className: css.primary, disabled: props.pending || !props.progress.allowedActions?.includes('prepare'), children: "\u9A8C\u8BC1\u6062\u590D\u4FE1\u606F" }), (effectiveFactorContext !== null || props.progress.fullHandle !== '') && (_jsx("button", { type: "button", className: css.secondary, disabled: props.pending || !props.progress.allowedActions?.includes('request_otp') || cooldown.seconds > 0 || (effectiveFactorContext === null && phoneDraft.trim() === ''), onClick: () => { void resendOtp(); }, children: cooldown.seconds > 0 ? `${cooldown.seconds} 秒后重新获取恢复验证码` : '重新获取恢复验证码' })), notice !== null && _jsx("small", { className: css.notice, role: "status", children: notice }), error !== null && _jsx("small", { className: css.inlineError, role: "alert", children: error }), props.progress.allowedActions?.includes('discard_pre_attempt') && _jsx("button", { type: "button", className: css.secondary, disabled: props.pending, onClick: () => { void discard(); }, children: "\u53D6\u6D88\u6062\u590D" }), _jsx(RecoveryDiagnostics, { operationId: props.operationId })] }) }));
|
|
145
188
|
}
|
|
146
189
|
const progress = props.progress;
|
|
147
|
-
const preCommit = progress.phase === 'ready_to_commit' && !commitAttempted;
|
|
148
|
-
return (_jsx(AwikiIdentityPage, { ...
|
|
190
|
+
const preCommit = progress.phase === 'ready_to_commit' && progress.allowedActions?.includes('activate') === true && !commitAttempted;
|
|
191
|
+
return (_jsx(AwikiIdentityPage, { ...props.onExit === undefined ? {} : { onBack: props.onExit }, backLabel: props.onExitLabel ?? '返回身份入口', live: preCommit ? 'off' : 'polite', children: _jsxs("div", { className: css.recoveryForm, children: [_jsx("div", { className: css.recoveryStatusLine, children: _jsx("span", { children: phaseLabel(progress.phase) }) }), _jsx("h3", { children: preCommit ? '确认恢复已有身份' : '身份恢复进度' }), _jsx("p", { className: css.recoveryHandle, children: progress.fullHandle }), _jsx("div", { className: css.recoveryImpact, children: _jsxs("p", { "data-tone": progress.localOrdinaryDataWillMigrate ? 'success' : 'neutral', children: [progress.localOrdinaryDataWillMigrate ? _jsx(IconCheckOutline16, { size: 14 }) : _jsx(IconWarningOutline16, { size: 14 }), "\u666E\u901A\u672C\u5730\u4F1A\u8BDD\u6570\u636E", progress.localOrdinaryDataWillMigrate ? '将迁移到恢复后的身份' : '不会迁移'] }) }), preCommit ? (_jsxs(_Fragment, { children: [_jsx("p", { className: css.recoveryConfirmationCopy, children: "\u786E\u8BA4\u540E\uFF0C\u8FD9\u53F0\u8BBE\u5907\u5C06\u4F7F\u7528\u65B0\u7684\u672C\u673A\u51ED\u8BC1\u3002\u8BF7\u52FF\u91CD\u590D\u63D0\u4EA4\uFF1B\u8FD4\u56DE\u5165\u53E3\u4E0D\u4F1A\u64A4\u9500\u5DF2\u63D0\u4EA4\u7684\u6062\u590D\u3002" }), _jsx("button", { type: "button", className: css.primary, disabled: props.pending, onClick: () => { void activate(); }, children: "\u786E\u8BA4\u5E76\u6062\u590D\u8EAB\u4EFD" })] })) : (_jsxs("div", { className: css.recoveryProgressPanel, "aria-live": "polite", children: [props.pending && _jsx(IconLoadingOutline16, { size: 18 }), _jsx("p", { children: progressMessage(progress) }), _jsx("p", { children: "\u6062\u590D\u8FDB\u5EA6\u5DF2\u4FDD\u7559\uFF0C\u53EF\u4EE5\u8FD4\u56DE\u5165\u53E3\u7A0D\u540E\u7EE7\u7EED\u3002" }), progress.phase === 'applied' && progress.allowedActions?.includes('activate_identity') && _jsx("button", { type: "button", className: css.primary, disabled: props.pending, onClick: () => { void props.enterRecoveredSession?.().then(result => { if (!result.ok)
|
|
192
|
+
setError(result.error); }); }, children: "\u8FDB\u5165 AWiki" }), progress.phase !== 'applied' && (_jsxs("button", { type: "button", className: css.primary, disabled: props.pending, onClick: () => { void (canResume(progress) ? resume() : refresh()); }, children: [_jsx(IconRefreshOutline16, { size: 14 }), canResume(progress) && (progress.phase === 'identity_transition_pending' || progress.phase === 'remote_committed')
|
|
149
193
|
? '继续完成本机切换'
|
|
150
|
-
: '重新检查恢复结果'] }))] })), error !== null && _jsx("small", { className: css.inlineError, role: "alert", children: error }), _jsx(RecoveryDiagnostics, { operationId: progress.operationId, ...progress.failureCode === undefined ? {} : { failureCode: progress.failureCode } })] }) }));
|
|
194
|
+
: '重新检查恢复结果'] }))] })), progress.allowedActions?.includes('discard_pre_attempt') && _jsx("button", { type: "button", className: css.secondary, disabled: props.pending, onClick: () => { void discard(); }, children: "\u53D6\u6D88\u6062\u590D" }), error !== null && _jsx("small", { className: css.inlineError, role: "alert", children: error }), _jsx(RecoveryDiagnostics, { operationId: progress.operationId, ...progress.failureCode === undefined ? {} : { failureCode: progress.failureCode } })] }) }));
|
|
151
195
|
}
|
|
152
196
|
//# sourceMappingURL=AwikiRecoveryForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwikiRecoveryForm.js","sourceRoot":"","sources":["../../../src/client/AwikiRecoveryForm.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AwikiRecoveryForm.js","sourceRoot":"","sources":["../../../src/client/AwikiRecoveryForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,40 @@
|
|
|
1
|
-
|
|
1
|
+
import { type AwikiDraftStore } from './drafts.tsx';
|
|
2
|
+
/** AWiki tenant, local-data, and optional-integration settings. */
|
|
2
3
|
import { type ReactNode } from 'react';
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
4
|
+
import type { HostObservable, InjectFace, PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
5
|
+
import type { SettingsScope } from '@deepseek-ai/dsh-client-ui-settings/client';
|
|
5
6
|
import type { AwikiSettings } from '../settings.ts';
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
import type { AwikiGroupSnapshot, AwikiIntegrationFields, AwikiIntegrationView } from '../types.ts';
|
|
8
|
+
import type { AwikiActionResult, AwikiView } from './controller.ts';
|
|
9
|
+
import type { AwikiTenantScope } from './settings-controller.ts';
|
|
10
|
+
import { type AwikiDevicesProps } from './AwikiDevices.tsx';
|
|
11
|
+
export interface AwikiSettingsInjected extends Omit<AwikiDevicesProps, 'active' | 'pending'> {
|
|
12
|
+
drafts?: AwikiDraftStore;
|
|
8
13
|
hooks: {
|
|
9
|
-
|
|
14
|
+
awikiTenants: AwikiTenantScope;
|
|
10
15
|
awikiSettings: SettingsScope<AwikiSettings>;
|
|
16
|
+
awiki: HostObservable<AwikiView>;
|
|
11
17
|
};
|
|
12
|
-
/**
|
|
18
|
+
/** Legacy migration setting retained for older browser bundles. */
|
|
13
19
|
saveDomain: (domain: string) => Promise<void>;
|
|
14
|
-
/**
|
|
20
|
+
/** Legacy migration setting retained for older browser bundles. */
|
|
15
21
|
resetDomain: () => Promise<void>;
|
|
16
|
-
|
|
22
|
+
createTenant: (displayName: string, domain: string) => Promise<void>;
|
|
23
|
+
renameTenant: (tenantId: string, displayName: string) => Promise<void>;
|
|
24
|
+
switchTenant: (tenantId: string) => Promise<void>;
|
|
25
|
+
archiveTenant: (tenantId: string) => Promise<void>;
|
|
26
|
+
refreshUpdatePolicy: () => Promise<void>;
|
|
17
27
|
clearLocalData: () => Promise<void>;
|
|
28
|
+
/** Load the shared identity state when settings is opened before the AWiki overlay. */
|
|
29
|
+
loadAwiki: () => Promise<AwikiActionResult>;
|
|
30
|
+
loadIntegration: () => Promise<AwikiActionResult<AwikiIntegrationView | null>>;
|
|
31
|
+
saveIntegration: (fields: AwikiIntegrationFields, current: AwikiIntegrationView | null) => Promise<AwikiActionResult<AwikiIntegrationView>>;
|
|
32
|
+
rotateIntegrationId: (current: AwikiIntegrationView) => Promise<AwikiActionResult<AwikiIntegrationView>>;
|
|
33
|
+
closeIntegration: (current: AwikiIntegrationView) => Promise<AwikiActionResult<AwikiIntegrationView>>;
|
|
34
|
+
reopenIntegration: (fields: AwikiIntegrationFields, current: AwikiIntegrationView) => Promise<AwikiActionResult<AwikiIntegrationView>>;
|
|
35
|
+
listOwnedGroups: () => Promise<AwikiActionResult<readonly AwikiGroupSnapshot[]>>;
|
|
36
|
+
openIntegrationGuide: () => void;
|
|
18
37
|
}
|
|
19
|
-
/** Full composed settings-section props. */
|
|
20
38
|
export type AwikiSettingsSectionProps = PropsRuntime<'settings.section'> & PropsLocale<'settings.awiki'> & InjectFace<AwikiSettingsInjected>;
|
|
21
|
-
declare function hasDomainOverride(snapshot: SettingsScopeSnapshot<AwikiSettings>): boolean;
|
|
22
|
-
/** Render only the settings owned by the main AWiki identity and messaging plugin. */
|
|
23
39
|
export declare function AwikiSettingsSection(props: AwikiSettingsSectionProps): ReactNode;
|
|
24
|
-
export { hasDomainOverride };
|
|
25
40
|
//# sourceMappingURL=AwikiSettingsSection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwikiSettingsSection.d.ts","sourceRoot":"","sources":["../../../src/client/AwikiSettingsSection.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AwikiSettingsSection.d.ts","sourceRoot":"","sources":["../../../src/client/AwikiSettingsSection.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,109 +1,141 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
|
|
2
|
+
import { AwikiUpdates } from "./AwikiUpdates.js";
|
|
3
|
+
import { AwikiDraftProvider, useDraftState } from "./drafts.js";
|
|
4
|
+
/** AWiki tenant, local-data, and optional-integration settings. */
|
|
3
5
|
import { useEffect, useState } from 'react';
|
|
4
6
|
import { Button, Modal } from '@deepseek-ai/dsh-client-ui-primitives';
|
|
5
|
-
import {
|
|
7
|
+
import { normalizeAwikiDomain } from "../domain.js";
|
|
8
|
+
import { AwikiDevices } from "./AwikiDevices.js";
|
|
9
|
+
import { AwikiIntegrationSettings } from "./AwikiIntegrationSettings.js";
|
|
6
10
|
import css from './AwikiSettingsSection.module.css';
|
|
7
|
-
function hasDomainOverride(snapshot) {
|
|
8
|
-
return typeof snapshot.user === 'object'
|
|
9
|
-
&& snapshot.user !== null
|
|
10
|
-
&& !Array.isArray(snapshot.user)
|
|
11
|
-
&& Object.hasOwn(snapshot.user, AWIKI_DOMAIN_FIELD);
|
|
12
|
-
}
|
|
13
|
-
/** Render only the settings owned by the main AWiki identity and messaging plugin. */
|
|
14
11
|
export function AwikiSettingsSection(props) {
|
|
15
|
-
|
|
16
|
-
return (_jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.heading, children: [_jsx("h2", { className: css.title, children: props.t('nav') }), _jsx("p", { className: css.intro, children: props.t('intro') })] }), _jsx(AdvancedPanel, { ...props, settings: settings })] }));
|
|
12
|
+
return _jsx(AwikiDraftProvider, { store: props.drafts, children: _jsx(AwikiSettingsContent, { ...props }) });
|
|
17
13
|
}
|
|
18
|
-
function
|
|
19
|
-
const
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
14
|
+
function AwikiSettingsContent(props) {
|
|
15
|
+
const [tab, setTab] = useState('tenants');
|
|
16
|
+
const tenantSnapshot = props.useAwikiTenants(value => value);
|
|
17
|
+
const awiki = props.useAwiki(value => value);
|
|
18
|
+
const restricted = tenantSnapshot.status === 'ready' && tenantSnapshot.update?.restricted === true;
|
|
19
|
+
const tabs = restricted ? [
|
|
20
|
+
{ id: 'tenants', label: props.t('tenantTab') },
|
|
21
|
+
{ id: 'updates', label: props.t('updatesTab') },
|
|
22
|
+
] : [
|
|
23
|
+
{ id: 'tenants', label: props.t('tenantTab') },
|
|
24
|
+
{ id: 'updates', label: props.t('updatesTab') },
|
|
25
|
+
{ id: 'devices', label: props.t('devicesTab') },
|
|
26
|
+
{ id: 'local', label: props.t('localDataTab') },
|
|
27
|
+
{ id: 'integration', label: props.t('integrationTab') },
|
|
28
|
+
];
|
|
30
29
|
useEffect(() => {
|
|
31
|
-
if (
|
|
32
|
-
|
|
33
|
-
}, [
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
30
|
+
if (restricted && tab !== 'tenants' && tab !== 'updates')
|
|
31
|
+
setTab('updates');
|
|
32
|
+
}, [restricted, tab]);
|
|
33
|
+
useEffect(() => {
|
|
34
|
+
if (!restricted && (tab === 'devices' || tab === 'integration') && awiki.status === 'cold')
|
|
35
|
+
void props.loadAwiki();
|
|
36
|
+
}, [awiki.status, props.loadAwiki, restricted, tab]);
|
|
37
|
+
return (_jsxs("section", { className: css.section, children: [_jsxs("div", { className: css.heading, children: [_jsx("h2", { className: css.title, children: props.t('nav') }), _jsx("p", { className: css.intro, children: props.t('intro') })] }), restricted && _jsxs("p", { className: css.error, role: "alert", children: [props.t('updateRequired'), " ", _jsx(Button, { type: "button", variant: "outline", onClick: () => { setTab('updates'); }, children: props.t('updatesTab') })] }), _jsx("div", { className: css.tabs, role: "tablist", "aria-label": props.t('tabsLabel'), children: tabs.map(item => _jsxs("button", { type: "button", role: "tab", "aria-selected": tab === item.id, className: `${css.tab} ${tab === item.id ? css.tabActive : ''}`, onClick: () => { setTab(item.id); }, children: [item.label, item.id === 'updates' && (tenantSnapshot.update?.updateAvailable || tenantSnapshot.desktop?.updateAvailable || restricted) && _jsx("span", { "aria-hidden": "true", children: " \u25CF" })] }, item.id)) }), _jsxs("div", { role: "tabpanel", children: [tab === 'tenants' && _jsx(TenantPanel, { ...props }), tab === 'updates' && _jsx(AwikiUpdates, { ...props, snapshot: tenantSnapshot }), !restricted && tab === 'devices' && (awiki.status === 'cold' || awiki.status === 'loading'
|
|
38
|
+
? _jsx("p", { className: css.status, role: "status", children: props.t('devicesLoading') })
|
|
39
|
+
: awiki.status === 'error'
|
|
40
|
+
? _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: awiki.error })
|
|
41
|
+
: awiki.sessionStatus === 'active'
|
|
42
|
+
? _jsx(AwikiDevices, { active: true, pending: awiki.pending !== null, refreshDeviceManagement: props.refreshDeviceManagement, startDeviceJoinVerification: props.startDeviceJoinVerification, approveDeviceJoin: props.approveDeviceJoin, rejectDeviceJoin: props.rejectDeviceJoin, revokeDevice: props.revokeDevice, prepareRootTransfer: props.prepareRootTransfer, confirmRootTransfer: props.confirmRootTransfer })
|
|
43
|
+
: _jsx("p", { className: css.notice, children: props.t('devicesUnavailable') })), !restricted && tab === 'local' && _jsx(LocalDataPanel, { ...props, disabled: tenantSnapshot.status !== 'ready' || tenantSnapshot.value.switching }, tenantSnapshot.status === 'ready' ? `${tenantSnapshot.value.activeTenantId}:${tenantSnapshot.value.generation}:${tenantSnapshot.value.switching}` : 'unavailable'), !restricted && tab === 'integration' && (tenantSnapshot.status !== 'ready' || tenantSnapshot.value.switching || awiki.status === 'cold' || awiki.status === 'loading'
|
|
44
|
+
? _jsx("p", { className: css.status, role: "status", children: props.t('integrationLoading') })
|
|
45
|
+
: _jsx(AwikiIntegrationSettings, { ...props }, `${tenantSnapshot.status === 'ready' ? tenantSnapshot.value.activeTenantId : 'unavailable'}:${awiki.identity?.did ?? 'no-identity'}`))] })] }));
|
|
46
|
+
}
|
|
47
|
+
function TenantPanel(props) {
|
|
48
|
+
const snapshot = props.useAwikiTenants(value => value);
|
|
49
|
+
const [name, setName] = useDraftState('settings:tenant-name', '');
|
|
50
|
+
const [domain, setDomain] = useDraftState('settings:tenant-domain', '');
|
|
51
|
+
const [pending, setPending] = useDraftState('settings:tenant-pending', false, false);
|
|
52
|
+
const [status, setStatus] = useState(null);
|
|
53
|
+
if (snapshot.status === 'loading')
|
|
54
|
+
return _jsx("p", { className: css.status, children: props.t('tenantLoading') });
|
|
55
|
+
if (snapshot.status !== 'ready')
|
|
56
|
+
return _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: props.t('tenantUnavailable') });
|
|
57
|
+
const disabled = pending || snapshot.value.switching;
|
|
58
|
+
const restricted = snapshot.update?.restricted === true;
|
|
59
|
+
const create = async (event) => {
|
|
60
|
+
event.preventDefault();
|
|
40
61
|
let normalized;
|
|
41
62
|
try {
|
|
42
|
-
normalized = normalizeAwikiDomain(
|
|
63
|
+
normalized = normalizeAwikiDomain(domain);
|
|
43
64
|
}
|
|
44
65
|
catch {
|
|
45
|
-
setStatus({ kind: 'error', text: t('invalidDomain') });
|
|
66
|
+
setStatus({ kind: 'error', text: props.t('invalidDomain') });
|
|
46
67
|
return;
|
|
47
68
|
}
|
|
48
69
|
setPending(true);
|
|
49
70
|
setStatus(null);
|
|
50
71
|
try {
|
|
51
|
-
await props.
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
setStatus({ kind: 'saved', text:
|
|
72
|
+
await props.createTenant(name.trim(), normalized);
|
|
73
|
+
setName('');
|
|
74
|
+
setDomain('');
|
|
75
|
+
setStatus({ kind: 'saved', text: props.t('tenantCreated') });
|
|
55
76
|
}
|
|
56
|
-
catch {
|
|
57
|
-
setStatus({ kind: 'error', text: t('
|
|
77
|
+
catch (error) {
|
|
78
|
+
setStatus({ kind: 'error', text: error instanceof Error ? error.message : props.t('tenantChangeFailed') });
|
|
58
79
|
}
|
|
59
80
|
finally {
|
|
60
81
|
setPending(false);
|
|
61
82
|
}
|
|
62
83
|
};
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
84
|
+
return (_jsxs("div", { className: css.panel, children: [snapshot.value.diagnostic !== undefined && _jsx("p", { className: `${css.notice} ${css.error}`, role: "alert", children: props.t('tenantDiagnostic') }), _jsx("div", { className: css.tenantList, children: snapshot.value.tenants.filter(tenant => tenant.lifecycle !== 'archived').map(tenant => _jsx(TenantRow, { ...props, tenant: tenant, disabled: disabled, managementDisabled: restricted, setPending: setPending, setStatus: setStatus }, tenant.tenantId)) }), !restricted && _jsxs("form", { className: css.card, onSubmit: (event) => { void create(event); }, children: [_jsx("h3", { className: css.cardTitle, children: props.t('tenantAdd') }), _jsx("label", { className: css.label, htmlFor: "awiki-tenant-name", children: props.t('tenantName') }), _jsx("input", { id: "awiki-tenant-name", className: css.input, value: name, disabled: disabled, maxLength: 80, onChange: event => { setName(event.target.value); } }), _jsx("label", { className: css.label, htmlFor: "awiki-tenant-domain", children: props.t('tenantDomain') }), _jsx("input", { id: "awiki-tenant-domain", className: css.input, value: domain, disabled: disabled, spellCheck: false, autoCapitalize: "none", autoCorrect: "off", inputMode: "url", placeholder: "tenant.example", onChange: event => { setDomain(event.target.value); } }), _jsx("p", { className: css.description, children: props.t('tenantDomainHelp') }), _jsx("div", { className: css.actions, children: _jsx(Button, { type: "submit", disabled: disabled || name.trim() === '' || domain.trim() === '', children: props.t('tenantCreate') }) })] }), _jsx("p", { className: `${css.status} ${status?.kind === 'error' ? css.error : ''}`, role: "status", children: status?.text ?? (snapshot.value.switching ? props.t('tenantSwitching') : '') })] }));
|
|
85
|
+
}
|
|
86
|
+
function TenantRow(props) {
|
|
87
|
+
const [draftName, setDraftName] = useState(props.tenant.displayName);
|
|
88
|
+
const run = async (operation, success) => {
|
|
89
|
+
props.setPending(true);
|
|
90
|
+
props.setStatus(null);
|
|
66
91
|
try {
|
|
67
|
-
await
|
|
68
|
-
|
|
69
|
-
setStatus({ kind: 'saved', text: `${t('saved')} ${t('restartNotice')}` });
|
|
92
|
+
await operation();
|
|
93
|
+
props.setStatus({ kind: 'saved', text: success });
|
|
70
94
|
}
|
|
71
|
-
catch {
|
|
72
|
-
setStatus({ kind: 'error', text: t('
|
|
95
|
+
catch (error) {
|
|
96
|
+
props.setStatus({ kind: 'error', text: error instanceof Error ? error.message : props.t('tenantChangeFailed') });
|
|
73
97
|
}
|
|
74
98
|
finally {
|
|
75
|
-
setPending(false);
|
|
99
|
+
props.setPending(false);
|
|
76
100
|
}
|
|
77
101
|
};
|
|
78
|
-
const
|
|
102
|
+
const current = props.tenant.lifecycle === 'active';
|
|
103
|
+
const localizedDisplayName = props.tenant.displayNames === undefined
|
|
104
|
+
? props.tenant.displayName
|
|
105
|
+
: (typeof document !== 'undefined' && document.documentElement.lang.toLowerCase().startsWith('zh')
|
|
106
|
+
? props.tenant.displayNames['zh-CN']
|
|
107
|
+
: props.tenant.displayNames.en);
|
|
108
|
+
return (_jsxs("article", { className: `${css.tenantRow} ${current ? css.tenantCurrent : ''}`, children: [_jsxs("div", { className: css.tenantCopy, children: [props.tenant.kind === 'custom' && !props.managementDisabled ? _jsx("input", { "aria-label": props.t('tenantName'), className: css.inlineInput, value: draftName, disabled: props.disabled, maxLength: 80, onChange: event => { setDraftName(event.target.value); } }) : _jsx("strong", { children: localizedDisplayName }), _jsx("span", { className: css.tenantMeta, children: props.tenant.didHost }), _jsxs("span", { className: css.tenantBadges, children: [_jsx("span", { children: props.tenant.kind === 'built_in' ? props.t('tenantOfficial') : props.t('tenantCustom') }), current && _jsx("span", { children: props.t('tenantCurrent') })] })] }), _jsxs("div", { className: css.actions, children: [!current && _jsx(Button, { type: "button", disabled: props.disabled, onClick: () => { void run(() => props.switchTenant(props.tenant.tenantId), props.t('tenantSwitched')); }, children: props.t('tenantSwitch') }), props.tenant.kind === 'custom' && !props.managementDisabled && _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: props.disabled || draftName.trim() === '' || draftName === props.tenant.displayName, onClick: () => { void run(() => props.renameTenant(props.tenant.tenantId, draftName.trim()), props.t('tenantRenamed')); }, children: props.t('save') }), !current && _jsx(Button, { type: "button", variant: "outline", disabled: props.disabled, onClick: () => { void run(() => props.archiveTenant(props.tenant.tenantId), props.t('tenantArchived')); }, children: props.t('tenantArchive') })] })] })] }));
|
|
109
|
+
}
|
|
110
|
+
function LocalDataPanel(props) {
|
|
111
|
+
const [clearOpen, setClearOpen] = useState(false);
|
|
112
|
+
const [clearDraft, setClearDraft] = useState('');
|
|
113
|
+
const [clearing, setClearing] = useState(false);
|
|
114
|
+
const [status, setStatus] = useState(null);
|
|
115
|
+
const close = () => {
|
|
79
116
|
if (clearing)
|
|
80
117
|
return;
|
|
81
118
|
setClearOpen(false);
|
|
82
119
|
setClearDraft('');
|
|
83
120
|
};
|
|
84
|
-
const
|
|
85
|
-
if (clearDraft !== t('clearConfirmationPhrase'))
|
|
121
|
+
const clear = async () => {
|
|
122
|
+
if (props.disabled || clearDraft !== props.t('clearConfirmationPhrase'))
|
|
86
123
|
return;
|
|
87
124
|
setClearing(true);
|
|
88
|
-
|
|
125
|
+
setStatus(null);
|
|
89
126
|
try {
|
|
90
127
|
await props.clearLocalData();
|
|
91
128
|
setClearOpen(false);
|
|
92
129
|
setClearDraft('');
|
|
93
|
-
|
|
130
|
+
setStatus({ kind: 'saved', text: props.t('clearSucceeded') });
|
|
94
131
|
}
|
|
95
132
|
catch {
|
|
96
|
-
|
|
133
|
+
setStatus({ kind: 'error', text: props.t('clearFailed') });
|
|
97
134
|
}
|
|
98
135
|
finally {
|
|
99
136
|
setClearing(false);
|
|
100
137
|
}
|
|
101
138
|
};
|
|
102
|
-
return
|
|
103
|
-
? _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: t('unavailable') })
|
|
104
|
-
: !settings.writable
|
|
105
|
-
? _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: t('readOnly') })
|
|
106
|
-
: _jsx("p", { className: `${css.status} ${status?.kind === 'error' ? css.error : ''}`, role: "status", children: status?.text ?? '' })] }), _jsx("p", { className: css.notice, children: t('identityNotice') }), _jsxs("section", { className: css.dangerZone, "aria-labelledby": "awiki-danger-zone-title", children: [_jsxs("div", { className: css.dangerCopy, children: [_jsx("h3", { id: "awiki-danger-zone-title", className: css.dangerTitle, children: t('dangerTitle') }), _jsx("p", { className: css.dangerDescription, children: t('dangerDescription') })] }), _jsx(Button, { type: "button", variant: "outline", className: css.dangerButton, disabled: unavailable || clearing, onClick: () => { setClearStatus(null); setClearOpen(true); }, children: t('clearLocalData') }), clearStatus?.kind === 'saved' && _jsx("p", { className: css.status, role: "status", children: clearStatus.text })] }), _jsxs(Modal, { open: clearOpen, onClose: closeClear, title: t('clearDialogTitle'), closeLabel: t('cancel'), description: t('clearDialogDescription'), className: css.clearDialog ?? '', footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: clearing, onClick: closeClear, children: t('cancel') }), _jsx(Button, { type: "button", variant: "outline", className: css.clearConfirmButton, disabled: clearing || clearDraft !== t('clearConfirmationPhrase'), onClick: () => { void clearLocalData(); }, children: clearing ? t('clearing') : t('clearConfirm') })] }), children: [_jsxs("div", { className: css.clearWarning, children: [_jsx("p", { children: t('clearScope') }), _jsx("p", { children: t('clearRemoteNotice') })] }), _jsx("label", { className: css.confirmLabel, htmlFor: "awiki-clear-confirmation", children: t('clearConfirmationLabel', { phrase: t('clearConfirmationPhrase') }) }), _jsx("input", { id: "awiki-clear-confirmation", className: css.input, value: clearDraft, disabled: clearing, autoComplete: "off", spellCheck: false, autoFocus: true, onChange: (event) => { setClearDraft(event.target.value); } }), clearStatus?.kind === 'error' && _jsx("p", { className: `${css.status} ${css.error}`, role: "alert", children: clearStatus.text })] })] }));
|
|
139
|
+
return _jsxs("div", { className: css.panel, children: [_jsx("p", { className: css.notice, children: props.t('localDataNotice') }), _jsxs("section", { className: css.dangerZone, "aria-labelledby": "awiki-danger-zone-title", children: [_jsxs("div", { className: css.dangerCopy, children: [_jsx("h3", { id: "awiki-danger-zone-title", className: css.dangerTitle, children: props.t('dangerTitle') }), _jsx("p", { className: css.dangerDescription, children: props.t('dangerDescription') })] }), _jsx(Button, { type: "button", variant: "outline", className: css.dangerButton, disabled: clearing || props.disabled, onClick: () => { setStatus(null); setClearOpen(true); }, children: props.t('clearLocalData') }), _jsx("p", { className: `${css.status} ${status?.kind === 'error' ? css.error : ''}`, role: "status", children: status?.text ?? '' })] }), _jsxs(Modal, { open: clearOpen, onClose: close, title: props.t('clearDialogTitle'), closeLabel: props.t('cancel'), description: props.t('clearDialogDescription'), className: css.clearDialog ?? '', footer: _jsxs(_Fragment, { children: [_jsx(Button, { type: "button", variant: "outline", disabled: clearing, onClick: close, children: props.t('cancel') }), _jsx(Button, { type: "button", variant: "outline", className: css.clearConfirmButton, disabled: clearing || clearDraft !== props.t('clearConfirmationPhrase'), onClick: () => { void clear(); }, children: clearing ? props.t('clearing') : props.t('clearConfirm') })] }), children: [_jsxs("div", { className: css.clearWarning, children: [_jsx("p", { children: props.t('clearScope') }), _jsx("p", { children: props.t('clearRemoteNotice') })] }), _jsx("label", { className: css.confirmLabel, htmlFor: "awiki-clear-confirmation", children: props.t('clearConfirmationLabel', { phrase: props.t('clearConfirmationPhrase') }) }), _jsx("input", { id: "awiki-clear-confirmation", className: css.input, value: clearDraft, disabled: clearing, autoComplete: "off", spellCheck: false, autoFocus: true, onChange: event => { setClearDraft(event.target.value); } })] })] });
|
|
107
140
|
}
|
|
108
|
-
export { hasDomainOverride };
|
|
109
141
|
//# sourceMappingURL=AwikiSettingsSection.js.map
|