Skip to content

Commit 4f9f76f

Browse files
committed
重构
1 parent c0fa965 commit 4f9f76f

28 files changed

+147
-70
lines changed

src/workflow-editor/WorkflowEditor/WorkFlowEditorInner.tsx renamed to src/example/WorkflowEditor/WorkFlowEditorInner.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@ import { EllipsisOutlined, ExportOutlined, ImportOutlined, LeftOutlined, MobileO
22
import { Avatar, Button, Dropdown, MenuProps, Space } from "antd"
33
import { memo, useCallback, useMemo, useState } from "react"
44
import { styled } from "styled-components"
5-
import { WorkflowDiagram } from "../WorkflowDiagram"
6-
import { useTranslate } from "../react-locales"
7-
import { NavTabs } from "./NavTabs"
8-
import { Toolbar } from "./Toolbar"
95
import classNames from "classnames"
6+
import { NavTabs, Toolbar, WorkflowDiagram } from "../../workflow-editor"
7+
import { useTranslate } from "../../workflow-editor/react-locales"
108

119
const Container = styled.div`
1210
flex:1;

src/example/WorkflowEditor/index.tsx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { memo } from "react"
2+
import { WorkFlowEditorInner } from "./WorkFlowEditorInner"
3+
import { ILocales } from "@rxdrag/locales"
4+
import { IThemeToken } from "../../workflow-editor"
5+
import { IMaterialUIs, WorkFlowScope } from "../../workflow-editor/"
6+
7+
export type WorkflowEditorProps = {
8+
themeMode?: 'dark' | 'light',
9+
themeToken?: IThemeToken,
10+
lang?: string,
11+
locales?: ILocales,
12+
materialUis?: IMaterialUIs,
13+
}
14+
15+
export const WorkflowEditor = memo((props: WorkflowEditorProps) => {
16+
const { themeMode, themeToken, lang, locales, materialUis, ...other } = props;
17+
return (
18+
<WorkFlowScope
19+
mode={themeMode}
20+
themeToken={themeToken}
21+
lang={lang}
22+
locales={locales}
23+
materialUis = {materialUis}
24+
>
25+
<WorkFlowEditorInner {...other} />
26+
</WorkFlowScope>
27+
)
28+
})

src/example/index.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import { Button, Space } from "antd"
22
import { memo, useCallback, useState } from "react"
3-
import { WorkflowEditor } from "../workflow-editor/WorkflowEditor"
43
import { ShellContainer } from "./ShellContainer"
54
import { styled } from "styled-components"
5+
import { WorkflowEditor } from "./WorkflowEditor"
6+
import { materialUis } from "./materialUis"
67

78
const Toolbar = styled.div`
89
height: 56px;
@@ -42,7 +43,11 @@ export const Example = memo(() => {
4243
<Button onClick={handleSwitchLang}>{lang === Lang.cn ? "English" : "中文"}</Button>
4344
</Space>
4445
</Toolbar>
45-
<WorkflowEditor themeMode={themeMode} lang={lang} />
46+
<WorkflowEditor
47+
themeMode={themeMode}
48+
lang={lang}
49+
materialUis = {materialUis}
50+
/>
4651
</ShellContainer>
4752
)
4853
})

src/example/materialUis.tsx

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
import { IMaterialUIs, IWorkFlowNode, NodeType } from "../workflow-editor";
2+
import { ApproverPanel, IApproverSettings } from "./setterss/ApproverPanel";
3+
import { AuditPanel, IAuditSettings } from "./setterss/AuditPanel";
4+
import { ConditionPanel, IConditionSettings } from "./setterss/ConditionPanel";
5+
import { INotifierSettings, NotifierPanel } from "./setterss/NotifierPanel";
6+
import { IStartSettings, StartPanel } from "./setterss/StartPanel";
7+
8+
export const materialUis: IMaterialUIs = {
9+
[NodeType.approver]: {
10+
viewContent: (node: IWorkFlowNode<IApproverSettings>)=>{
11+
return <></>
12+
},
13+
settingsPanel: ApproverPanel,
14+
},
15+
[NodeType.audit]: {
16+
viewContent: (node: IWorkFlowNode<IAuditSettings>)=>{
17+
return <></>
18+
},
19+
settingsPanel: AuditPanel,
20+
},
21+
[NodeType.condition]: {
22+
viewContent: (node: IWorkFlowNode<IConditionSettings>)=>{
23+
return <></>
24+
},
25+
settingsPanel: ConditionPanel,
26+
},
27+
[NodeType.notifier]: {
28+
viewContent: (node: IWorkFlowNode<INotifierSettings>)=>{
29+
return <></>
30+
},
31+
settingsPanel: NotifierPanel,
32+
},
33+
[NodeType.start]: {
34+
viewContent: (node: IWorkFlowNode<IStartSettings>)=>{
35+
return <></>
36+
},
37+
settingsPanel: StartPanel,
38+
},
39+
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { memo, useState } from "react"
2-
import { ButtonSelect } from "../SettingsPanel/ButtonSelect"
2+
import { ButtonSelect } from "../../workflow-editor/components/ButtonSelect"
33
import { QuestionCircleOutlined } from "@ant-design/icons"
44
import { FormAuth } from "./FormAuth"
5-
import { useTranslate } from "../../react-locales"
5+
import { useTranslate } from "../../workflow-editor/react-locales"
66
import { Form, Radio } from "antd"
77
import FormItem from "antd/es/form/FormItem"
88

src/workflow-editor/WorkflowDiagram/defaultMaterials/AuditPanel.tsx renamed to src/example/setterss/AuditPanel.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { memo, useState } from "react"
2-
import { ButtonSelect } from "../SettingsPanel/ButtonSelect"
32
import { QuestionCircleOutlined } from "@ant-design/icons"
43
import { FormAuth } from "./FormAuth"
5-
import { useTranslate } from "../../react-locales"
64
import { Form } from "antd"
5+
import { useTranslate } from "../../workflow-editor/react-locales"
6+
import { ButtonSelect } from "../../workflow-editor"
77

88
export interface IAuditSettings {
99

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { memo, useState } from "react"
2-
import { useTranslate } from "../../react-locales"
32
import { Form } from "antd"
3+
import { useTranslate } from "../../workflow-editor/react-locales"
44

55
export interface IConditionSettings {
66

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { memo, useState } from "react"
2-
import { ButtonSelect } from "../SettingsPanel/ButtonSelect"
2+
import { ButtonSelect } from "../../workflow-editor/components/ButtonSelect"
33
import { QuestionCircleOutlined } from "@ant-design/icons"
44
import { FormAuth } from "./FormAuth"
5-
import { useTranslate } from "../../react-locales"
5+
import { useTranslate } from "../../workflow-editor/react-locales"
66
import { Form } from "antd"
77

88
export interface INotifierSettings {

src/workflow-editor/WorkflowDiagram/defaultMaterials/StartPanel.tsx renamed to src/example/setterss/StartPanel.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { memo, useState } from "react"
2-
import { ButtonSelect } from "../SettingsPanel/ButtonSelect"
32
import { QuestionCircleOutlined } from "@ant-design/icons"
43
import { FormAuth } from "./FormAuth"
5-
import { useTranslate } from "../../react-locales"
64
import { Form } from "antd"
7-
import { MemberSelect } from "../SettingsPanel/MemberSelect"
5+
import { ButtonSelect, MemberSelect } from "../../workflow-editor"
6+
import { useTranslate } from "../../workflow-editor/react-locales"
87

98
export interface IStartSettings {
109

0 commit comments

Comments
 (0)