Compare commits

..

7 Commits

Author SHA1 Message Date
wwsun 979aa34259 chore(release): publish
- @music163/tango-context@0.2.10
 - @music163/tango-core@0.2.9
 - @music163/tango-designer@0.5.12
 - @music163/tango-sandbox@0.1.14
 - @music163/tango-setting-form@0.2.14
2023-11-30 15:46:50 +08:00
wwsun 76a5a2c659 fix: fix render components tree 2023-11-30 15:44:42 +08:00
wwsun 53ebd89c9a chore(release): publish
- @music163/tango-context@0.2.9
 - @music163/tango-core@0.2.8
 - @music163/tango-designer@0.5.11
 - @music163/tango-sandbox@0.1.13
 - @music163/tango-setting-form@0.2.13
2023-11-29 14:50:40 +08:00
wwsun 3980810502 docs: update milestone 2023-11-29 14:47:40 +08:00
Wells accd826376 fix: workspace onFilesChange (#70)
* fix: workspace onFilesChange

* fix: remove appJson parse logic

* style: remove comments

---------

Co-authored-by: wwsun <ww.sww@outlook.com>
2023-11-29 14:43:06 +08:00
wwsun 5ca1118f88 chore(release): publish
- @music163/tango-designer@0.5.10
2023-11-28 14:55:20 +08:00
wwsun 14cd4c54a1 fix: update default theme 2023-11-28 14:51:10 +08:00
23 changed files with 108 additions and 99 deletions
+4 -4
View File
@@ -45,10 +45,10 @@ gantt
%% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)
section Builder Release
Alpha version :active, des1, 2023-08-10, 2023-08-30
Beta version : des2, 2023-09-01, 2023-09-30
1.0 RC : des3, after des2, 40d
1.0 version : des4, after des3, 21d
Alpha version :active, m1, 2023-08-10, 2023-08-30
Beta version : m2, 2023-09-01, 2023-09-30
1.0 RC : m3, 2023-10-01, 2023-12-15
1.0 version : m4, after m3, 10d
```
## 💻 Development
+4 -4
View File
@@ -45,10 +45,10 @@ gantt
%% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)
section Builder Release
Alpha version :active, des1, 2023-08-10, 2023-08-30
Beta version : des2, 2023-09-01, 2023-09-30
1.0 RC : des3, after des2, 40d
1.0 version : des4, after des3, 21d
Alpha version :active, m1, 2023-08-10, 2023-08-30
Beta version : m2, 2023-09-01, 2023-09-30
1.0 RC : m3, 2023-10-01, 2023-12-15
1.0 version : m4, after m3, 10d
```
## 💻 开发
-10
View File
@@ -75,15 +75,6 @@ const tangoConfigJson = {
},
};
const appJson: any = {
pages: [
{
path: '/',
name: '首页',
},
],
};
const routesCode = `
import Index from "./pages/list";
@@ -249,7 +240,6 @@ p {
export const sampleFiles = [
{ filename: '/package.json', code: JSON.stringify(packageJson) },
{ filename: '/appJson.json', code: JSON.stringify(appJson) },
{ filename: '/tango.config.json', code: JSON.stringify(tangoConfigJson) },
{ filename: '/README.md', code: '# readme' },
{ filename: '/src/index.less', code: lessCode },
+1 -1
View File
@@ -82,7 +82,6 @@ export default function App() {
}
>
<Sidebar>
<Sidebar.Item key="outline" label="结构" icon={<BuildOutlined />} />
<Sidebar.Item
key="components"
label="组件"
@@ -92,6 +91,7 @@ export default function App() {
loading: menuLoading,
}}
/>
<Sidebar.Item key="outline" label="结构" icon={<BuildOutlined />} />
<Sidebar.Item
key="variables"
label="变量"
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.2.10](https://github.com/netease/tango/compare/@music163/tango-context@0.2.9...@music163/tango-context@0.2.10) (2023-11-30)
**Note:** Version bump only for package @music163/tango-context
## [0.2.9](https://github.com/netease/tango/compare/@music163/tango-context@0.2.8...@music163/tango-context@0.2.9) (2023-11-29)
**Note:** Version bump only for package @music163/tango-context
## [0.2.8](https://github.com/netease/tango/compare/@music163/tango-context@0.2.7...@music163/tango-context@0.2.8) (2023-11-27)
**Note:** Version bump only for package @music163/tango-context
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@music163/tango-context",
"version": "0.2.8",
"version": "0.2.10",
"description": "react context for tango-apps",
"keywords": [
"react",
@@ -31,7 +31,7 @@
"react": ">= 16.8"
},
"dependencies": {
"@music163/tango-core": "^0.2.7",
"@music163/tango-core": "^0.2.9",
"@music163/tango-helpers": "^0.1.8",
"mobx-react-lite": "4.0.2"
},
+12
View File
@@ -3,6 +3,18 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.2.9](https://github.com/netease/tango/compare/@music163/tango-core@0.2.8...@music163/tango-core@0.2.9) (2023-11-30)
### Bug Fixes
- fix render components tree ([76a5a2c](https://github.com/netease/tango/commit/76a5a2c65920bc42b019cd1f32a3cacd0d888638))
## [0.2.8](https://github.com/netease/tango/compare/@music163/tango-core@0.2.7...@music163/tango-core@0.2.8) (2023-11-29)
### Bug Fixes
- workspace onFilesChange ([#70](https://github.com/netease/tango/issues/70)) ([accd826](https://github.com/netease/tango/commit/accd8263764c811ea8175a9cd341fc6fa6c75967))
## [0.2.7](https://github.com/netease/tango/compare/@music163/tango-core@0.2.6...@music163/tango-core@0.2.7) (2023-11-27)
### Bug Fixes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@music163/tango-core",
"version": "0.2.7",
"version": "0.2.9",
"description": "tango core",
"author": "wwsun <ww.sun@outlook.com>",
"homepage": "",
@@ -688,7 +688,6 @@ export function addRouteToRouteFile(ast: t.File, routePath: string, importFilePa
const newNode = t.objectExpression([
t.objectProperty(t.identifier('path'), t.stringLiteral(routePath)),
t.objectProperty(t.identifier('component'), t.identifier(component)),
// FIXME: tango/issues#144 https://g.hz.netease.com/tango/issues/-/issues/144
t.objectProperty(t.identifier('exact'), t.booleanLiteral(true)),
]);
path.node.elements.push(newNode);
+2
View File
@@ -56,6 +56,7 @@ export class TangoFile {
this._code = code;
this._cleanCode = code;
}
this.workspace.onFilesChange([this.filename]);
}
}
@@ -134,6 +135,7 @@ export class TangoJsonFile extends TangoFile {
logger.error(err);
}
}
this.workspace.onFilesChange([this.filename]);
}
/**
+6 -2
View File
@@ -149,8 +149,6 @@ export interface IWorkspace {
setComponentPrototypes: (prototypes: Record<string, ComponentPrototypeType>) => void;
getPrototype: (name: string | ComponentPrototypeType) => ComponentPrototypeType;
onFilesChange?: (filenames: string[]) => void;
// ----------------- 文件操作 -----------------
addFiles: (files: IFileConfig[]) => void;
addFile: (filename: string, code: string, fileType?: FileType) => void;
@@ -169,6 +167,12 @@ export interface IWorkspace {
listFiles: () => Record<string, string>;
getFile: (filename: string) => TangoFile;
/**
* 文件变化回调
* @param filenames 文件名列表
*/
onFilesChange: (filenames: string[]) => void;
// ----------------- 节点操作 -----------------
removeSelectedNode: () => void;
+2
View File
@@ -46,6 +46,8 @@ export class TangoModule extends TangoFile {
this._analysisAst();
this.workspace.onFilesChange([this.filename]);
if (refreshWorkspace) {
this.workspace.refresh([this.filename]);
}
+11 -52
View File
@@ -1,7 +1,6 @@
import { action, computed, makeObservable, observable } from 'mobx';
import { JSXElement } from '@babel/types';
import {
array2object,
ComponentPrototypeType,
hasFileExtension,
isString,
@@ -16,7 +15,6 @@ import {
getJSXElementChildrenNames,
namesToImportDeclarations,
getBlockNameByFilename,
getPrivilegeCode,
prototype2importDeclarationData,
} from '../helpers';
import { DropMethod } from './drop-target';
@@ -59,7 +57,7 @@ export interface IWorkspaceOptions {
/**
* 工作区文件变更事件
*/
onFilesChange?: (filenames: string[]) => void;
onFilesChange?: IWorkspace['onFilesChange'];
}
/**
@@ -124,17 +122,6 @@ export class Workspace extends EventTarget implements IWorkspace {
*/
tangoConfigJson: TangoJsonFile;
/**
* appJson.json 文件
* FIXME: 是否保留 ???
*/
appJson: TangoJsonFile;
/**
* 代码变更回调
*/
onFilesChange?: (filenames: string[]) => void;
/**
* 绑定事件
* TODO: 是否需要自己来管理 listeners,并及时进行 gc
@@ -170,15 +157,12 @@ export class Workspace extends EventTarget implements IWorkspace {
* 获取页面列表
*/
get pages() {
const appJsonPages = this.appJson?.getValue('pages');
const pagesMap = array2object(appJsonPages || [], (item) => item.path);
const ret: IPageConfigData[] = [];
this.routeModule?.routes.forEach((item) => {
const data = pagesMap[item.path];
if (item.path !== '*') {
ret.push({
...data,
path: item.path,
name: item.component,
});
}
});
@@ -230,7 +214,11 @@ export class Workspace extends EventTarget implements IWorkspace {
this.activeViewFile = '';
this.files = new Map();
this.isReady = false;
this.onFilesChange = options?.onFilesChange;
if (options?.onFilesChange) {
// 使用用户提供的 onFilesChange
this.onFilesChange = options.onFilesChange;
}
if (options?.files) {
this.addFiles(options.files);
@@ -390,10 +378,6 @@ export class Workspace extends EventTarget implements IWorkspace {
module = new TangoJsonFile(this, props);
this.tangoConfigJson = module;
break;
case FileType.AppJson:
module = new TangoJsonFile(this, props);
this.appJson = module;
break;
case FileType.Json:
module = new TangoJsonFile(this, props);
break;
@@ -517,12 +501,6 @@ export class Workspace extends EventTarget implements IWorkspace {
this.routeModule.removeRoute(routePath).update();
this.setActiveRoute(this.routeModule.routes[0]?.path || '/');
}
// remove appJson page
this.appJson
?.setValue('pages', (pages) => {
return (pages as IPageConfigData[]).filter((page) => page.path !== routePath);
})
.update();
this.removeFile(filename);
}
@@ -552,16 +530,6 @@ export class Workspace extends EventTarget implements IWorkspace {
*/
addRoute(routeData: IPageConfigData, importFilePath: string) {
this.routeModule?.addRoute(routeData.path, importFilePath).update();
this.appJson
?.setValue('pages', (pages) => {
(pages as IPageConfigData[]).push({
name: routeData.name || routeData.path,
path: routeData.path,
privilegeCode: getPrivilegeCode(this.packageJson?.getValue('name'), routeData.path),
});
return pages;
})
.update();
}
/**
@@ -573,18 +541,6 @@ export class Workspace extends EventTarget implements IWorkspace {
if (sourceRoutePath !== targetPageData.path) {
this.routeModule?.updateRoute(sourceRoutePath, targetPageData.path).update();
}
this.appJson
?.setValue('pages', (pages) => {
for (const page of pages as IPageConfigData[]) {
if (page.path === sourceRoutePath) {
page.path = targetPageData.path;
page.name = targetPageData.name;
break;
}
}
return pages;
})
.update();
}
/**
@@ -1175,6 +1131,10 @@ export class Workspace extends EventTarget implements IWorkspace {
}
}
onFilesChange(filenams: string[]) {
// do nothing
}
/**
* 刷新目标文件
* @param filenames
@@ -1188,7 +1148,6 @@ export class Workspace extends EventTarget implements IWorkspace {
},
}),
);
this.onFilesChange?.(filenames);
}
/**
+1 -2
View File
@@ -100,7 +100,6 @@ export interface IImportSpecifierData {
/**
* 解析的导入语句数据
* FIXME: 需要考虑到有两行重复的语句的情况
*/
export type ImportDeclarationDataType = Record<string, IImportSpecifierData[]>;
@@ -193,7 +192,7 @@ export interface IPageConfigData {
*/
name?: string;
/**
* PMS 权限码
* 权限码
*/
privilegeCode?: string;
}
+16
View File
@@ -3,6 +3,22 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.5.12](https://github.com/netease/tango/compare/@music163/tango-designer@0.5.11...@music163/tango-designer@0.5.12) (2023-11-30)
### Bug Fixes
- fix render components tree ([76a5a2c](https://github.com/netease/tango/commit/76a5a2c65920bc42b019cd1f32a3cacd0d888638))
## [0.5.11](https://github.com/netease/tango/compare/@music163/tango-designer@0.5.10...@music163/tango-designer@0.5.11) (2023-11-29)
**Note:** Version bump only for package @music163/tango-designer
## [0.5.10](https://github.com/netease/tango/compare/@music163/tango-designer@0.5.9...@music163/tango-designer@0.5.10) (2023-11-28)
### Bug Fixes
- update default theme ([14cd4c5](https://github.com/netease/tango/commit/14cd4c54a1e5eed834d01921e186bdba9bbe7922))
## [0.5.9](https://github.com/netease/tango/compare/@music163/tango-designer@0.5.8...@music163/tango-designer@0.5.9) (2023-11-28)
### Bug Fixes
+5 -5
View File
@@ -1,6 +1,6 @@
{
"name": "@music163/tango-designer",
"version": "0.5.9",
"version": "0.5.12",
"description": "lowcode designer",
"keywords": [
"react"
@@ -33,11 +33,11 @@
"dependencies": {
"@ant-design/icons": "^4.8.0",
"@music163/request": "^0.1.2",
"@music163/tango-context": "^0.2.8",
"@music163/tango-core": "^0.2.7",
"@music163/tango-context": "^0.2.10",
"@music163/tango-core": "^0.2.9",
"@music163/tango-helpers": "^0.1.8",
"@music163/tango-sandbox": "^0.1.12",
"@music163/tango-setting-form": "^0.2.12",
"@music163/tango-sandbox": "^0.1.14",
"@music163/tango-setting-form": "^0.2.14",
"@music163/tango-ui": "^0.1.12",
"antd": "^4.24.2",
"cash-dom": "^8.1.2",
@@ -148,6 +148,12 @@ export const ComponentsTree: React.FC<ComponentsTreeProps> = observer(
setSelectedKeys(workspace.selectSource.selected.map((item) => item.id));
}, [workspace.selectSource.selected]);
useEffect(() => {
setExpandedKeys(getNodeKeys(nodesTree));
// nodeTree 更新后重新计算expandKeys
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [nodesTree?.[0]?.id]);
if (!nodesTree.length) {
return (
<Box>
@@ -156,12 +162,6 @@ export const ComponentsTree: React.FC<ComponentsTreeProps> = observer(
);
}
useEffect(() => {
setExpandedKeys(getNodeKeys(nodesTree));
// nodeTree 更新后重新计算expandKeys
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [nodesTree?.[0]?.id]);
return (
<Box css={outlineStyle}>
<Tree
@@ -230,4 +230,4 @@ export const ComponentsTree: React.FC<ComponentsTreeProps> = observer(
</Box>
);
},
);
);
+3 -3
View File
@@ -31,11 +31,11 @@ export default extendTheme({
toolbarDividerColor: 'gray.60',
toolbarButtonBg: 'rgba(223, 223, 223, 0.08)',
toolbarButtonBgHover: '#4080ff',
toolbarButtonBgDisabled: 'rgb(223,223,223)',
toolbarButtonBgDisabled: 'rgba(223,223,223, 0.08)',
toolbarButtonBgActive: '#4080ff',
toolbarButtonTextColor: '#f5f5f5',
toolbarButtonTextColor: '#FFF',
toolbarButtonTextColorHover: '#FFF',
toolbarButtonTextColorDisabled: 'rgb(201,205,212)',
toolbarButtonTextColorDisabled: 'hsla(0,0%,100%,0.3)',
toolbarButtonTextColorActive: '#fff',
sidebarBg: '#fff',
sidebarExpandBg: '#fff',
+8
View File
@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.1.14](https://github.com/netease/tango/compare/@music163/tango-sandbox@0.1.13...@music163/tango-sandbox@0.1.14) (2023-11-30)
**Note:** Version bump only for package @music163/tango-sandbox
## [0.1.13](https://github.com/netease/tango/compare/@music163/tango-sandbox@0.1.12...@music163/tango-sandbox@0.1.13) (2023-11-29)
**Note:** Version bump only for package @music163/tango-sandbox
## [0.1.12](https://github.com/netease/tango/compare/@music163/tango-sandbox@0.1.11...@music163/tango-sandbox@0.1.12) (2023-11-27)
**Note:** Version bump only for package @music163/tango-sandbox
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@music163/tango-sandbox",
"version": "0.1.12",
"version": "0.1.14",
"description": "sandbox of tango apps",
"author": "wwsun <ww.sun@outlook.com>",
"homepage": "",
@@ -29,7 +29,7 @@
},
"dependencies": {
"@ant-design/icons": "^4.8.0",
"@music163/tango-core": "^0.2.7",
"@music163/tango-core": "^0.2.9",
"@music163/tango-helpers": "^0.1.8",
"crypto-js": "^4.1.1",
"lodash.isequal": "4.5.0",
+10
View File
@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [0.2.14](https://github.com/netease/tango/compare/@music163/tango-setting-form@0.2.13...@music163/tango-setting-form@0.2.14) (2023-11-30)
**Note:** Version bump only for package @music163/tango-setting-form
## [0.2.13](https://github.com/netease/tango/compare/@music163/tango-setting-form@0.2.12...@music163/tango-setting-form@0.2.13) (2023-11-29)
### Bug Fixes
- workspace onFilesChange ([#70](https://github.com/netease/tango/issues/70)) ([accd826](https://github.com/netease/tango/commit/accd8263764c811ea8175a9cd341fc6fa6c75967))
## [0.2.12](https://github.com/netease/tango/compare/@music163/tango-setting-form@0.2.11...@music163/tango-setting-form@0.2.12) (2023-11-28)
### Bug Fixes
+2 -2
View File
@@ -1,6 +1,6 @@
{
"name": "@music163/tango-setting-form",
"version": "0.2.12",
"version": "0.2.14",
"description": "setting form of tango-apps",
"author": "wwsun <ww.sun@outlook.com>",
"homepage": "",
@@ -28,7 +28,7 @@
},
"dependencies": {
"@ant-design/icons": "^4.8.0",
"@music163/tango-core": "^0.2.7",
"@music163/tango-core": "^0.2.9",
"@music163/tango-helpers": "^0.1.8",
"@music163/tango-ui": "^0.1.12",
"antd": "^4.24.2",
+1 -1
View File
@@ -1,7 +1,7 @@
import React from 'react';
import { FormItemComponentProps } from './form-item';
// FIXME: 内置 ExpressionSetter,默认全部 fallback 到此 setter
// TODO: 内置基本的 ExpressionSetter,默认全部 fallback 到此 setter
export function ExpressionSetter(props: FormItemComponentProps<string>) {
return <div>exp setter</div>;
}