@weareconceptstudio/form 0.1.5 → 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.
@@ -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({ rules, required, requiredMessage }),
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(props: any): any[];
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;
@@ -12,20 +12,23 @@ export const validationPatterns = ({ type, pattern, message, translate }) => {
12
12
  return { value: pattern, message };
13
13
  }
14
14
  };
15
- export const useRules = (props) => {
15
+ export const useRules = ({ rules, required, requiredMessage, childType, errorKey }) => {
16
+ const { translate } = useTranslation();
16
17
  return useMemo(() => {
17
- let r = [...props.rules];
18
- if (props.required) {
19
- r.unshift({ required: true, message: props.requiredMessage });
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
+ }
20
28
  }
21
- // TODO: Whitespace
22
- // validator: (value) => {
23
- // return !!value.trim();
24
- // },
25
29
  return r;
26
- }, [props]);
30
+ }, [rules, required, requiredMessage, childType, errorKey]);
27
31
  };
28
- // TODO: rule messages from translations
29
32
  export const mapValidationRules = (errorKey, rules) => {
30
33
  const { translate } = useTranslation();
31
34
  return rules?.reduce((acc, rule) => {
@@ -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(--form_p2);
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@weareconceptstudio/form",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Concept Studio Form",
5
5
  "author": "Concept Studio",
6
6
  "license": "ISC",