/*
This file is part of GNU Taler
(C) 2021-2023 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/lib/index.browser";
import { format } from "date-fns";
import { h, VNode } from "preact";
import { useState } from "preact/hooks";
import { DatePicker } from "../../../../components/picker/DatePicker.js";
import { MerchantBackend, WithId } from "../../../../declaration.js";
import { CardTable } from "./Table.js";
export interface ListPageProps {
errorOrderId: string | undefined;
onShowAll: () => void;
onShowPaid: () => void;
onShowRefunded: () => void;
onShowNotWired: () => void;
onCopyURL: (id: string) => void;
isAllActive: string;
isPaidActive: string;
isRefundedActive: string;
isNotWiredActive: string;
jumpToDate?: Date;
onSelectDate: (date?: Date) => void;
orders: (MerchantBackend.Orders.OrderHistoryEntry & WithId)[];
onLoadMoreBefore?: () => void;
hasMoreBefore?: boolean;
hasMoreAfter?: boolean;
onLoadMoreAfter?: () => void;
onSelectOrder: (o: MerchantBackend.Orders.OrderHistoryEntry & WithId) => void;
onRefundOrder: (o: MerchantBackend.Orders.OrderHistoryEntry & WithId) => void;
onSearchOrderById: (id: string) => void;
onCreate: () => void;
}
export function ListPage({
orders,
errorOrderId,
isAllActive,
onSelectOrder,
onRefundOrder,
onSearchOrderById,
jumpToDate,
onCopyURL,
onShowAll,
onShowPaid,
onShowRefunded,
onShowNotWired,
onSelectDate,
isPaidActive,
isRefundedActive,
isNotWiredActive,
onCreate,
}: ListPageProps): VNode {
const { i18n } = useTranslationContext();
const dateTooltip = i18n.str`select date to show nearby orders`;
const [pickDate, setPickDate] = useState(false);
const [orderId, setOrderId] = useState("");
return (