"use client" import Link from "next/link" import { AutomationTabMasonry } from "@/components/gmail/settings/automation/automation-tab-masonry" import { SettingsCard, SettingsField, SettingsGrid, } from "@/components/settings/settings-kit" import { OrgSettingsSection } from "@/components/admin/settings/org-settings-form" import { useOrgSettingsStore } from "@/lib/admin-settings/org-settings-store" import { Button } from "@/components/ui/button" import { InputGroup, InputGroupAddon, InputGroupInput, InputGroupText, } from "@/components/ui/input-group" import { cn } from "@/lib/utils" export function QuotasSection() { const storageQuotas = useOrgSettingsStore((s) => s.storageQuotas) const setStorageQuotas = useOrgSettingsStore((s) => s.setStorageQuotas) const usageQuotas = useOrgSettingsStore((s) => s.usageQuotas) const setUsageQuotas = useOrgSettingsStore((s) => s.setUsageQuotas) return ( setStorageQuotas({ default_mail_gib: v })} /> setStorageQuotas({ default_drive_gib: v })} /> setStorageQuotas({ default_photos_gib: v })} /> setStorageQuotas({ warn_threshold_pct: v })} /> setUsageQuotas({ llm_daily_cost_limit_eur: v })} /> setUsageQuotas({ llm_monthly_cost_limit_eur: v })} /> setUsageQuotas({ llm_cost_warn_threshold_pct: v })} /> setUsageQuotas({ search_requests_per_day: v })} /> setUsageQuotas({ max_api_tokens_per_user: v })} /> setUsageQuotas({ max_webhooks_per_user: v })} /> ) } function QuotaInput({ label, unit, value, onChange, }: { label: string unit: string value: number onChange: (v: number) => void }) { return ( ) } function SettingsNumberField({ label, unit, value, onChange, min = 0, max, step, fallback = 0, className, }: { label: string unit: string value: number onChange: (v: number) => void min?: number max?: number step?: number fallback?: number className?: string }) { return ( onChange(Number(e.target.value) || fallback)} /> {unit} ) }