diff --git a/packages/app/src/Pages/subscribe/SubscriptionCard.tsx b/packages/app/src/Pages/subscribe/SubscriptionCard.tsx index 8c0519f1..b0a5b7cc 100644 --- a/packages/app/src/Pages/subscribe/SubscriptionCard.tsx +++ b/packages/app/src/Pages/subscribe/SubscriptionCard.tsx @@ -26,11 +26,12 @@ export default function SubscriptionCard({ sub }: { sub: Subscription }) { const [invoice, setInvoice] = useState(""); const [error, setError] = useState(); + const [months, setMonths] = useState(1); - async function renew(id: string) { + async function renew(id: string, months: number) { const api = new SnortApi(undefined, publisher); try { - const rsp = await api.renewSubscription(id); + const rsp = await api.renewSubscription(id, months); setInvoice(rsp.pr); } catch (e) { if (e instanceof SubscriptionError) { @@ -115,10 +116,19 @@ export default function SubscriptionCard({ sub }: { sub: Subscription }) { )} {(isExpired || isNew) && ( -
- renew(sub.id)}> - {isExpired ? : } - +
+
+   + renew(sub.id, months)}> + {isExpired ? : } + +
+
+ + + + setMonths(Number(e.target.value))} min={1} /> +
)} {isPaid && subFeatures()} diff --git a/packages/app/src/SnortApi.ts b/packages/app/src/SnortApi.ts index a94ad9c7..31a2f54b 100644 --- a/packages/app/src/SnortApi.ts +++ b/packages/app/src/SnortApi.ts @@ -72,8 +72,8 @@ export default class SnortApi { return this.#getJsonAuthd(`api/v1/subscription?type=${type}`, "PUT"); } - renewSubscription(id: string) { - return this.#getJsonAuthd(`api/v1/subscription/${id}/renew`, "GET"); + renewSubscription(id: string, months = 1) { + return this.#getJsonAuthd(`api/v1/subscription/${id}/renew?months=${months}`, "GET"); } listSubscriptions() {