summaryrefslogtreecommitdiff
path: root/packages/frontend/src/utility/form.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/utility/form.ts')
-rw-r--r--packages/frontend/src/utility/form.ts10
1 files changed, 10 insertions, 0 deletions
diff --git a/packages/frontend/src/utility/form.ts b/packages/frontend/src/utility/form.ts
index cb4a227f67..fe89333285 100644
--- a/packages/frontend/src/utility/form.ts
+++ b/packages/frontend/src/utility/form.ts
@@ -25,6 +25,7 @@ export interface StringFormItem extends FormItemBase {
required?: boolean;
multiline?: boolean;
treatAsMfm?: boolean;
+ manualSave?: boolean;
}
export interface NumberFormItem extends FormItemBase {
@@ -33,6 +34,7 @@ export interface NumberFormItem extends FormItemBase {
description?: string;
required?: boolean;
step?: number;
+ manualSave?: boolean;
}
export interface BooleanFormItem extends FormItemBase {
@@ -145,3 +147,11 @@ type GetItemType<Item extends FormItem> =
export type GetFormResultType<F extends Form> = {
[P in keyof F]: GetItemType<F[P]>;
};
+
+export function getDefaultFormValues<F extends FormWithDefault>(form: F): GetFormResultType<F> {
+ const result = {} as GetFormResultType<F>;
+ for (const key of Object.keys(form) as (keyof F)[]) {
+ result[key] = form[key].default as GetItemType<F[typeof key]>;
+ }
+ return result;
+}