@weareconceptstudio/form 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/form/Item/index.js
CHANGED
|
@@ -9,7 +9,14 @@ const FormItem = ({ label, name, children, className, errorKey, required = true,
|
|
|
9
9
|
const { translate } = useTranslation();
|
|
10
10
|
const { formState } = useInput({
|
|
11
11
|
name,
|
|
12
|
-
rules: useRules({
|
|
12
|
+
rules: useRules({
|
|
13
|
+
rules,
|
|
14
|
+
required,
|
|
15
|
+
requiredMessage,
|
|
16
|
+
errorKey: errorKey || label,
|
|
17
|
+
// @ts-ignore
|
|
18
|
+
childType: children?.type?.displayName || children?.type?.name || '',
|
|
19
|
+
}),
|
|
13
20
|
errorKey: errorKey || label,
|
|
14
21
|
});
|
|
15
22
|
const hasError = !!lodashGet(formState.errors, name);
|
|
@@ -7,5 +7,11 @@ export function validationPatterns({ type, pattern, message, translate }: {
|
|
|
7
7
|
value: any;
|
|
8
8
|
message: any;
|
|
9
9
|
};
|
|
10
|
-
export function useRules(
|
|
10
|
+
export function useRules({ rules, required, requiredMessage, childType, errorKey }: {
|
|
11
|
+
rules: any;
|
|
12
|
+
required: any;
|
|
13
|
+
requiredMessage: any;
|
|
14
|
+
childType: any;
|
|
15
|
+
errorKey: any;
|
|
16
|
+
}): any[];
|
|
11
17
|
export function mapValidationRules(errorKey: any, rules: any): any;
|
package/dist/form/hooks/rules.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React, { useMemo } from 'react';
|
|
2
2
|
import { useTranslation } from '@weareconceptstudio/core';
|
|
3
3
|
export const validationPatterns = ({ type, pattern, message, translate }) => {
|
|
4
|
-
console.log({ type });
|
|
5
4
|
switch (type) {
|
|
6
5
|
case 'email':
|
|
7
6
|
return { value: /^[^\s@]+@[^\s@]+\.[^\s@]+$/g, message: message || translate('validateMessages.email') };
|
|
@@ -13,20 +12,23 @@ export const validationPatterns = ({ type, pattern, message, translate }) => {
|
|
|
13
12
|
return { value: pattern, message };
|
|
14
13
|
}
|
|
15
14
|
};
|
|
16
|
-
export const useRules = (
|
|
15
|
+
export const useRules = ({ rules, required, requiredMessage, childType, errorKey }) => {
|
|
16
|
+
const { translate } = useTranslation();
|
|
17
17
|
return useMemo(() => {
|
|
18
|
-
let r = [...
|
|
19
|
-
if (
|
|
20
|
-
r.unshift({ required: true, message:
|
|
18
|
+
let r = [...rules];
|
|
19
|
+
if (required) {
|
|
20
|
+
r.unshift({ required: true, message: requiredMessage });
|
|
21
|
+
if (childType.toLowerCase() === 'input' || childType.toLowerCase() === 'textarea') {
|
|
22
|
+
r.push({
|
|
23
|
+
validator: (value) => {
|
|
24
|
+
return value?.trim().length > 0 || translate('validateMessages.whitespace', { errorKey: translate(errorKey) });
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
}
|
|
21
28
|
}
|
|
22
|
-
// TODO: Whitespace
|
|
23
|
-
// validator: (value) => {
|
|
24
|
-
// return !!value.trim();
|
|
25
|
-
// },
|
|
26
29
|
return r;
|
|
27
|
-
}, [
|
|
30
|
+
}, [rules, required, requiredMessage, childType, errorKey]);
|
|
28
31
|
};
|
|
29
|
-
// TODO: rule messages from translations
|
|
30
32
|
export const mapValidationRules = (errorKey, rules) => {
|
|
31
33
|
const { translate } = useTranslation();
|
|
32
34
|
return rules?.reduce((acc, rule) => {
|
package/dist/styles/formStyle.js
CHANGED
|
@@ -31,15 +31,14 @@ const FormStyle = createGlobalStyle `${css `
|
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
.react-select__menu
|
|
35
|
-
.react-select__menu-list {
|
|
34
|
+
/* .react-select__menu-list {
|
|
36
35
|
scrollbar-width: none;
|
|
37
36
|
-ms-overflow-style: none;
|
|
38
37
|
|
|
39
38
|
&::-webkit-scrollbar {
|
|
40
39
|
display: none;
|
|
41
40
|
}
|
|
42
|
-
}
|
|
41
|
+
} */
|
|
43
42
|
|
|
44
43
|
input::-webkit-outer-spin-button,
|
|
45
44
|
input::-webkit-inner-spin-button,
|
|
@@ -286,7 +285,7 @@ const FormStyle = createGlobalStyle `${css `
|
|
|
286
285
|
.react-select__option {
|
|
287
286
|
color: var(--form_selectOptionColor);
|
|
288
287
|
line-height: var(--form_lineHeight);
|
|
289
|
-
font-size: var(--
|
|
288
|
+
font-size: var(--form_p3);
|
|
290
289
|
font-family: var(--form_Font);
|
|
291
290
|
font-weight: 500;
|
|
292
291
|
padding: var(--form_inputPadTBL) var(--form_inputPadR) var(--form_inputPadTBL) var(--form_inputPadTBL);
|