Fix and improve custom team member role form controls

This commit is contained in:
Kalle
2026-07-09 18:14:20 +03:00
parent 04fa7aae79
commit d84b5834ac
18 changed files with 3 additions and 50 deletions

View File

@@ -123,7 +123,7 @@ function MemberActions() {
userId: member.id,
role: member.customRole ? CUSTOM_ROLE_VALUE : (member.role ?? null),
customRole: member.customRole ?? null,
roleType: member.roleType ?? null,
roleType: member.roleType ?? "PLAYER",
isManager: Boolean(member.isManager),
})),
}}

View File

@@ -4,6 +4,7 @@ import {
fieldset,
idConstant,
image,
select,
selectOptional,
stringConstant,
textAreaOptional,
@@ -90,7 +91,7 @@ export const updateRosterSchema = z
label: "labels.teamMemberCustomRole",
maxLength: CUSTOM_ROLE_MAX_LENGTH,
}),
roleType: selectOptional({
roleType: select({
label: "labels.teamMemberRoleType",
items: [
{ value: "PLAYER", label: "options.teamMemberRoleType.PLAYER" },
@@ -113,21 +114,5 @@ export const updateRosterSchema = z
message: "forms:errors.customRoleRequired",
});
}
if (isCustom && !member.roleType) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
path: ["members", index, "roleType"],
message: "forms:errors.customRoleTypeRequired",
});
}
if (!isCustom && member.customRole) {
ctx.addIssue({
code: z.ZodIssueCode.custom,
path: ["members", index, "customRole"],
message: "forms:errors.customRoleOnlyWhenCustom",
});
}
}
});

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Våbenpulje",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Waffenpool",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "There is already an organization with this name",
"errors.noOnlySpecialCharacters": "Name can't be only special characters",
"errors.customRoleRequired": "Enter a name for the custom role",
"errors.customRoleTypeRequired": "Select a role type for the custom role",
"errors.customRoleOnlyWhenCustom": "Custom role is only allowed when the role is set to Custom",
"labels.weaponPool": "Weapon pool",
"placeholders.weaponPoolFull": "Pool full - remove a weapon to add more",
"labels.voiceChat": "Can voice chat",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "El nombre no puede ser solo caracteres especiales",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Selección de armas",
"placeholders.weaponPoolFull": "Selección llena - elimina un arma para añadir más",
"labels.voiceChat": "Puede usar chat de voz",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Grupo de armas",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Armes jouées",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Armes jouées",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "מאגר נשקים",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Pool armi",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "使用ブキ",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Pula broni",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Seleção de armas",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "",
"errors.noOnlySpecialCharacters": "",
"errors.customRoleRequired": "",
"errors.customRoleTypeRequired": "",
"errors.customRoleOnlyWhenCustom": "",
"labels.weaponPool": "Используемое оружие",
"placeholders.weaponPoolFull": "",
"labels.voiceChat": "",

View File

@@ -65,8 +65,6 @@
"errors.duplicateOrgName": "该组织名称已被占用",
"errors.noOnlySpecialCharacters": "名称不能仅由特殊字符组成",
"errors.customRoleRequired": "请输入自定义职责的名称",
"errors.customRoleTypeRequired": "请选择自定义职责的类型",
"errors.customRoleOnlyWhenCustom": "仅当职责设为“自定义”时,才允许配置自定义职责",
"labels.weaponPool": "武器池",
"placeholders.weaponPoolFull": "武器池已满。请移除一个武器以添加新武器",
"labels.voiceChat": "可以进行语音聊天吗?",