Skip to content

Commit c5416ad

Browse files
committed
fix: Getting the cached CurrentWorkspaceDatabase results in an error problem
1 parent b50454a commit c5416ad

File tree

3 files changed

+55
-30
lines changed

3 files changed

+55
-30
lines changed

chat2db-client/src/components/Console/index.tsx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ enum IPromptType {
3030
ChatRobot = 'ChatRobot',
3131
}
3232

33-
enum IPromptTypeText {
34-
NL_2_SQL = '自然语言转换',
35-
SQL_EXPLAIN = '解释SQL',
36-
SQL_OPTIMIZER = 'SQL优化',
37-
SQL_2_SQL = 'SQL转换',
38-
ChatRobot = 'Chat机器人',
39-
}
33+
// enum IPromptTypeText {
34+
// NL_2_SQL = '自然语言转换',
35+
// SQL_EXPLAIN = '解释SQL',
36+
// SQL_OPTIMIZER = 'SQL优化',
37+
// SQL_2_SQL = 'SQL转换',
38+
// ChatRobot = 'Chat机器人',
39+
// }
4040

4141
export type IAppendValue = {
4242
text: any;
@@ -70,7 +70,7 @@ interface IProps {
7070
tableList?: ITreeNode[];
7171
editorOptions?: IEditorOptions;
7272
aiModel: IAIState;
73-
dispatch: Function;
73+
dispatch: any;
7474
remainingBtnLoading: boolean;
7575
// remainingUse: IAIState['remainingUse'];
7676
// onSQLContentChange: (v: string) => void;
@@ -379,7 +379,7 @@ function Console(props: IProps, ref: ForwardedRef<IConsoleRef>) {
379379

380380
const saveConsole = (value?: string) => {
381381
// const a = editorRef.current?.getAllContent();
382-
let p: any = {
382+
const p: any = {
383383
id: executeParams.consoleId,
384384
status: ConsoleStatus.RELEASE,
385385
ddl: value,

chat2db-client/src/models/workspace.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const WorkspaceModel: IWorkspaceModelType = {
5858

5959
state: {
6060
databaseAndSchema: undefined,
61-
curWorkspaceParams: getCurrentWorkspaceDatabase(),
61+
curWorkspaceParams: {} as any,
6262
doubleClickTreeNodeData: undefined,
6363
consoleList: [],
6464
openConsoleList: [],

chat2db-client/src/pages/main/workspace/components/WorkspaceHeader/index.tsx

Lines changed: 45 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { useUpdateEffect } from '@/hooks/useUpdateEffect';
1313
import styles from './index.less';
1414
import i18n from '@/i18n';
1515
import CreateDatabase, { ICreateDatabaseRef } from '@/components/CreateDatabase';
16+
import { getCurrentWorkspaceDatabase } from '@/utils/localStorage';
1617

1718
interface IProps {
1819
className?: string;
@@ -33,9 +34,12 @@ const notSupportCreateDatabaseType = [DatabaseTypeCode.H2];
3334
// 不支持创建schema的数据库类型
3435
const notSupportCreateSchemaType = [DatabaseTypeCode.ORACLE];
3536

37+
const localStorageWorkspaceDatabase = getCurrentWorkspaceDatabase();
38+
3639
const WorkspaceHeader = memo<IProps>((props) => {
3740
const { connectionModel, workspaceModel, mainPageModel, dispatch } = props;
3841
const { connectionList, curConnection } = connectionModel;
42+
console.log(connectionList);
3943
const { curWorkspaceParams } = workspaceModel;
4044
const { curPage } = mainPageModel;
4145
const [cascaderLoading, setCascaderLoading] = useState(false);
@@ -63,6 +67,13 @@ const WorkspaceHeader = memo<IProps>((props) => {
6367
}
6468
// 如果没有curConnection默认选第一个
6569
if (!curConnection?.id && connectionList.length) {
70+
if (
71+
localStorageWorkspaceDatabase.dataSourceId &&
72+
connectionList.find((t: any) => Number(t.id) === Number(localStorageWorkspaceDatabase.dataSourceId))
73+
) {
74+
connectionChange([localStorageWorkspaceDatabase.dataSourceId]);
75+
return;
76+
}
6677
connectionChange([connectionList[0].id]);
6778
return;
6879
}
@@ -71,6 +82,11 @@ const WorkspaceHeader = memo<IProps>((props) => {
7182
// 如果curConnection不再connectionList里,也是默认选第一个
7283
const flag = connectionList.findIndex((t: any) => t.id === curConnection?.id);
7384
if (flag === -1) {
85+
if (localStorageWorkspaceDatabase.dataSourceId &&
86+
connectionList.find((t: any) => Number(t.id) === Number(localStorageWorkspaceDatabase.dataSourceId))) {
87+
connectionChange([localStorageWorkspaceDatabase.dataSourceId]);
88+
return;
89+
}
7490
connectionChange([connectionList[0].id]);
7591
return;
7692
}
@@ -90,10 +106,6 @@ const WorkspaceHeader = memo<IProps>((props) => {
90106
getDatabaseList(isRefresh);
91107
setIsRefresh(false);
92108
}
93-
// connectionList转换成可用的ConnectionOptions
94-
// if (!connectionList.length) {
95-
// setNoConnectionModal(true);
96-
// }
97109
setConnectionOptions(
98110
connectionList?.map((t) => {
99111
return {
@@ -146,12 +158,18 @@ const WorkspaceHeader = memo<IProps>((props) => {
146158
};
147159
}) || [];
148160
setCurDBOptions(dbList);
149-
// 如果是切换那么就默认取列表的第一个database, 如果不是切换那么就取缓存的,如果缓存没有还是取列表第一个(这里是兜底,如果原先他并没有database,后来他加了database,如果还是取缓存的空就不对了)
150-
const databaseName =
151-
curWorkspaceParams.dataSourceId !== curConnection?.id
152-
? dbList[0]?.label
153-
: curWorkspaceParams.databaseName || dbList[0]?.label;
154-
getSchemaList(databaseName, refresh);
161+
let databaseName = '';
162+
if(dbList.find((t: any) => t.value === localStorageWorkspaceDatabase.databaseName)){
163+
databaseName = localStorageWorkspaceDatabase.databaseName!;
164+
}else{
165+
// 如果是切换那么就默认取列表的第一个database, 如果不是切换那么就取缓存的,如果缓存没有还是取列表第一个(这里是兜底,如果原先他并没有database,后来他加了database,如果还是取缓存的空就不对了)
166+
databaseName =
167+
curWorkspaceParams.dataSourceId !== curConnection?.id
168+
? dbList[0]?.label
169+
: curWorkspaceParams.databaseName || dbList[0]?.label;
170+
}
171+
databaseChange([databaseName], [{ label: databaseName }],refresh);
172+
// getSchemaList(databaseName, refresh);
155173
})
156174
.catch(() => {
157175
setCascaderLoading(false);
@@ -183,10 +201,17 @@ const WorkspaceHeader = memo<IProps>((props) => {
183201
};
184202
}) || [];
185203
setCurSchemaOptions(schemaList);
186-
const schemaName =
187-
curWorkspaceParams.dataSourceId !== curConnection?.id
188-
? schemaList[0]?.label
189-
: curWorkspaceParams.schemaName || schemaList[0]?.label;
204+
205+
let schemaName = '';
206+
if(schemaList.find((t: any) => t.value === localStorageWorkspaceDatabase.schemaName)){
207+
schemaName = localStorageWorkspaceDatabase.schemaName!;
208+
}else{
209+
schemaName =
210+
curWorkspaceParams.dataSourceId !== curConnection?.id
211+
? schemaList[0]?.label
212+
: curWorkspaceParams.schemaName || schemaList[0]?.label;
213+
}
214+
// schemaChange([schemaName], [{ label: schemaName }]);
190215
const data: any = {
191216
dataSourceId: curConnection.id,
192217
dataSourceName: curConnection.alias,
@@ -245,17 +270,17 @@ const WorkspaceHeader = memo<IProps>((props) => {
245270
}
246271

247272
// 数据库切换
248-
function databaseChange(valueArr: any, selectedOptions: any) {
249-
if (selectedOptions[0].label !== curWorkspaceParams.databaseName) {
250-
getSchemaList(selectedOptions[0].label);
251-
}
273+
function databaseChange(valueArr: any, selectedOptions: any,refresh) {
274+
// if (selectedOptions[0].label !== curWorkspaceParams.databaseName) {
275+
getSchemaList(selectedOptions[0].label,refresh);
276+
// }
252277
}
253278

254279
// schema切换
255280
function schemaChange(valueArr: any, selectedOptions: any) {
256-
if (selectedOptions[0].label !== curWorkspaceParams.schemaName) {
281+
// if (selectedOptions[0].label !== curWorkspaceParams.schemaName) {
257282
setCurWorkspaceParams({ ...curWorkspaceParams, schemaName: selectedOptions[0].value });
258-
}
283+
// }
259284
}
260285

261286
function handleRefresh() {

0 commit comments

Comments
 (0)