@gisce/react-ooui 1.1.22-rc.0 → 1.1.22-rc.2

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.
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ export declare type ReferenceTreeProps = {
3
+ value: string;
4
+ context?: any;
5
+ selectionValues?: any;
6
+ };
7
+ export declare const ReferenceTree: (props: ReferenceTreeProps) => React.ReactElement;
8
+ //# sourceMappingURL=ReferenceTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReferenceTree.d.ts","sourceRoot":"","sources":["ReferenceTree.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA2C,MAAM,OAAO,CAAC;AAIhE,oBAAY,kBAAkB,GAAG;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,eAAe,CAAC,EAAE,GAAG,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,aAAa,UACjB,kBAAkB,KACxB,MAAM,YA+CR,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ export declare type Many2oneTreeProps = {
3
+ m2oField: any;
4
+ };
5
+ export declare const Many2oneTree: (props: Many2oneTreeProps) => React.ReactElement;
6
+ //# sourceMappingURL=Many2oneTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Many2oneTree.d.ts","sourceRoot":"","sources":["Many2oneTree.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,oBAAY,iBAAiB,GAAG;IAAE,QAAQ,EAAE,GAAG,CAAA;CAAE,CAAC;AAElD,eAAO,MAAM,YAAY,UAAW,iBAAiB,KAAG,MAAM,YAW7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"One2manyInput.d.ts","sourceRoot":"","sources":["One2manyInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAWvD,OAAO,EAAE,KAAK,EAAY,MAAM,SAAS,CAAC;AAkB1C,aAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AAQF,aAAK,YAAY,GAAG;IAClB,SAAS,CAAC,EACN,UAAU,GACV,eAAe,GACf,eAAe,GACf,eAAe,GACf,aAAa,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,UAAU,kBAAkB;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,KAAK,CAAC;CACd;AAWD,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6kB/C,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"One2manyInput.d.ts","sourceRoot":"","sources":["One2manyInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,aAAa,CAAC;AAWvD,OAAO,EAAE,KAAK,EAAY,MAAM,SAAS,CAAC;AAkB1C,aAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,KAAK,EAAE,KAAK,CAAC,YAAY,CAAC,CAAC;CAC5B,CAAC;AAQF,aAAK,YAAY,GAAG;IAClB,SAAS,CAAC,EACN,UAAU,GACV,eAAe,GACf,eAAe,GACf,eAAe,GACf,aAAa,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,UAAU,kBAAkB;IAC1B,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1C,KAAK,EAAE,KAAK,CAAC;CACd;AAWD,QAAA,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA8kB/C,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardTree.d.ts","sourceRoot":"","sources":["DashboardTree.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQnD,aAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,aAAK,KAAK,GAAG;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,iBAAS,aAAa,CAAC,KAAK,EAAE,KAAK,sBA6MlC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"DashboardTree.d.ts","sourceRoot":"","sources":["DashboardTree.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAQnD,aAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,aAAK,KAAK,GAAG;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,GAAG,CAAC;CACrB,CAAC;AAEF,iBAAS,aAAa,CAAC,KAAK,EAAE,KAAK,sBA8MlC;AAED,eAAe,aAAa,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchTree.d.ts","sourceRoot":"","sources":["SearchTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAgBnD,aAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,aAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1D,CAAC;;AA0SF,wBAAsC"}
1
+ {"version":3,"file":"SearchTree.d.ts","sourceRoot":"","sources":["SearchTree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAgBnD,aAAK,gBAAgB,GAAG;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,aAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,YAAY,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,GAAG,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,eAAe,EAAE,GAAG,KAAK,IAAI,CAAC;CAC1D,CAAC;;AA2SF,wBAAsC"}
@@ -19,6 +19,7 @@ declare type Props = {
19
19
  sorter?: any;
20
20
  onFetchChildrenForRecord?: (item: any) => Promise<any[]>;
21
21
  childField?: string;
22
+ context?: any;
22
23
  };
23
24
  declare function Tree(props: Props): React.ReactElement;
24
25
  export default Tree;
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["Tree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,OAAO,EAAE,QAAQ,EAAU,MAAM,SAAS,CAAC;AAe3C,aAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAyDF,iBAAS,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CAsL9C;AAED,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"Tree.d.ts","sourceRoot":"","sources":["Tree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkD,MAAM,OAAO,CAAC;AAKvE,OAAO,EAAE,QAAQ,EAAU,MAAM,SAAS,CAAC;AAiB3C,aAAK,KAAK,GAAG;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAAC;IACrC,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CAAC;AAmEF,iBAAS,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,YAAY,CA4L9C;AAED,eAAe,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gisce/react-ooui",
3
- "version": "1.1.22-rc.0",
3
+ "version": "1.1.22-rc.2",
4
4
  "files": [
5
5
  "dist",
6
6
  "src",
@@ -1,4 +1,10 @@
1
- import { Tree as TreeOoui, Selection, Many2one, Boolean } from "@gisce/ooui";
1
+ import {
2
+ Tree as TreeOoui,
3
+ Selection,
4
+ Many2one,
5
+ Boolean,
6
+ Reference,
7
+ } from "@gisce/ooui";
2
8
  import { TreeView, Column } from "@/types";
3
9
 
4
10
  const getTree = (treeView: TreeView): TreeOoui => {
@@ -9,7 +15,11 @@ const getTree = (treeView: TreeView): TreeOoui => {
9
15
  return tree;
10
16
  };
11
17
 
12
- const getTableColumns = (tree: TreeOoui, components: any): Array<Column> => {
18
+ const getTableColumns = (
19
+ tree: TreeOoui,
20
+ components: any,
21
+ context: any
22
+ ): Array<Column> => {
13
23
  const tableColumns = tree.columns.map((column) => {
14
24
  const type = column.type;
15
25
  const key = column.id;
@@ -18,7 +28,7 @@ const getTableColumns = (tree: TreeOoui, components: any): Array<Column> => {
18
28
 
19
29
  if (component) {
20
30
  render = (item: any) => {
21
- return component(item);
31
+ return component(item, key, tree.fields[key], context);
22
32
  };
23
33
  }
24
34
 
@@ -54,7 +64,9 @@ const getTableItems = (treeOoui: TreeOoui, results: Array<any>): Array<any> => {
54
64
  } else {
55
65
  const widget = treeOoui.findById(key);
56
66
 
57
- if (widget instanceof Selection) {
67
+ if (widget instanceof Reference) {
68
+ parsedItem[key] = item[key];
69
+ } else if (widget instanceof Selection) {
58
70
  const selection = widget;
59
71
  parsedItem[key] = selection.selectionValues.get(item[key]);
60
72
  } else if (widget instanceof Many2one) {
@@ -0,0 +1,62 @@
1
+ import ConnectionProvider from "@/ConnectionProvider";
2
+ import { Space } from "antd";
3
+ import React, { useCallback, useEffect, useState } from "react";
4
+ import { Many2oneSuffix } from "./many2one/Many2oneSuffix";
5
+ import { LoadingOutlined } from "@ant-design/icons";
6
+
7
+ export type ReferenceTreeProps = {
8
+ value: string;
9
+ context?: any;
10
+ selectionValues?: any;
11
+ };
12
+
13
+ export const ReferenceTree = (
14
+ props: ReferenceTreeProps
15
+ ): React.ReactElement => {
16
+ const { value, context, selectionValues } = props;
17
+ const [name, setName] = useState();
18
+ const [loading, setLoading] = useState(false);
19
+
20
+ const [model, id] = value ? value.split(",") : [];
21
+ const intId = parseInt(id);
22
+
23
+ const fetchName = useCallback(async () => {
24
+ if (!value) {
25
+ return;
26
+ }
27
+ if (value && name) {
28
+ return;
29
+ }
30
+ setLoading(true);
31
+ const nameResponse = await ConnectionProvider.getHandler().execute({
32
+ action: "name_get",
33
+ payload: [intId],
34
+ model,
35
+ context,
36
+ });
37
+ setName(nameResponse[0][1]);
38
+ setLoading(false);
39
+ }, [value, name]);
40
+
41
+ useEffect(() => {
42
+ fetchName();
43
+ }, [value]);
44
+
45
+ if (!value && !loading) {
46
+ return <></>;
47
+ }
48
+
49
+ if (loading) {
50
+ return <LoadingOutlined />;
51
+ }
52
+
53
+ const selectionDescription = selectionValues.get(model);
54
+
55
+ return (
56
+ <Space>
57
+ <>{`${selectionDescription}:`}</>
58
+ <>{name}</>
59
+ <Many2oneSuffix id={intId} model={model} />
60
+ </Space>
61
+ );
62
+ };
@@ -0,0 +1,18 @@
1
+ import { Space } from "antd";
2
+ import React from "react";
3
+ import { Many2oneSuffix } from "./Many2oneSuffix";
4
+
5
+ export type Many2oneTreeProps = { m2oField: any };
6
+
7
+ export const Many2oneTree = (props: Many2oneTreeProps): React.ReactElement => {
8
+ const { m2oField } = props;
9
+ if (!m2oField) {
10
+ return <></>;
11
+ }
12
+ return (
13
+ <Space>
14
+ <>{m2oField.value}</>
15
+ <Many2oneSuffix id={m2oField.id} model={m2oField.model} />
16
+ </Space>
17
+ );
18
+ };
@@ -574,6 +574,7 @@ const One2manyInput: React.FC<One2manyInputProps> = (
574
574
  }}
575
575
  sorter={sorter}
576
576
  onChangeSort={setSorter}
577
+ context={{ ...getContext?.(), ...context }}
577
578
  />
578
579
  );
579
580
  }
@@ -219,6 +219,7 @@ function DashboardTree(props: Props) {
219
219
  });
220
220
  setResults(sortedResults);
221
221
  }}
222
+ context={parentContext}
222
223
  />
223
224
  </div>
224
225
  );
@@ -305,6 +305,7 @@ function SearchTree(props: Props, ref: any) {
305
305
  searchValues={searchValues}
306
306
  />
307
307
  <Tree
308
+ context={parentContext}
308
309
  total={totalItems}
309
310
  limit={limit}
310
311
  page={page}
@@ -17,6 +17,8 @@ import {
17
17
  } from "@ant-design/icons";
18
18
  import { One2manyValue } from "../base/one2many/One2manyInput";
19
19
  import { Interweave } from "interweave";
20
+ import { Many2oneTree } from "../base/many2one/Many2oneTree";
21
+ import { ReferenceTree } from "../base/ReferenceTree";
20
22
 
21
23
  type Props = {
22
24
  total?: number;
@@ -35,6 +37,7 @@ type Props = {
35
37
  sorter?: any;
36
38
  onFetchChildrenForRecord?: (item: any) => Promise<any[]>;
37
39
  childField?: string;
40
+ context?: any;
38
41
  };
39
42
 
40
43
  const booleanComponentFn = (value: boolean): React.ReactElement => {
@@ -52,16 +55,9 @@ const booleanComponentFn = (value: boolean): React.ReactElement => {
52
55
  };
53
56
 
54
57
  const many2OneComponentFn = (m2oField: any): React.ReactElement => {
55
- if (!m2oField) {
56
- return <></>;
57
- }
58
- return (
59
- <Space>
60
- <>{m2oField.value}</>
61
- <Many2oneSuffix id={m2oField.id} model={m2oField.model} />
62
- </Space>
63
- );
58
+ return <Many2oneTree m2oField={m2oField} />;
64
59
  };
60
+
65
61
  const textComponentFn = (value: any): React.ReactElement => {
66
62
  return <Interweave content={value?.replace(/(?:\r\n|\r|\n)/g, "<br>")} />;
67
63
  };
@@ -92,6 +88,23 @@ const imageComponent = (value: string): React.ReactElement => {
92
88
  );
93
89
  };
94
90
 
91
+ const referenceComponent = (
92
+ value: any,
93
+ key: string,
94
+ fieldDefinitions: any,
95
+ context: any
96
+ ): React.ReactElement => {
97
+ return (
98
+ <>
99
+ <ReferenceTree
100
+ value={value}
101
+ selectionValues={new Map(fieldDefinitions?.selection)}
102
+ context={context}
103
+ />
104
+ </>
105
+ );
106
+ };
107
+
95
108
  function Tree(props: Props): React.ReactElement {
96
109
  const {
97
110
  page = 1,
@@ -110,6 +123,7 @@ function Tree(props: Props): React.ReactElement {
110
123
  sorter,
111
124
  onFetchChildrenForRecord,
112
125
  childField,
126
+ context,
113
127
  } = props;
114
128
 
115
129
  const [items, setItems] = useState<Array<any>>([]);
@@ -125,18 +139,23 @@ function Tree(props: Props): React.ReactElement {
125
139
  useEffect(() => {
126
140
  treeOoui.current = getTree(treeView);
127
141
 
128
- const columns = getTableColumns(treeOoui.current, {
129
- boolean: booleanComponentFn,
130
- many2one: many2OneComponentFn,
131
- text: textComponentFn,
132
- one2many: one2ManyComponentFn,
133
- many2many: one2ManyComponentFn,
134
- progressbar: progressBarComponentFn,
135
- float_time: floatTimeComponent,
136
- image: imageComponent,
137
- integer: numberComponent,
138
- float: numberComponent,
139
- });
142
+ const columns = getTableColumns(
143
+ treeOoui.current,
144
+ {
145
+ boolean: booleanComponentFn,
146
+ many2one: many2OneComponentFn,
147
+ text: textComponentFn,
148
+ one2many: one2ManyComponentFn,
149
+ many2many: one2ManyComponentFn,
150
+ progressbar: progressBarComponentFn,
151
+ float_time: floatTimeComponent,
152
+ image: imageComponent,
153
+ integer: numberComponent,
154
+ float: numberComponent,
155
+ reference: referenceComponent,
156
+ },
157
+ context
158
+ );
140
159
 
141
160
  setColumns(columns);
142
161
  }, [treeView]);