[improvement][headless-fe] Revamped the interaction for semantic modeling routing and successfully implemented the switching between dimension and dataset management. (#1934)

Co-authored-by: tristanliu <tristanliu@tencent.com>
This commit is contained in:
Jun Zhang
2024-11-30 20:03:41 +08:00
committed by GitHub
parent 593597fe26
commit 82c63a7f22
42 changed files with 1889 additions and 997 deletions

View File

@@ -1,16 +1,37 @@
import { ISemantic } from '../data';
import { useState } from 'react';
import { useState, useEffect } from 'react';
import { useModel } from '@umijs/max';
export default function Domain() {
const [selectDomain, setSelectDomain] = useState<ISemantic.IDomainItem>();
const [selectDomain, setSelectDomain] = useState<ISemantic.IDomainItem>(
{} as ISemantic.IDomainItem,
);
const [selectDataSet, setSelectDataSet] = useState<ISemantic.IDatasetItem>();
const [domainList, setDomainList] = useState<ISemantic.IDomainItem[]>([]);
const modelModel = useModel('SemanticModel.modelData');
const metricModel = useModel('SemanticModel.metricData');
const dimensionModel = useModel('SemanticModel.dimensionData');
const { setSelectModel } = modelModel;
const { setSelectDimension } = dimensionModel;
const { setSelectMetric } = metricModel;
useEffect(() => {
setSelectModel(undefined);
setSelectDimension(undefined);
setSelectMetric(undefined);
setSelectDataSet(undefined);
}, [selectDomain]);
return {
selectDomain,
selectDataSet,
selectDomainId: selectDomain?.id,
selectDomainName: selectDomain?.name,
domainList,
setSelectDomain,
setSelectDataSet,
setDomainList,
};
}