Skip to content

Commit

Permalink
fix: adjust treeactionview switcher
Browse files Browse the repository at this point in the history
  • Loading branch information
mguellsegarra committed Sep 21, 2024
1 parent 75dd0eb commit 08fd37e
Showing 1 changed file with 57 additions and 30 deletions.
87 changes: 57 additions & 30 deletions src/views/actionViews/TreeActionView.tsx
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import TreeActionBar from "@/actionbar/TreeActionBar";
import { FormView, TreeView, View } from "@/types";
import TitleHeader from "@/ui/TitleHeader";
import { useContext } from "react";
import { Fragment, useCallback, useContext } from "react";
import {
ActionViewContext,
ActionViewContextType,
} from "@/context/ActionViewContext";
import { SearchTreeInfinite } from "@/widgets/views/SearchTreeInfinite";
import SearchTree from "@/widgets/views/SearchTree";

export type TreeActionViewProps = {
formView?: FormView;
Expand Down Expand Up @@ -42,49 +43,75 @@ export const TreeActionView = (props: TreeActionViewProps) => {
searchTreeNameSearch,
} = props;

const isInfiniteTree = true; // TODO: Change this into a way to know wether the tree is marked as infinite or not

const { currentView, setPreviousView } = useContext(
ActionViewContext,
) as ActionViewContextType;

const onRowClicked = useCallback(
(event: any) => {
const { id } = event;
setCurrentId(id);
const itemIndex = results.findIndex((item: any) => {
return item.id === id;
});
setPreviousView?.(currentView);
setCurrentItemIndex(itemIndex);
const formView = availableViews.find(
(v) => v.type === "form",
) as FormView;
setCurrentView(formView);
},
[
availableViews,
currentView,
results,
setCurrentId,
setCurrentItemIndex,
setCurrentView,
setPreviousView,
],
);

if (!visible) {
return null;
}

return (
<>
{
// TODO: change this to true in older components
}
<TitleHeader showSummary={false}>
<Fragment>
<TitleHeader showSummary={!isInfiniteTree}>
<TreeActionBar
toolbar={treeView?.toolbar}
parentContext={context}
treeExpandable={treeView?.isExpandable || false}
/>
</TitleHeader>
<SearchTreeInfinite
ref={searchTreeRef}
rootTree={true}
model={model}
parentContext={context}
nameSearch={searchTreeNameSearch}
formView={formView}
treeView={treeView}
domain={domain}
onRowClicked={(event: any) => {
const { id } = event;
setCurrentId(id);
const itemIndex = results.findIndex((item: any) => {
return item.id === id;
});
setPreviousView?.(currentView);
setCurrentItemIndex(itemIndex);
const formView = availableViews.find(
(v) => v.type === "form",
) as FormView;
setCurrentView(formView);
}}
/>
</>
{isInfiniteTree && (
<SearchTreeInfinite
ref={searchTreeRef}
rootTree={true}
model={model}
parentContext={context}
formView={formView}
treeView={treeView}
domain={domain}
onRowClicked={onRowClicked}
/>
)}
{!isInfiniteTree && (
<SearchTree
ref={searchTreeRef}
rootTree={true}
model={model}
parentContext={context}
nameSearch={searchTreeNameSearch}
formView={formView}
treeView={treeView}
domain={domain}
onRowClicked={onRowClicked}
/>
)}
</Fragment>
);
};

0 comments on commit 08fd37e

Please sign in to comment.