mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-05 00:20:22 +00:00
refactor(imessage): share setup wizard base
This commit is contained in:
@@ -155,9 +155,18 @@ export const imessageSetupAdapter: ChannelSetupAdapter = {
|
||||
},
|
||||
};
|
||||
|
||||
export function createIMessageSetupWizardProxy(
|
||||
loadWizard: () => Promise<{ imessageSetupWizard: ChannelSetupWizard }>,
|
||||
) {
|
||||
type IMessageSetupWizardHandlers = {
|
||||
resolveStatusLines: NonNullable<ChannelSetupWizard["status"]>["resolveStatusLines"];
|
||||
resolveSelectionHint: NonNullable<ChannelSetupWizard["status"]>["resolveSelectionHint"];
|
||||
resolveQuickstartScore: NonNullable<ChannelSetupWizard["status"]>["resolveQuickstartScore"];
|
||||
shouldPromptCliPath: NonNullable<
|
||||
NonNullable<ChannelSetupWizard["textInputs"]>[number]["shouldPrompt"]
|
||||
>;
|
||||
};
|
||||
|
||||
export function createIMessageSetupWizardBase(
|
||||
handlers: IMessageSetupWizardHandlers,
|
||||
): ChannelSetupWizard {
|
||||
const imessageDmPolicy: ChannelSetupDmPolicy = {
|
||||
label: "iMessage",
|
||||
channel,
|
||||
@@ -193,12 +202,9 @@ export function createIMessageSetupWizardProxy(
|
||||
account.config.region,
|
||||
);
|
||||
}),
|
||||
resolveStatusLines: async (params) =>
|
||||
(await loadWizard()).imessageSetupWizard.status.resolveStatusLines?.(params) ?? [],
|
||||
resolveSelectionHint: async (params) =>
|
||||
await (await loadWizard()).imessageSetupWizard.status.resolveSelectionHint?.(params),
|
||||
resolveQuickstartScore: async (params) =>
|
||||
await (await loadWizard()).imessageSetupWizard.status.resolveQuickstartScore?.(params),
|
||||
resolveStatusLines: handlers.resolveStatusLines,
|
||||
resolveSelectionHint: handlers.resolveSelectionHint,
|
||||
resolveQuickstartScore: handlers.resolveQuickstartScore,
|
||||
},
|
||||
credentials: [],
|
||||
textInputs: [
|
||||
@@ -209,12 +215,7 @@ export function createIMessageSetupWizardProxy(
|
||||
resolveIMessageAccount({ cfg, accountId }).config.cliPath ?? "imsg",
|
||||
currentValue: ({ cfg, accountId }) =>
|
||||
resolveIMessageAccount({ cfg, accountId }).config.cliPath ?? "imsg",
|
||||
shouldPrompt: async (params) => {
|
||||
const input = (await loadWizard()).imessageSetupWizard.textInputs?.find(
|
||||
(entry) => entry.inputKey === "cliPath",
|
||||
);
|
||||
return (await input?.shouldPrompt?.(params)) ?? false;
|
||||
},
|
||||
shouldPrompt: handlers.shouldPromptCliPath,
|
||||
confirmCurrentValue: false,
|
||||
applyCurrentValue: true,
|
||||
helpTitle: "iMessage",
|
||||
@@ -235,3 +236,22 @@ export function createIMessageSetupWizardProxy(
|
||||
disable: (cfg: OpenClawConfig) => setSetupChannelEnabled(cfg, channel, false),
|
||||
} satisfies ChannelSetupWizard;
|
||||
}
|
||||
|
||||
export function createIMessageSetupWizardProxy(
|
||||
loadWizard: () => Promise<{ imessageSetupWizard: ChannelSetupWizard }>,
|
||||
) {
|
||||
return createIMessageSetupWizardBase({
|
||||
resolveStatusLines: async (params) =>
|
||||
(await loadWizard()).imessageSetupWizard.status.resolveStatusLines?.(params) ?? [],
|
||||
resolveSelectionHint: async (params) =>
|
||||
await (await loadWizard()).imessageSetupWizard.status.resolveSelectionHint?.(params),
|
||||
resolveQuickstartScore: async (params) =>
|
||||
await (await loadWizard()).imessageSetupWizard.status.resolveQuickstartScore?.(params),
|
||||
shouldPromptCliPath: async (params) => {
|
||||
const input = (await loadWizard()).imessageSetupWizard.textInputs?.find(
|
||||
(entry) => entry.inputKey === "cliPath",
|
||||
);
|
||||
return (await input?.shouldPrompt?.(params)) ?? false;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user