// routes/tenant/payment-methods/index.tsx import { define } from "../../../utils.ts"; import { page } from "fresh"; import { PaymentMethod } from "../../../services/paymentService.ts"; import PaymentMethodsList from "../../../islands/PaymentMethodsList.tsx"; interface PaymentMethodsPageData { paymentMethods?: PaymentMethod[]; error?: string; } export const handler = define.handlers({ async GET(ctx) { const { user_id } = ctx.state.data; if (!user_id) { return new Response("", { status: 302, headers: { Location: "/auth/login" }, }); } try { const response = await fetch("/api/retrieve/payment_methods", { headers: { "Cookie": ctx.req.headers.get("Cookie") || "", }, }); const data = await response.json(); if (!data.success) { console.error("Failed to fetch payment methods:", data.error); return page({ error: "Failed to load payment methods", }); } return page({ paymentMethods: data.payment_methods || [], }); } catch (error) { console.error("Error loading payment methods:", error); return page({ error: "Failed to load payment methods", }); } }, }); export default define.page(function PaymentMethodsPage({ data, }: { data: PaymentMethodsPageData; }) { const { paymentMethods, error } = data as PaymentMethodsPageData; if (error) { return (

Error

{error}

); } return (

Payment Methods

Manage your payment methods for rent payments.

); });