Merge branch 'feat/inda-383-daily-stat' into 'main'
[ProtonMail-WebClient.git] / applications / drive / src / app / store / _links / validation.ts
bloba5d5ec43ad2705ad9d6830b439279963e17acb1f
1 import { c, msgid } from 'ttag';
3 import { MAX_NAME_LENGTH } from '@proton/shared/lib/drive/constants';
5 const composeValidators =
6     <T>(validators: ((value: T) => string | undefined)[]) =>
7     (value: T) => {
8         for (const validator of validators) {
9             const result = validator(value);
10             if (result) {
11                 return result;
12             }
13         }
14         return undefined;
15     };
17 const validateNameLength = (str: string) => {
18     return str.length > MAX_NAME_LENGTH
19         ? c('Validation Error').ngettext(
20               msgid`Name must be ${MAX_NAME_LENGTH} character long at most`,
21               `Name must be ${MAX_NAME_LENGTH} characters long at most`,
22               MAX_NAME_LENGTH
23           )
24         : undefined;
27 const validateNameEmpty = (str: string) => {
28     return !str ? c('Validation Error').t`Name must not be empty` : undefined;
31 export const validateLinkName = composeValidators([validateNameEmpty, validateNameLength]);
33 export const validateLinkNameField = composeValidators([validateNameEmpty, validateNameLength]);