summaryrefslogtreecommitdiff
path: root/packages/exchange-backoffice-ui/src/handlers/InputFile.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'packages/exchange-backoffice-ui/src/handlers/InputFile.tsx')
-rw-r--r--packages/exchange-backoffice-ui/src/handlers/InputFile.tsx19
1 files changed, 9 insertions, 10 deletions
diff --git a/packages/exchange-backoffice-ui/src/handlers/InputFile.tsx b/packages/exchange-backoffice-ui/src/handlers/InputFile.tsx
index 37216c982..0d89a98a3 100644
--- a/packages/exchange-backoffice-ui/src/handlers/InputFile.tsx
+++ b/packages/exchange-backoffice-ui/src/handlers/InputFile.tsx
@@ -1,13 +1,9 @@
import { Fragment, VNode, h } from "preact";
-import {
- InputLine,
- LabelWithTooltipMaybeRequired,
- UIFormProps,
-} from "./InputLine.js";
+import { LabelWithTooltipMaybeRequired, UIFormProps } from "./InputLine.js";
import { useField } from "./useField.js";
-export function InputFile(
- props: { maxBites: number; accept?: string } & UIFormProps<string>,
+export function InputFile<T extends object, K extends keyof T>(
+ props: { maxBites: number; accept?: string } & UIFormProps<T, K>,
): VNode {
const {
name,
@@ -19,7 +15,7 @@ export function InputFile(
maxBites,
accept,
} = props;
- const { value, onChange, state } = useField<{ [s: string]: string }>(name);
+ const { value, onChange, state } = useField<T, K>(name);
if (state.hidden) {
return <div />;
@@ -31,7 +27,7 @@ export function InputFile(
tooltip={tooltip}
required={required}
/>
- {!value || !value.startsWith("data:image/") ? (
+ {!value || !(value as string).startsWith("data:image/") ? (
<div class="mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 py-1">
<div class="text-center">
<svg
@@ -84,7 +80,10 @@ export function InputFile(
</div>
) : (
<div class="mt-2 flex justify-center rounded-lg border border-dashed border-gray-900/25 relative">
- <img src={value} class=" h-24 w-full object-cover relative" />
+ <img
+ src={value as string}
+ class=" h-24 w-full object-cover relative"
+ />
<div
class="opacity-0 hover:opacity-70 duration-300 absolute rounded-lg border inset-0 z-10 flex justify-center text-xl items-center bg-black text-white cursor-pointer "