diff --git a/frontend/src/constants/errorMessages.js b/frontend/src/constants/errorMessages.js new file mode 100644 index 0000000..c5a0768 --- /dev/null +++ b/frontend/src/constants/errorMessages.js @@ -0,0 +1,25 @@ +// Translation keys for all error messages. +// Values must match the keys defined in src/locales/de/translation.json. +// Callers pass these to t() — e.g. t(ERROR_MESSAGES.form.usernameRequired). + +export const ERROR_MESSAGES = { + form: { + usernameRequired: 'error.form.usernameRequired', + roomRequired: 'error.form.roomRequired', + usernameAndRoomRequired: 'error.form.usernameAndRoomRequired', + userIdRequired: 'error.form.userIdRequired', + messageTextRequired: 'error.form.messageTextRequired', + }, + connection: { + failed: 'error.connection.failed', + noActiveConnection: 'error.connection.noActiveConnection', + interrupted: 'error.connection.interrupted', + sendFailed: 'error.connection.sendFailed', + }, + api: { + joinFailed: 'error.api.joinFailed', + noUserReturned: 'error.api.noUserReturned', + snapshotFailed: 'error.api.snapshotFailed', + leaveFailed: 'error.api.leaveFailed', + }, +} diff --git a/frontend/src/utils/validators.js b/frontend/src/utils/validators.js new file mode 100644 index 0000000..bc0b7cf --- /dev/null +++ b/frontend/src/utils/validators.js @@ -0,0 +1,25 @@ +import { ERROR_MESSAGES } from '../constants/errorMessages' + +export function validateRequired(value, message) { + if (!value || !String(value).trim()) return message + return null +} + +export function validateJoinForm(username, room) { + if (!username.trim() || !room.trim()) { + return ERROR_MESSAGES.form.usernameAndRoomRequired + } + return null +} + +export function validateUsername(username) { + return validateRequired(username, ERROR_MESSAGES.form.usernameRequired) +} + +export function validateRoom(room) { + return validateRequired(room, ERROR_MESSAGES.form.roomRequired) +} + +export function validateMessageText(text) { + return validateRequired(text, ERROR_MESSAGES.form.messageTextRequired) +}