(null)
const handleDelete = async (id: string) => {
if (!confirm(t('admin.users.confirmDelete'))) return
@@ -103,6 +104,27 @@ export function UserList({ initialUsers }: { initialUsers: any[] }) {
}
}
+ const handleResetQuotas = async (user: { id: string; email?: string | null; name?: string | null }) => {
+ const label = user.email || user.name || user.id
+ if (!confirm(t('admin.users.confirmResetQuotas', { user: label }))) return
+ setResettingId(user.id)
+ try {
+ const result = await resetUserQuotas(user.id)
+ toast.success(
+ t('admin.users.resetQuotasSuccess', {
+ period: result.period,
+ count: result.featuresReset.length,
+ }),
+ )
+ } catch (e) {
+ toast.error(
+ e instanceof Error ? e.message : t('admin.users.resetQuotasFailed'),
+ )
+ } finally {
+ setResettingId(null)
+ }
+ }
+
const handleRoleToggle = async (user: any) => {
const newRole = user.role === 'ADMIN' ? 'USER' : 'ADMIN'
try {
@@ -163,6 +185,16 @@ export function UserList({ initialUsers }: { initialUsers: any[] }) {
| {format(new Date(user.createdAt), 'PP')} |
+
|