Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit1d86562

Browse files
committed
refactor navComp
1 parent18fadd6 commit1d86562

File tree

3 files changed

+79
-72
lines changed

3 files changed

+79
-72
lines changed
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
import{BoolCodeControl,StringControl}from"comps/controls/codeControl";
2+
import{clickEvent,eventHandlerControl}from"comps/controls/eventHandlerControl";
3+
import{MultiCompBuilder}from"comps/generators/multi";
4+
import{dropdownControl}from"comps/controls/dropdownControl";
5+
import{mapOptionsControl}from"comps/controls/optionsControl";
6+
import{trans}from"i18n";
7+
import{navListComp}from"../navItemComp";
8+
import{controlItem}from"lowcoder-design";
9+
import{menuPropertyView}from"./MenuItemList";
10+
11+
exportfunctioncreateNavItemsControl(){
12+
constOptionTypes=[
13+
{label:trans("prop.manual"),value:"manual"},
14+
{label:trans("prop.map"),value:"map"},
15+
]asconst;
16+
17+
constNavMapOption=newMultiCompBuilder(
18+
{
19+
label:StringControl,
20+
hidden:BoolCodeControl,
21+
disabled:BoolCodeControl,
22+
active:BoolCodeControl,
23+
onEvent:eventHandlerControl([clickEvent]),
24+
},
25+
(props)=>props
26+
)
27+
.setPropertyViewFn((children)=>(
28+
<>
29+
{children.label.propertyView({label:trans("label"),placeholder:"{{item}}"})}
30+
{children.active.propertyView({label:trans("navItemComp.active")})}
31+
{children.hidden.propertyView({label:trans("hidden")})}
32+
{children.disabled.propertyView({label:trans("disabled")})}
33+
{children.onEvent.getPropertyView()}
34+
</>
35+
))
36+
.build();
37+
38+
constTmpNavItemsControl=newMultiCompBuilder(
39+
{
40+
optionType:dropdownControl(OptionTypes,"manual"),
41+
manual:navListComp(),
42+
mapData:mapOptionsControl(NavMapOption),
43+
},
44+
(props)=>{
45+
returnprops.optionType==="manual" ?props.manual :props.mapData;
46+
}
47+
)
48+
.setPropertyViewFn(()=>{
49+
thrownewError("Method not implemented.");
50+
})
51+
.build();
52+
53+
returnclassNavItemsControlextendsTmpNavItemsControl{
54+
exposingNode(){
55+
returnthis.children.optionType.getView()==="manual"
56+
?(this.children.manualasany).exposingNode()
57+
:(this.children.mapDataasany).exposingNode();
58+
}
59+
60+
propertyView(){
61+
constisManual=this.children.optionType.getView()==="manual";
62+
constcontent=isManual
63+
?menuPropertyView(this.children.manualasany)
64+
:this.children.mapData.getPropertyView();
65+
66+
returncontrolItem(
67+
{searchChild:true},
68+
<>
69+
{this.children.optionType.propertyView({radioButton:true,type:"oneline"})}
70+
{content}
71+
</>
72+
);
73+
}
74+
};
75+
}
76+
77+

‎client/packages/lowcoder/src/comps/comps/navComp/navComp.tsx‎

Lines changed: 1 addition & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,8 @@ import { trans } from "i18n";
2323

2424
import{useContext}from"react";
2525
import{EditorContext}from"comps/editorState";
26-
import{dropdownControl}from"comps/controls/dropdownControl";
2726
import{controlItem}from"lowcoder-design";
28-
import{mapOptionsControl}from"comps/controls/optionsControl";
27+
import{createNavItemsControl}from"./components/NavItemsControl";
2928

3029
typeIProps={
3130
$justify:boolean;
@@ -329,72 +328,3 @@ export const NavComp = withExposingConfigs(NavCompBase, [
329328
NameConfigHidden,
330329
newNameConfig("items",trans("navigation.itemsDesc")),
331330
]);
332-
333-
// ----------------------------------------
334-
// Nav Items Control (Manual / Map modes)
335-
// ----------------------------------------
336-
functioncreateNavItemsControl(){
337-
constOptionTypes=[
338-
{label:trans("prop.manual"),value:"manual"},
339-
{label:trans("prop.map"),value:"map"},
340-
]asconst;
341-
342-
constNavMapOption=newMultiCompBuilder(
343-
{
344-
label:StringControl,
345-
hidden:BoolCodeControl,
346-
disabled:BoolCodeControl,
347-
active:BoolCodeControl,
348-
onEvent:eventHandlerControl([clickEvent]),
349-
},
350-
(props)=>props
351-
)
352-
.setPropertyViewFn((children)=>(
353-
<>
354-
{children.label.propertyView({label:trans("label"),placeholder:"{{item}}"})}
355-
{children.active.propertyView({label:trans("navItemComp.active")})}
356-
{children.hidden.propertyView({label:trans("hidden")})}
357-
{children.disabled.propertyView({label:trans("disabled")})}
358-
{children.onEvent.getPropertyView()}
359-
</>
360-
))
361-
.build();
362-
363-
constTmpNavItemsControl=newMultiCompBuilder(
364-
{
365-
optionType:dropdownControl(OptionTypes,"manual"),
366-
manual:navListComp(),
367-
mapData:mapOptionsControl(NavMapOption),
368-
},
369-
(props)=>{
370-
returnprops.optionType==="manual" ?props.manual :props.mapData;
371-
}
372-
)
373-
.setPropertyViewFn(()=>{
374-
thrownewError("Method not implemented.");
375-
})
376-
.build();
377-
378-
returnclassNavItemsControlextendsTmpNavItemsControl{
379-
exposingNode(){
380-
returnthis.children.optionType.getView()==="manual"
381-
?(this.children.manualasany).exposingNode()
382-
:(this.children.mapDataasany).exposingNode();
383-
}
384-
385-
propertyView(){
386-
constisManual=this.children.optionType.getView()==="manual";
387-
constcontent=isManual
388-
?menuPropertyView(this.children.manualasany)
389-
:this.children.mapData.getPropertyView();
390-
391-
returncontrolItem(
392-
{searchChild:true},
393-
<>
394-
{this.children.optionType.propertyView({radioButton:true,type:"oneline"})}
395-
{content}
396-
</>
397-
);
398-
}
399-
};
400-
}

‎client/packages/lowcoder/src/comps/comps/navComp/navItemComp.tsx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,9 @@ export class NavItemComp extends MultiBaseComp<ChildrenType> {
4545
return(
4646
<>
4747
{this.children.label.propertyView({label:trans("label")})}
48-
{disabledPropertyView(this.children)}
4948
{hiddenPropertyView(this.children)}
5049
{this.children.active.propertyView({label:trans("navItemComp.active")})}
50+
{disabledPropertyView(this.children)}
5151
{this.children.onEvent.propertyView({inline:true})}
5252
</>
5353
);

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp