"use client"; import React, { useMemo, useState } from 'react'; import PageLayout from '../../../components/PageLayout'; import useCoffeeManagement from '../hooks/useCoffeeManagement'; import { PhotoIcon } from '@heroicons/react/24/solid'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; export default function CreateSubscriptionPage() { const { createProduct } = useCoffeeManagement(); const router = useRouter(); const [error, setError] = useState(null); // form state const [title, setTitle] = useState(''); const [description, setDescription] = useState(''); const [price, setPrice] = useState(0); const [state, setState] = useState<'available'|'unavailable'>('available'); const [pictureFile, setPictureFile] = useState(undefined); const [currency, setCurrency] = useState('EUR'); const [isFeatured, setIsFeatured] = useState(false); // Fixed billing defaults (locked: month / 1) const billingInterval: 'month' = 'month'; const intervalCount: number = 1; const onCreate = async (e: React.FormEvent) => { e.preventDefault(); setError(null); try { await createProduct({ title, description, price, currency, is_featured: isFeatured, state: state === 'available', pictureFile }); router.push('/admin/subscriptions'); } catch (e: any) { setError(e.message || 'Failed to create'); } }; return (
{/* Header */}

Create Subscription

Add a new product or subscription plan.

Back to list
{/* Title */}
setTitle(e.target.value)} />
{/* Price */}
setPrice(Number(e.target.value))} />
{/* Currency */}
setCurrency(e.target.value.toUpperCase().slice(0,3))} />
{/* Featured */}
setIsFeatured(e.target.checked)} />
{/* Fixed Billing (Locked) */}

Fixed monthly billing (interval count = 1). These settings are locked.

{/* Availability */}
{/* Description */}