Skip to content

feat(a11y): inline errors RoomInfoEditView #6486

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 27 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
df8ef68
chore: started migration to hooks
OtavioStasiak Jul 2, 2025
f7b9a60
Merge branch 'develop' into chore-migrate-roominfoeditview-to-hooks
OtavioStasiak Jul 3, 2025
d32f7a9
chore: useSubscription and react-hook-form
OtavioStasiak Jul 3, 2025
894ab34
chore: useDeleteTeamOrRoom
OtavioStasiak Jul 3, 2025
0dab42b
fix: subscription unomount
OtavioStasiak Jul 3, 2025
8bee278
chore: code improvements
OtavioStasiak Jul 3, 2025
6b04bb9
rename hook
OtavioStasiak Jul 3, 2025
543bbd3
chore: format code with Prettier [skip ci]
OtavioStasiak Jul 3, 2025
a2aef93
rename hook
OtavioStasiak Jul 3, 2025
81a67ca
fix: usePermissions
OtavioStasiak Jul 4, 2025
e94ed03
fix: usePermissions
OtavioStasiak Jul 4, 2025
66a7e43
remove unnecessary reactivity from loadRoom
OtavioStasiak Jul 4, 2025
4510e5a
fix: random value changing value on every render
OtavioStasiak Jul 4, 2025
ab35440
Merge branch 'develop' into chore-migrate-roominfoeditview-to-hooks
OtavioStasiak Jul 7, 2025
7911b74
fix: e2e tests
OtavioStasiak Jul 7, 2025
3af31d2
fix: use getSubscriptionByRoomId insetad of db.get.find
OtavioStasiak Jul 7, 2025
2704325
chore: remove unused comment
OtavioStasiak Jul 7, 2025
cc9b9f9
fix: use getSubscriptionByRoomId and room as state instead of ref
OtavioStasiak Jul 7, 2025
7f652df
fix: randomValue
OtavioStasiak Jul 7, 2025
e7bc207
fix: form using only useForm
OtavioStasiak Jul 7, 2025
95054b2
Merge branch 'develop' into chore-migrate-roominfoeditview-to-hooks
OtavioStasiak Jul 8, 2025
e4b1620
feat: new i18n translation
OtavioStasiak Jul 9, 2025
a6729df
feat: inline errors and a11y announcement
OtavioStasiak Jul 9, 2025
5577d5a
Merge branch 'develop' into feat-a11y-inline-errors-roominfoeditview-…
OtavioStasiak Jul 9, 2025
2cd0ad6
Merge branch 'develop' into feat-a11y-inline-errors-roominfoeditview-…
OtavioStasiak Jul 25, 2025
02ea3bf
action: organized translations
OtavioStasiak Jul 25, 2025
f5582d8
Merge branch 'develop' into feat-a11y-inline-errors-roominfoeditview-…
OtavioStasiak Jul 31, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/i18n/locales/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
"changing_avatar": "تغيير الصورة الرمزية",
"Channel_hint_private": "لا يمكن للناس الانضمام إلا من خلال دعوتهم",
"Channel_Name": "اسم القناة",
"Channel_name_already_taken": "اسم القناة مأخوذ بالفعل",
"Channel_Read_Only_Hint": "يمكن لمالكي القنوات فقط إرسال رسائل جديدة",
"Channels": "قنوات",
"Chat_closed_by_agent": "المندوب أغلق المحادثة",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/bn-IN.json
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
"Channel_hint_private": "মানুষ কেবল আমন্ত্রণের মাধ্যমে যোগ দিতে পারে",
"Channel_hint_public": "সবাই এই চ্যানেলে অ্যাক্সেস পাবে",
"Channel_Name": "চ্যানেল নাম",
"Channel_name_already_taken": "চ্যানেল নাম ইতিমধ্যেই নেওয়া হয়েছে।",
"Channel_Read_Only_Hint": "শুধুমাত্র চ্যানেলের মালিকরা নতুন বার্তা পাঠাতে পারেন",
"Channels": "চ্যানেলগুলি",
"Chat_closed_by_agent": "এজেন্ট দ্বারা চ্যাট বন্ধ করা হয়েছে",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@
"Channel_hint_private": "Lidé se mohou připojit pouze tím, že byli pozváni",
"Channel_hint_public": "K tomuto kanálu má přístup každý",
"Channel_Name": "Název kanálu",
"Channel_name_already_taken": "Název kanálu je již zabraný.",
"Channel_Read_Only_Hint": "Pouze majitelé kanálů mohou odesílat nové zprávy",
"Channels": "Kanály",
"Chat_closed_by_agent": "Chat uzavřen agentem",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@
"Channel_hint_private": "Menschen können nur dann durch eingeladen werden",
"Channel_hint_public": "Jeder kann auf diesen Kanal zugreifen",
"Channel_Name": "Channel-Name",
"Channel_name_already_taken": "Kanalname bereits vergeben",
"Channel_Read_Only_Hint": "Nur Kanalbesitzer können neue Nachrichten senden",
"Channels": "Channels",
"Chat_closed_by_agent": "Chat durch den Agenten geschlossen",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@
"Channel_hint_private": "People can only join by being invited",
"Channel_hint_public": "Everyone can access this channel",
"Channel_Name": "Channel name",
"Channel_name_already_taken": "Channel name already taken",
"Channel_Read_Only_Hint": "Only channel owners can send new messages",
"Channels": "Channels",
"Chat_closed_by_agent": "Chat closed by agent",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
"changing_avatar": "cambiando avatar",
"Channel_hint_private": "La gente solo puede unirse al ser invitado",
"Channel_Name": "Nombre sala",
"Channel_name_already_taken": "Nombre de canal ya está en uso.",
"Channel_Read_Only_Hint": "Solo los propietarios de canales pueden enviar nuevos mensajes",
"Channels": "Salas",
"Chats": "Chats",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
"Channel_hint_private": "Ihmiset voivat liittyä vain kutsumalla",
"Channel_hint_public": "Kaikilla on pääsy tälle kanavalle",
"Channel_Name": "Kanavan nimi",
"Channel_name_already_taken": "Kanavan nimi on jo varattu.",
"Channel_Read_Only_Hint": "Vain kanavanomistajat voivat lähettää uusia viestejä",
"Channels": "Kanavat",
"Chat_closed_by_agent": "Agentti sulki keskustelun",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
"changing_avatar": "changer d'avatar",
"Channel_hint_private": "Les gens ne peuvent se joindre qu'en étant invité",
"Channel_Name": "Nom du canal",
"Channel_name_already_taken": "Nom de chaîne déjà pris",
"Channel_Read_Only_Hint": "Seuls les propriétaires de canaux peuvent envoyer de nouveaux messages",
"Channels": "Canaux",
"Chat_closed_by_agent": "Chat fermé par l'agent",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/hi-IN.json
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
"Channel_hint_private": "लोग केवल आमंत्रित किए जाने पर ही जुड़ सकते हैं",
"Channel_hint_public": "हर कोई इस चैनल तक पहुँच सकता है",
"Channel_Name": "चैनल का नाम",
"Channel_name_already_taken": "चैनल का नाम पहले से लिया जा चुका है।",
"Channel_Read_Only_Hint": "केवल चैनल के मालिक नए संदेश भेज सकते हैं",
"Channels": "चैनल्स",
"Chat_closed_by_agent": "एजेंट ने चैट बंद कर दी है",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
"Channel_hint_private": "Az emberek csak meghívással csatlakozhatnak",
"Channel_hint_public": "Mindenki hozzáférhet ehhez a csatornához",
"Channel_Name": "Csatorna neve",
"Channel_name_already_taken": "A csatorna neve már foglalt.",
"Channel_Read_Only_Hint": "Csak a csatornatulajdonosok küldhetnek új üzeneteket",
"Channels": "Csatornák",
"Chat_closed_by_agent": "A csevegést az ügyintéző lezárta",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
"changing_avatar": "cambio avatar",
"Channel_hint_private": "Le persone possono unirsi solo essendo invitati",
"Channel_Name": "Nome canale",
"Channel_name_already_taken": "Nome del canale già preso",
"Channel_Read_Only_Hint": "Solo i proprietari di canali possono inviare nuovi messaggi",
"Channels": "Canali",
"Chat_closed_by_agent": "Chat chiusa dall'agente",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
"changing_avatar": "アバターを変更",
"Channel_hint_private": "人々は招待されることによってのみ参加することができます",
"Channel_Name": "チャンネル名",
"Channel_name_already_taken": "チャンネル名は既に使用されています。",
"Channel_Read_Only_Hint": "チャネル所有者のみが新しいメッセージを送信できます",
"Channels": "チャンネル",
"Chat_closed_by_agent": "エージェントが閉じたチャット",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
"changing_avatar": "avatar aan het veranderen",
"Channel_hint_private": "Mensen kunnen alleen meedoen door uitgenodigd te worden",
"Channel_Name": "Kanaal naam",
"Channel_name_already_taken": "Kanaalnaam al in gebruik",
"Channel_Read_Only_Hint": "Alleen kanaaleigenaren kunnen nieuwe berichten verzenden",
"Channels": "Kanalen",
"Chat_closed_by_agent": "Chat gesloten door agent",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/nn.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@
"Channel_hint_not_read_only": "Alle brukere i kanalen kan skrive nye meldinger",
"Channel_hint_private": "Folk kan bare bli med ved å bli invitert",
"Channel_hint_public": "Alle kan få tilgang til denne kanalen",
"Channel_name_already_taken": "Kanalnamnet er allereie tatt",
"Channels": "Totalt antall kanaler",
"Chat_closed_by_agent": "Chat stengt av agent",
"Chat_started": "Chat startet",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/no.json
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@
"Channel_hint_private": "Bare inviterte brukere har tilgang til denne kanalen",
"Channel_hint_public": "Alle kan få tilgang til denne kanalen",
"Channel_Name": "Kanalnavn",
"Channel_name_already_taken": "Navn på kanalen er allerede tatt",
"Channel_Read_Only_Hint": "Bare kanaleiere kan sende nye meldinger",
"Channels": "Kanaler",
"Chat_closed_by_agent": "Chatten ble avsluttet av agenten",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/pt-BR.json
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@
"Channel_hint_private": "As pessoas só podem entrar por meio de convite",
"Channel_hint_public": "Todos podem acessar este canal",
"Channel_Name": "Nome do canal",
"Channel_name_already_taken": "Nome do canal já está em uso.",
"Channel_Read_Only_Hint": "Apenas os proprietários do canal podem enviar novas mensagens",
"Channels": "Canais",
"Chat_closed_by_agent": "Conversa fechada por agente",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/pt-PT.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@
"changing_avatar": "a alterar avatar",
"Channel_hint_private": "As pessoas só podem se juntar ao ser convidadas",
"Channel_Name": "Nome do Canal",
"Channel_name_already_taken": "Nome do canal já está em uso",
"Channel_Read_Only_Hint": "Somente os proprietários de canais podem enviar novas mensagens",
"Channels": "Canais",
"Chat_closed_by_agent": "Chat fechado por agente",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@
"Channel_hint_private": "Люди могут присоединиться только к приглашению",
"Channel_hint_public": "У всех есть доступ к этому каналу",
"Channel_Name": "Название канала",
"Channel_name_already_taken": "Название канала уже занято.",
"Channel_Read_Only_Hint": "Только владельцы каналов могут отправлять новые сообщения",
"Channels": "Каналы",
"Chat_closed_by_agent": "Чат закрыт агентом",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/sl-SI.json
Original file line number Diff line number Diff line change
Expand Up @@ -83,6 +83,7 @@
"changing_avatar": "spreminjanje avatarja",
"Channel_hint_private": "Ljudje se lahko pridružijo samo z vabilom",
"Channel_Name": "Ime kanala",
"Channel_name_already_taken": "Ime kanala je že zasedeno.",
"Channel_Read_Only_Hint": "Samo lastniki kanala lahko pošiljajo nova sporočila",
"Channels": "Kanali",
"Chat_closed_by_agent": "Klepet je zaprl agent",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,7 @@
"Channel_hint_private": "Människor kan bara gå med genom att bli inbjudna",
"Channel_hint_public": "Alla kan öppna kanalen",
"Channel_Name": "Kanalnamn",
"Channel_name_already_taken": "Kanalnamnet är redan taget.",
"Channel_Read_Only_Hint": "Endast kanalägare kan skicka nya meddelanden",
"Channels": "Kanaler",
"Chat_closed_by_agent": "Chatten stängdes av agenten",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/ta-IN.json
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
"Channel_hint_private": "மக்கள் அழைப்பின் மூலம் மட்டும் சேர முடியும்",
"Channel_hint_public": "அனைத்து பயனர்களும் இந்த சேனலுக்கு அணுகலாம்",
"Channel_Name": "சேனலின் பெயர்",
"Channel_name_already_taken": "சேனல் பெயர் ஏற்கனவே எடுத்துக்கொண்டது.",
"Channel_Read_Only_Hint": "சேனல் உரிமையாளர்கள் மட்டுமே புதிய செய்திகளை அனுப்ப முடியும்",
"Channels": "சேனல்கள்",
"Chat_closed_by_agent": "ஏஜென்ட் மூடிய உரையாடல்",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/te-IN.json
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@
"Channel_hint_private": "కేవలం ఆహ్వానిత వాడాలు ఈ చానల్‌కు ప్రాప్తి ఉంచవచ్చు",
"Channel_hint_public": "ప్రతిపక్షం ఈ చానల్‌కు ప్రాప్తి ఉంచవచ్చు",
"Channel_Name": "ఛానల్ పేరు",
"Channel_name_already_taken": "चैनल का नाम पहले से लिया जा चुका है।",
"Channels": "ఛానల్లు",
"Chat_closed_by_agent": "ఏజెంట్ ద్వారా చాట్ మూసబడింది",
"Chat_is_on_hold": "ఇది చాట్ అనాకరణం కారణంగా ఆఫ్‌లోడ్ ఉంది",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
"changing_avatar": "profil fotoğrafı değiştirme",
"Channel_hint_private": "İnsanlar sadece davet edilerek katılabilir",
"Channel_Name": "Kanal Adı",
"Channel_name_already_taken": "Kanal adı zaten alınmış.",
"Channel_Read_Only_Hint": "Yalnızca kanal sahipleri yeni mesajlar gönderebilir",
"Channels": "Kanallar",
"Chat_closed_by_agent": "Sohbet temsilci tarafından kapatıldı",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
"changing_avatar": "更改头像",
"Channel_hint_private": "人们只能被邀请加入",
"Channel_Name": "频道名",
"Channel_name_already_taken": "频道名称已被占用",
"Channel_Read_Only_Hint": "只有频道所有者可以发送新消息",
"Channels": "频道",
"Chat_closed_by_agent": "聊天已被客服关闭",
Expand Down
1 change: 1 addition & 0 deletions app/i18n/locales/zh-TW.json
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@
"changing_avatar": "更改大頭貼",
"Channel_hint_private": "人們只能被邀請加入",
"Channel_Name": "頻道名稱",
"Channel_name_already_taken": "頻道名稱已被使用",
"Channel_Read_Only_Hint": "只有頻道所有者可以發送新消息",
"Channels": "頻道",
"Chat_closed_by_agent": "聊天已被客服關閉",
Expand Down
22 changes: 20 additions & 2 deletions app/views/RoomInfoEditView/index.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import React, { useLayoutEffect, useState } from 'react';
import { BlockContext } from '@rocket.chat/ui-kit';
import { dequal } from 'dequal';
import { Alert, Keyboard, ScrollView, Text, View } from 'react-native';
import { AccessibilityInfo, Alert, Keyboard, ScrollView, Text, View } from 'react-native';
import { useForm } from 'react-hook-form';
import * as yup from 'yup';
import { yupResolver } from '@hookform/resolvers/yup';

