aboutsummaryrefslogtreecommitdiff
path: root/packages/aml-backoffice-ui/src/handlers/InputAbsoluteTime.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/aml-backoffice-ui/src/handlers/InputAbsoluteTime.tsx')
-rw-r--r--packages/aml-backoffice-ui/src/handlers/InputAbsoluteTime.tsx77
1 files changed, 0 insertions, 77 deletions
diff --git a/packages/aml-backoffice-ui/src/handlers/InputAbsoluteTime.tsx b/packages/aml-backoffice-ui/src/handlers/InputAbsoluteTime.tsx
deleted file mode 100644
index 0e03c5595..000000000
--- a/packages/aml-backoffice-ui/src/handlers/InputAbsoluteTime.tsx
+++ /dev/null
@@ -1,77 +0,0 @@
-import { AbsoluteTime } from "@gnu-taler/taler-util";
-import { InputLine } from "./InputLine.js";
-import { Fragment, VNode, h } from "preact";
-import { format, parse } from "date-fns";
-import { Dialog } from "./Dialog.js";
-import { Calendar } from "./Calendar.js";
-import { useState } from "preact/hooks";
-import { useField } from "./useField.js";
-import { UIFormProps } from "./FormProvider.js";
-import { TimePicker } from "./TimePicker.js";
-
-export function InputAbsoluteTime<T extends object, K extends keyof T>(
- props: { pattern?: string } & UIFormProps<T, K>,
-): VNode {
- const pattern = props.pattern ?? "dd/MM/yyyy";
- const [open, setOpen] = useState(true)
- const { value, onChange } = useField<T, K>(props.name);
- return (
- <Fragment>
-
- <InputLine<T, K>
- type="text"
- after={{
- type: "button",
- onClick: () => {
- setOpen(true)
- },
- // icon: <CalendarIcon class="h-6 w-6" />,
- children: (
- <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="w-6 h-6">
- <path stroke-linecap="round" stroke-linejoin="round" d="M6.75 3v2.25M17.25 3v2.25M3 18.75V7.5a2.25 2.25 0 012.25-2.25h13.5A2.25 2.25 0 0121 7.5v11.25m-18 0A2.25 2.25 0 005.25 21h13.5A2.25 2.25 0 0021 18.75m-18 0v-7.5A2.25 2.25 0 015.25 9h13.5A2.25 2.25 0 0121 11.25v7.5" />
- </svg>)
- }}
- converter={{
- //@ts-ignore
- fromStringUI: (v): AbsoluteTime | undefined => {
- if (!v) return undefined;
- try {
- const t_ms = parse(v, pattern, Date.now()).getTime();
- return AbsoluteTime.fromMilliseconds(t_ms);
- } catch (e) {
- return undefined;
- }
- },
- //@ts-ignore
- toStringUI: (v: AbsoluteTime | undefined) => {
- return !v || !v.t_ms
- ? undefined
- : v.t_ms === "never"
- ? "never"
- : format(v.t_ms, pattern);
- },
- }}
- {...props}
- />
- {/* {open &&
- <Dialog onClose={() => setOpen(false)}>
- <Calendar value={value as AbsoluteTime ?? AbsoluteTime.now()}
- onChange={(v) => {
- onChange(v as any)
- setOpen(false)
- }} />
- </Dialog>
- } */}
- {open &&
- <Dialog onClose={() => setOpen(false)} >
- <TimePicker value={value as AbsoluteTime ?? AbsoluteTime.now()}
- onChange={(v) => {
- onChange(v as any)
- }}
- onConfirm={() => {
- setOpen(false)
- }} />
- </Dialog>}
- </Fragment>
- );
-}