Skip to content

Commit d2ae6c8

Browse files
committed
fixes
1 parent 13d952d commit d2ae6c8

File tree

5 files changed

+18
-7
lines changed

5 files changed

+18
-7
lines changed

cypress/support/commands.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
import '@ui5/webcomponents-cypress-commands';
2-
import "./../../i18n.js";
2+
import "../../i18n";

i18n.js renamed to i18n.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import i18n, { loadResources } from 'i18next';
1+
import i18n from 'i18next';
22
import { initReactI18next } from 'react-i18next';
33

44
import translationEN from './public/locales/en.json'

public/locales/en.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,5 +143,10 @@
143143
},
144144
"main": {
145145
"failedMessage": "Failed to load frontend configuration"
146+
},
147+
"validationErrors": {
148+
"required": "This field is required",
149+
"properFormatting": "Use A-Z, a-z, 0-9, hyphen (-), and period (.), but note that whitespace (spaces, tabs, etc.) is not allowed for proper compatibility.",
150+
"max25chars": "Max length is 25 characters"
146151
}
147152
}

src/lib/api/validations/schemas.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
import {z} from "zod";
22
import {MemberRoles} from "../types/shared/members.ts";
3+
import i18n from '../../../../i18n.ts'
34

5+
6+
7+
8+
9+
const { t } = i18n;
410
export const MemberSchema = z.object({
5-
kind: z.string().min(1, "Kind is required"),
6-
name: z.string().min(1, "Name is required"),
7-
roles: z.array(z.nativeEnum(MemberRoles)).min(1, "At least one role is required"),
11+
kind: z.string().min(1, t("validationErrors.required")),
12+
name: z.string().min(1, t("validationErrors.required")),
13+
roles: z.array(z.nativeEnum(MemberRoles)).min(1, t("validationErrors.required")),
814
});
915

1016
export const validationSchemaProjectWorkspace = z.object({
11-
name: z.string().min(1, "This field is required").regex(/^(?!-)[a-zA-Z0-9-]{1,63}(?<!-)(?:\.(?!-)[a-zA-Z0-9-]{1,63}(?<!-))*$/, 'Use A-Z, a-z, 0-9, hyphen (-), and period (.), but note that whitespace (spaces, tabs, etc.) is not allowed for proper compatibility.').max(25, 'Max length is 25 characters'),
17+
name: z.string().min(1, t("validationErrors.required")).regex(/^(?!-)[a-zA-Z0-9-]{1,63}(?<!-)(?:\.(?!-)[a-zA-Z0-9-]{1,63}(?<!-))*$/, t("validationErrors.properFormatting")).max(25, t("validationErrors.max25chars")),
1218
displayName: z.string().optional(),
1319
chargingTarget: z.string().optional(),
1420
members: z.array(MemberSchema).nonempty()

src/main.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { CopyButtonProvider } from './context/CopyButtonContext.tsx';
1111
import { FrontendConfigProvider, LoadFrontendConfig } from "./context/FrontendConfigContext.tsx";
1212
import '@ui5/webcomponents-react/dist/Assets'; //used for loading themes
1313
import { DarkModeSystemSwitcher } from "./components/Core/DarkModeSystemSwitcher.tsx";
14-
import ".././i18n";
14+
import ".././i18n.ts";
1515
import "./utils/i18n/timeAgo";
1616
import { useTranslation } from "react-i18next";
1717

0 commit comments

Comments
 (0)