summaryrefslogtreecommitdiff
path: root/packages/web-util/src/forms/InputInteger.tsx
blob: a6a02ad433b8cdcaa097f270909deda3ebf72bcd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import { VNode, h } from "preact";
import { InputLine } from "./InputLine.js";
import { UIFormProps } from "./FormProvider.js";

export function InputInteger<T extends object, K extends keyof T>(
  props: UIFormProps<T, K>,
): VNode {
  return (
    <InputLine
      type="number"
      converter={{
        //@ts-ignore
        fromStringUI: (v): number => {
          return !v ? 0 : Number.parseInt(v, 10);
        },
        //@ts-ignore
        toStringUI: (v?: number): string => {
          return v === undefined ? "" : String(v);
        },
      }}
      {...props}
    />
  );
}