'use client'; import { Switch } from './ui/switch'; import { Label } from './ui/label'; import { Permission } from '@/lib/types'; import { useTranslations } from 'next-intl'; interface PermissionSelectorProps { permissions: Permission[]; isAdmin: boolean; onPermissionsChange: (permissions: Permission[]) => void; onAdminChange: (isAdmin: boolean) => void; } export function PermissionSelector({ permissions, isAdmin, onPermissionsChange, onAdminChange, }: PermissionSelectorProps) { const t = useTranslations('PermissionSelector'); const permissionLabels: { [key: string]: string } = { habit: t('resourceHabitTask'), wishlist: t('resourceWishlist'), coins: t('resourceCoins') }; const currentPermissions = isAdmin ? { habit: { write: true, interact: true }, wishlist: { write: true, interact: true }, coins: { write: true, interact: true } } : permissions[0] || { habit: { write: false, interact: true }, wishlist: { write: false, interact: true }, coins: { write: false, interact: true } }; const handlePermissionChange = (resource: keyof Permission, type: 'write' | 'interact', checked: boolean) => { const newPermissions = [{ ...currentPermissions, [resource]: { ...currentPermissions[resource], [type]: checked } }]; onPermissionsChange(newPermissions); }; return (
{t('adminAccessDescription')}
) : (