Skip to content

Commit 0a738d4

Browse files
[WEB-5306] refactor: base layouts (#8051)
1 parent c719d67 commit 0a738d4

File tree

3 files changed

+29
-15
lines changed

3 files changed

+29
-15
lines changed

apps/web/core/components/base-layouts/kanban/layout.tsx

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,22 @@ export const BaseKanbanLayout = observer(<T extends IBaseLayoutsKanbanItem>(prop
2020
showEmptyGroups = true,
2121
enableDragDrop = false,
2222
loadMoreItems,
23-
collapsedGroups: externalCollapsedGroups = [],
24-
onToggleGroup: externalOnToggleGroup = () => {},
23+
collapsedGroups: externalCollapsedGroups,
24+
onToggleGroup: externalOnToggleGroup,
2525
} = props;
2626

27-
const { containerRef, collapsedGroups, onToggleGroup } = useLayoutState({
28-
mode: "external",
29-
externalCollapsedGroups,
30-
externalOnToggleGroup,
31-
});
27+
const useExternalMode = externalCollapsedGroups !== undefined && externalOnToggleGroup !== undefined;
28+
const { containerRef, collapsedGroups, onToggleGroup } = useLayoutState(
29+
useExternalMode
30+
? {
31+
mode: "external",
32+
externalCollapsedGroups,
33+
externalOnToggleGroup,
34+
}
35+
: {
36+
mode: "internal",
37+
}
38+
);
3239

3340
return (
3441
<div ref={containerRef} className={cn("relative w-full flex gap-2 p-3 h-full overflow-x-auto", className)}>

apps/web/core/components/base-layouts/layout-switcher.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { BASE_LAYOUTS } from "./constants";
99
type Props = {
1010
layouts?: TBaseLayoutType[];
1111
onChange: (layout: TBaseLayoutType) => void;
12-
selectedLayout: TBaseLayoutType | undefined;
12+
selectedLayout: TBaseLayoutType;
1313
};
1414

1515
export const LayoutSwitcher: React.FC<Props> = (props) => {

apps/web/core/components/base-layouts/list/layout.tsx

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,24 @@ export const BaseListLayout = observer(<T extends IBaseLayoutsListItem>(props: I
1717
onDrop,
1818
canDrag,
1919
showEmptyGroups = false,
20-
collapsedGroups: externalCollapsedGroups = [],
21-
onToggleGroup: externalOnToggleGroup = () => {},
20+
collapsedGroups: externalCollapsedGroups,
21+
onToggleGroup: externalOnToggleGroup,
2222
loadMoreItems,
2323
className,
2424
} = props;
2525

26-
const { containerRef, collapsedGroups, onToggleGroup } = useLayoutState({
27-
mode: "external",
28-
externalCollapsedGroups,
29-
externalOnToggleGroup,
30-
});
26+
const useExternalMode = externalCollapsedGroups !== undefined && externalOnToggleGroup !== undefined;
27+
const { containerRef, collapsedGroups, onToggleGroup } = useLayoutState(
28+
useExternalMode
29+
? {
30+
mode: "external",
31+
externalCollapsedGroups,
32+
externalOnToggleGroup,
33+
}
34+
: {
35+
mode: "internal",
36+
}
37+
);
3138

3239
return (
3340
<div ref={containerRef} className={cn("relative size-full overflow-auto bg-custom-background-90", className)}>

0 commit comments

Comments
 (0)