@griddo/ax 1.56.2 → 1.56.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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@griddo/ax",
3
3
  "description": "Griddo Author Experience",
4
- "version": "1.56.2",
4
+ "version": "1.56.6",
5
5
  "authors": [
6
6
  "Álvaro Sánchez' <alvaro.sanches@secuoyas.com>",
7
7
  "Carlos Torres <carlos.torres@secuoyas.com>",
@@ -233,5 +233,5 @@
233
233
  "publishConfig": {
234
234
  "access": "public"
235
235
  },
236
- "gitHead": "76dddc292b1037223a780b2093399c3c6e12ce02"
236
+ "gitHead": "f42e7395e9d7708136ecd857644ba587729b87e9"
237
237
  }
@@ -1,13 +1,11 @@
1
- import React, { useState } from "react";
1
+ import React from "react";
2
2
 
3
3
  import * as S from "./style";
4
4
 
5
5
  const ArrayFieldItem = (props: IProps): JSX.Element => {
6
- const { fields, item, name, index, onChange, handleDelete } = props;
6
+ const { fields, item, name, index, onChange, handleDelete, isOpen, setIsOpen } = props;
7
7
 
8
- const [isOpen, setIsOpen] = useState(false);
9
-
10
- const handleClick = () => setIsOpen(!isOpen);
8
+ const handleClick = () => (isOpen === index ? setIsOpen(null) : setIsOpen(index));
11
9
 
12
10
  const deleteItem = () => handleDelete(index);
13
11
 
@@ -19,6 +17,15 @@ const ArrayFieldItem = (props: IProps): JSX.Element => {
19
17
  },
20
18
  ];
21
19
 
20
+ const getItemTitle = (fields: any[]) => {
21
+ const itemTitle = fields.find((field: any) => field.props.isTitle);
22
+ if (itemTitle) {
23
+ const title: any = item[itemTitle.key];
24
+ if (title && typeof title === "string" && title.length) return title;
25
+ }
26
+ return `${name} ${index + 1}`;
27
+ };
28
+
22
29
  const getFields = (fields: any[]): any[] => {
23
30
  return fields.map((field: any) => {
24
31
  const key = field.props.objKey;
@@ -35,12 +42,12 @@ const ArrayFieldItem = (props: IProps): JSX.Element => {
35
42
  };
36
43
 
37
44
  return (
38
- <S.Wrapper isOpen={isOpen}>
39
- <S.Title onClick={handleClick} isOpen={isOpen}>
40
- {`${name} ${index + 1}`}
45
+ <S.Wrapper isOpen={isOpen === index}>
46
+ <S.Title onClick={handleClick} isOpen={isOpen === index}>
47
+ {getItemTitle(fields)}
41
48
  <S.StyledActionMenu icon="more" options={menuOptions} />
42
49
  </S.Title>
43
- <S.Content isOpen={isOpen}>{getFields(fields)}</S.Content>
50
+ <S.Content isOpen={isOpen === index}>{getFields(fields)}</S.Content>
44
51
  </S.Wrapper>
45
52
  );
46
53
  };
@@ -52,6 +59,8 @@ interface IProps {
52
59
  index: number;
53
60
  onChange: (value: Record<string, unknown>) => void;
54
61
  handleDelete: (index: number) => void;
62
+ isOpen: number | null;
63
+ setIsOpen: (index: number | null) => void;
55
64
  }
56
65
 
57
66
  export default ArrayFieldItem;
@@ -39,7 +39,7 @@ const Title = styled.div<{ isOpen: boolean }>`
39
39
  `;
40
40
 
41
41
  const Content = styled.div<{ isOpen: boolean }>`
42
- overflow-y: hidden;
42
+ display: ${(p) => (p.isOpen ? "block" : "none")};
43
43
  max-height: ${(p) => (p.isOpen ? `auto` : 0)};
44
44
  transition: all 0.5s ease-in-out;
45
45
  padding: ${(p) => `0 ${p.theme.spacing.s}`};
@@ -14,11 +14,13 @@ const ArrayFieldGroup = (props: IProps): JSX.Element => {
14
14
  });
15
15
 
16
16
  const [items, setItems] = useState(initialValueMapped);
17
+ const [isOpen, setIsOpen] = useState<number | null>(null);
17
18
 
18
19
  const handleClick = () => {
19
20
  const newItems = [...items, { id: uuidv4() }];
20
21
  setItems(newItems);
21
22
  onChange(newItems);
23
+ setIsOpen(newItems.length - 1);
22
24
  };
23
25
 
24
26
  const handleChange = (newValue: Record<string, unknown>, index: number) => {
@@ -66,6 +68,8 @@ const ArrayFieldGroup = (props: IProps): JSX.Element => {
66
68
  index={index}
67
69
  onChange={handleFieldChange}
68
70
  handleDelete={handleDelete}
71
+ isOpen={isOpen}
72
+ setIsOpen={setIsOpen}
69
73
  />
70
74
  );
71
75
  })}
@@ -16,8 +16,9 @@ const initState = {
16
16
  sourceTitles: [],
17
17
  };
18
18
 
19
- const useReference = () => {
20
- const [state, setState] = useState({ state: initState });
19
+ const useReference = (modes?: string[]) => {
20
+ const mode = modes && modes.length ? modes[0] : "auto";
21
+ const [state, setState] = useState({ state: { ...initState, mode } });
21
22
 
22
23
  const setCurrentState = useCallback((newState: any): void => {
23
24
  setState(newState);
@@ -18,7 +18,7 @@ const ReferenceField = (props: IProps) => {
18
18
 
19
19
  const { isOpen, toggleModal } = useModal();
20
20
 
21
- const contextValue = useReference();
21
+ const contextValue = useReference(selectionType);
22
22
  const { state, setState, setModeAndSource } = contextValue;
23
23
  const { mode } = state;
24
24
  const singleMode = selectionType && selectionType.length === 1;
@@ -1,8 +1,17 @@
1
1
  import React from "react";
2
2
 
3
3
  const getImage = (name: string) => {
4
+ const simpleIcons: any = {
5
+ es: "Es_ES",
6
+ en: "En_GB",
7
+ de: "De_DE",
8
+ fr: "Fr_FR",
9
+ it: "It_IT",
10
+ pt: "Pt_PT",
11
+ };
12
+ const filename = simpleIcons[name?.toLowerCase()] || name;
4
13
  try {
5
- return require(`./components/${name}`).default;
14
+ return require(`./components/${filename}`).default;
6
15
  } catch (err) {
7
16
  return null;
8
17
  }