-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Expand file tree
/
Copy pathLayoutNodeFactory.ts
More file actions
31 lines (30 loc) · 998 Bytes
/
LayoutNodeFactory.ts
File metadata and controls
31 lines (30 loc) · 998 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import BottomTabs from './BottomTabsNode';
import ComponentNode from './ComponentNode';
import Stack from './StackNode';
import ParentNode from './ParentNode';
import SideMenuRootNode, {
SideMenuLeftNode,
SideMenuRightNode,
SideMenuCenterNode,
} from './SideMenu';
export default class LayoutNodeFactory {
static create(layout: any, parentNode?: ParentNode) {
switch (layout.type) {
case 'Component':
return new ComponentNode(layout, parentNode);
case 'Stack':
return new Stack(layout, parentNode);
case 'SideMenuRoot':
return new SideMenuRootNode(layout, parentNode);
case 'SideMenuLeft':
return new SideMenuLeftNode(layout, parentNode);
case 'SideMenuCenter':
return new SideMenuCenterNode(layout, parentNode);
case 'SideMenuRight':
return new SideMenuRightNode(layout, parentNode);
default: // TODO Undo
case 'BottomTabs':
return new BottomTabs(layout, parentNode);
}
}
}