From 86486db94a867c4e579a677a155855c6d51906f3 Mon Sep 17 00:00:00 2001 From: Zhizhi-2986 Date: Thu, 23 Nov 2023 11:03:44 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20dataSourceList=20=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E6=97=B6=E7=9B=B4=E6=8E=A5=E7=82=B9=E5=AE=8C=E6=88=90=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=BA=90=E4=BC=9A=E6=B8=85=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/utils/stateMachine.ts | 44 +++++++++++-------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/packages/plugin-datasource-pane/src/utils/stateMachine.ts b/packages/plugin-datasource-pane/src/utils/stateMachine.ts index 15edb12..4943b2d 100644 --- a/packages/plugin-datasource-pane/src/utils/stateMachine.ts +++ b/packages/plugin-datasource-pane/src/utils/stateMachine.ts @@ -50,7 +50,8 @@ type DataSourcePaneStateEvent = | { type: 'START_VIEW' } | { type: 'EXPORT.toggleSelect' }; -export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => createMachine( +export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => + createMachine( { id: 'dataSourcePane', initial: 'idle', @@ -82,7 +83,9 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c target: 'idle', actions: assign({ dataSourceList: (context, event) => { - return context.sort.dataSourceList; + return context.sort.dataSourceList === context.dataSourceList + ? context.sort.dataSourceList + : context.dataSourceList; }, }), }, @@ -106,7 +109,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c export: (context, event) => { const { selectedDataSourceIdList } = context.export; const index = selectedDataSourceIdList.indexOf( - event.dataSourceId, + event.dataSourceId ); if (index !== -1) { return { @@ -118,7 +121,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c return { selectedDataSourceIdList: context.export.selectedDataSourceIdList.concat( - event.dataSourceId, + event.dataSourceId ), }; }, @@ -162,11 +165,13 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c actions: assign({ dataSourceList: (context, event) => { // 直接 concat 会出现重复 - const filterDataSourceList = context.dataSourceList.filter((item) => { - return !event.payload.find( - (dataSource: DataSourceConfig) => dataSource.id === item.id, - ) - }) + const filterDataSourceList = + context.dataSourceList.filter((item) => { + return !event.payload.find( + (dataSource: DataSourceConfig) => + dataSource.id === item.id + ); + }); return filterDataSourceList.concat(event.payload); }, @@ -256,7 +261,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c const dataSourceUpdateIndex = dataSourceList.findIndex( (dataSource) => { return dataSource.id === id; - }, + } ); dataSourceList[dataSourceUpdateIndex] = event.payload; return dataSourceList; @@ -284,7 +289,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c actions: assign({ dataSourceList: (context, event) => { return context.dataSourceList.filter( - (item) => item.id !== event.dataSourceId, + (item) => item.id !== event.dataSourceId ); }, }), @@ -308,10 +313,10 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c actions: assign({ detail: (context, event) => { const dataSource = context.dataSourceList.find( - (item) => item.id === event.dataSourceId, + (item) => item.id === event.dataSourceId ); const dataSourceType = event.dataSourceTypes.find( - (i) => i.type === dataSource.type, + (i) => i.type === dataSource.type ); return { visible: true, @@ -329,7 +334,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c actions: assign({ detail: (context, event) => { const dataSource = context.dataSourceList.find( - (item) => item.id === event.dataSourceId, + (item) => item.id === event.dataSourceId ); return { visible: true, @@ -339,7 +344,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c data: { dataSource, dataSourceType: event.dataSourceTypes.find( - (i) => i.type === dataSource.type, + (i) => i.type === dataSource.type ), }, }; @@ -351,7 +356,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c actions: assign({ detail: (context, event) => { const dataSource = context.dataSourceList.find( - (item) => item.id === event.dataSourceId, + (item) => item.id === event.dataSourceId ); return { visible: true, @@ -362,7 +367,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c id: _uniqueId(`${event.dataSourceId}_`), }, dataSourceType: event.dataSourceTypes.find( - (i) => i.type === dataSource.type, + (i) => i.type === dataSource.type ), }, }; @@ -397,9 +402,10 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => c }, { actions: {}, - }, + } ); -export const createStateService = () => interpret(createStateMachine()).onTransition((current) => { +export const createStateService = () => + interpret(createStateMachine()).onTransition((current) => { // console.log('current transition list', current.value); }); From 248995644f432b30e70fbb50d057cc6340bb9580 Mon Sep 17 00:00:00 2001 From: Zhizhi-2986 Date: Thu, 23 Nov 2023 16:33:44 +0800 Subject: [PATCH 2/2] fix: Optimize logic --- packages/plugin-datasource-pane/src/utils/stateMachine.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/plugin-datasource-pane/src/utils/stateMachine.ts b/packages/plugin-datasource-pane/src/utils/stateMachine.ts index 4943b2d..a5fdf79 100644 --- a/packages/plugin-datasource-pane/src/utils/stateMachine.ts +++ b/packages/plugin-datasource-pane/src/utils/stateMachine.ts @@ -83,7 +83,7 @@ export const createStateMachine = (dataSourceList: DataSourceConfig[] = []) => target: 'idle', actions: assign({ dataSourceList: (context, event) => { - return context.sort.dataSourceList === context.dataSourceList + return context.sort.dataSourceList.length !== 0 ? context.sort.dataSourceList : context.dataSourceList; },