Page MenuHomeSealhub

form-control.ts
No OneTemporary

form-control.ts

import Router from "@koa/router";
import { Context } from "koa";
import { FlatTemplatable } from "tempstream";
import { FormMessage, FormData } from "../form-types.js";
import type { Form } from "../form.js";
export type FieldMessages<Fieldnames extends string = string> = Record<
Fieldnames,
{ type: "error" | "info"; message: string }
>;
export class FormControlContext {
constructor(
public ctx: Context,
public data: FormData,
public messages: FormMessage[],
public field_name_prefix: string,
public form_id: string,
public validate: boolean
) {}
}
export abstract class FormControl {
abstract render(
fctx: FormControlContext
): FlatTemplatable | Promise<FlatTemplatable>;
abstract role: "input" | "decoration" | "messages" | "submit";
// eslint-disable-next-line @typescript-eslint/no-explicit-any
mount(_router: Router, _form: Form<any, any>) {}
}

File Metadata

Mime Type
text/x-java
Expires
Sun, Nov 2, 18:53 (1 d, 9 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1028695
Default Alt Text
form-control.ts (882 B)

Event Timeline