import { useAppSelector, usePermissions } from '../../lib/hooks';
import { AvatarWithEdit } from '../../containers/Avatar';
Expand Down Expand Up @@ -38,6 +40,10 @@ const MESSAGE_TYPE_VALUES = MessageTypeValues.map(m => ({
text: { text: I18n.t('Hide_type_messages', { type: I18n.t(m.text) }) }
}));

const schema = yup.object().shape({
name: yup.string().required(I18n.t('Name_required'))
});

const RoomInfoEditView = ({ navigation, route }: IRoomInfoEditViewProps) => {
const { colors } = useTheme();
const { encryptionEnabled, serverVersion } = useAppSelector(state => ({
Expand Down Expand Up @@ -69,7 +75,9 @@ const RoomInfoEditView = ({ navigation, route }: IRoomInfoEditViewProps) => {
enableSysMes: false,
encrypted: false,
archived: false
}
},
mode: 'onChange',
resolver: yupResolver(schema)
});

const initializeRoomState = (room: ISubscription) => {
Expand Down Expand Up @@ -181,7 +189,17 @@ const RoomInfoEditView = ({ navigation, route }: IRoomInfoEditViewProps) => {
} catch (e: any) {
if (e.error === 'error-invalid-room-name') {
setError('name', { message: e, type: 'validate' });
setFocus('name');
}

if (e.error === 'error-duplicate-channel-name') {
setError('name', { message: I18n.t('Channel_name_already_taken'), type: 'validate' });
setFocus('name');
}

const a11yAnnouncement = e.error === 'error-duplicate-channel-name' ? I18n.t('Channel_name_already_taken') : e.reason;
AccessibilityInfo.announceForAccessibility(a11yAnnouncement);

error = true;
log(e);
}
Expand Down
Loading
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy