import { Alert, Button, Divider, Link, Textarea } from "@mui/joy"; import { useState } from "react"; import toast from "react-hot-toast"; import Icon from "@/components/Icon"; import SubscriptionFAQ from "@/components/SubscriptionFAQ"; import { subscriptionServiceClient } from "@/grpcweb"; import { stringifyPlanType } from "@/stores/v1/subscription"; import useWorkspaceStore from "@/stores/v1/workspace"; import { PlanType } from "@/types/proto/api/v1/subscription_service"; import { Role } from "@/types/proto/api/v1/user_service"; import useUserStore from "../stores/v1/user"; const SubscriptionSetting: React.FC = () => { const workspaceStore = useWorkspaceStore(); const currentUser = useUserStore().getCurrentUser(); const [licenseKey, setLicenseKey] = useState(""); const isAdmin = currentUser.role === Role.ADMIN; const profile = workspaceStore.profile; const handleUpdateLicenseKey = async () => { if (!isAdmin) { toast.error("Only admin can upload license key"); return; } try { const { subscription } = await subscriptionServiceClient.updateSubscription({ licenseKey, }); if (subscription) { toast.success(`Welcome to Slash-${stringifyPlanType(subscription.plan)}🎉`); } } catch (error: any) { toast.error(error.details); } setLicenseKey(""); await workspaceStore.fetchWorkspaceProfile(); }; return (

Subscription

Current plan: {stringifyPlanType(profile.plan)}