34 lines
852 B
JavaScript
34 lines
852 B
JavaScript
/** Guest TUI form. Raw JS: `run(ctx)` only. */
|
|
|
|
async function run(ctx) {
|
|
if (!ctx.tui || !ctx.tui.isTTY()) {
|
|
ctx.console.error('tui-form: needs a TTY')
|
|
ctx.exitCode = 1
|
|
return
|
|
}
|
|
const values = await ctx.tui.form.run(
|
|
ctx.tui.form.create({
|
|
title: 'Create account',
|
|
fields: [
|
|
ctx.tui.form.text({ name: 'user', label: 'User', required: true }),
|
|
ctx.tui.form.text({
|
|
name: 'pass',
|
|
label: 'Pass',
|
|
echoMode: 'password'
|
|
}),
|
|
ctx.tui.form.select({
|
|
name: 'plan',
|
|
label: 'Plan',
|
|
options: ['free', 'pro']
|
|
}),
|
|
ctx.tui.form.confirm({ name: 'tos', label: 'Accept terms', required: true })
|
|
]
|
|
})
|
|
)
|
|
if (values == null) {
|
|
ctx.console.log('cancelled')
|
|
return
|
|
}
|
|
ctx.console.log(JSON.stringify(values))
|
|
}
|