/*
This file is part of GNU Taler
(C) 2021-2024 Taler Systems S.A.
GNU Taler is free software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 3, or (at your option) any later version.
GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
GNU Taler; see the file COPYING. If not, see
*/
/**
*
* @author Sebastian Javier Marchano (sebasjm)
*/
import { useTranslationContext } from "@gnu-taler/web-util/browser";
import { h, VNode } from "preact";
import { useState } from "preact/hooks";
import emptyImage from "../../assets/empty.png";
import { FormErrors, FormProvider } from "./FormProvider.js";
import { InputWithAddon } from "./InputWithAddon.js";
import { TranslatedString } from "@gnu-taler/taler-util";
type Entity = {
id: string,
description: string;
image?: string;
extra?: string;
};
export interface Props {
selected?: T;
onChange: (p?: T) => void;
label: TranslatedString;
list: T[];
withImage?: boolean;
}
interface Search {
name: string;
}
export function InputSearchOnList({
selected,
onChange,
label,
list,
withImage,
}: Props): VNode {
const [nameForm, setNameForm] = useState>({
name: "",
});
const errors: FormErrors = {
name: undefined,
};
const { i18n } = useTranslationContext();
if (selected) {
return (
{withImage &&
);
}
interface DropdownListProps {
name?: string;
onSelect: (p: T) => void;
list: T[];
withImage: boolean;
}
function DropdownList({ name, onSelect, list, withImage }: DropdownListProps) {
const { i18n } = useTranslationContext();
if (!name) {
/* FIXME
this BR is added to occupy the space that will be added when the
dropdown appears
*/
return (