@cloud411716/fancy-webnovel 1.0.38 → 1.0.40

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.
@@ -103,17 +103,22 @@ export function apply(ctx) {
103
103
  }
104
104
 
105
105
  // ---------- confirm ----------
106
- const confirm = await ctx.userQuestions.ask({
107
- questions: [{
108
- id: 'confirm',
109
- question: bootstrap.notify({ type: 'confirm', projectRoot }),
110
- detail: projectRoot,
111
- hideCustomInput: true,
112
- options: bootstrap.confirmOptions(),
113
- }],
114
- agent: invocation.agent,
115
- signal,
116
- });
106
+ let confirm;
107
+ try {
108
+ confirm = await ctx.userQuestions.ask({
109
+ questions: [{
110
+ id: 'confirm',
111
+ question: bootstrap.notify({ type: 'confirm', projectRoot }),
112
+ detail: projectRoot,
113
+ hideCustomInput: true,
114
+ options: bootstrap.confirmOptions(),
115
+ }],
116
+ agent: invocation.agent,
117
+ signal,
118
+ });
119
+ } catch {
120
+ return notify(session, 'error', bootstrap.notify({ type: 'cancelled' }));
121
+ }
117
122
  const ans = confirm.answers[0];
118
123
  const chosen = ans?.selected?.[0] ?? ans?.custom;
119
124
  if (chosen !== '确认创建') {
@@ -55,7 +55,7 @@ const scan = {
55
55
  detail: opts.map(o => o.label).join('、'),
56
56
  hideCustomInput: true,
57
57
  multiSelect: true,
58
- options: opts,
58
+ options: [...opts, { id: 'cancel', label: '取消' }],
59
59
  };
60
60
  },
61
61
 
@@ -173,6 +173,11 @@ export function apply(ctx) {
173
173
  const selected = rankResult.answers[0]?.selected ?? [];
174
174
  const custom = rankResult.answers[0]?.custom?.trim();
175
175
 
176
+ // "取消" is an explicit option — treat it as cancelled (like bootstrap confirm)
177
+ if (selected.includes('取消')) {
178
+ return notify(session, 'error', scan.notify({ type: 'cancelled' }));
179
+ }
180
+
176
181
  const rawChoices = selected.length > 0 ? selected : (custom ? [custom] : []);
177
182
  if (rawChoices.length === 0) {
178
183
  return notify(session, 'error', scan.notify({ type: 'cancelled' }));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloud411716/fancy-webnovel",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "type": "module",
5
5
  "main": "index.js",
6
6
  "exports": {