-
+ {/* Поле Email */}
+
+
+
{
+ e.target.value = e.target.value.toLowerCase();
+ }}
+ />
+ {state?.error?.email && (
+
+ {t(state?.error?.email)}
+
+ )}
+
+
+ {/* Поле Password */}
+
+
+
+
+
+ {state?.error?.password && (
+
+ {t(state?.error?.password)}
+
+ )}
+
+
+ {/* Поле Full Name */}
+
+
+
+ {state?.error?.fullName && (
+
+ {t(state?.error?.fullName)}
+
+ )}
+
+
+ {/* Чекбокс */}
+
+
+
+
+
+
+ {tGeneral('permissions')}
+
+
+
+ {permissionsConfig.map((perm) => {
+ const currentValue = permissions[perm.key as keyof typeof permissions];
+
+ return (
+
+
+
+
{perm.label}
+
{perm.description}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ );
+ })}
+
+
+
+ {state?.error?.server && !state.success && (
+
+ {t(state?.error?.server)}
+
)}
-
-
+
+
+
+
)
}
@@ -172,11 +314,30 @@ async function createStuffAction(
const fullName = formData.get('fullName') as string || '';
const email = formData.get('email') as string || '';
const password = formData.get('password') as string || '';
+ const changePassword = formData.get('changePassword') === 'on';
+
+ const permissions = {
+ subscriptions: parseInt(formData.get('permissions.subscriptions') as string) || 0,
+ mailings: parseInt(formData.get('permissions.mailings') as string) || 0,
+ complaints: parseInt(formData.get('permissions.complaints') as string) || 0,
+ agreements: parseInt(formData.get('permissions.agreements') as string) || 0,
+ staff: parseInt(formData.get('permissions.staff') as string) || 0,
+ content_moderation: parseInt(formData.get('permissions.content_moderation') as string) || 0,
+ users: parseInt(formData.get('permissions.users') as string) || 0,
+ money: parseInt(formData.get('permissions.money') as string) || 0,
+ kyc: parseInt(formData.get('permissions.kyc') as string) || 0,
+ claims: parseInt(formData.get('permissions.claims') as string) || 0,
+ api: parseInt(formData.get('permissions.api') as string) || 0,
+ dash: parseInt(formData.get('permissions.dash') as string) || 0,
+ tariffs: parseInt(formData.get('permissions.tariffs') as string) || 0,
+ };
const validatedFields = createStuffSchema.safeParse({
fullName,
email,
- password
+ password,
+ changePassword,
+ permissions
});
if (!validatedFields.success) {
@@ -205,10 +366,9 @@ async function createStuffAction(
}
try {
- const { fullName, email, password } = validatedFields.data;
+ const { fullName, email, password, changePassword, permissions } = validatedFields.data;
- // Вызов API для создания сотрудника
- const result = await createStuff(fullName, email, password);
+ const result = await createStuff(fullName, email, password, permissions, changePassword);
if (result) {
return {
@@ -227,16 +387,12 @@ async function createStuffAction(
} catch (error) {
const errors: Record