fix: yuque dataset file folder can enter (#3593)
This commit is contained in:
1
packages/global/core/dataset/apiDataset.d.ts
vendored
1
packages/global/core/dataset/apiDataset.d.ts
vendored
@@ -5,6 +5,7 @@ export type APIFileItem = {
|
|||||||
type: 'file' | 'folder';
|
type: 'file' | 'folder';
|
||||||
updateTime: Date;
|
updateTime: Date;
|
||||||
createTime: Date;
|
createTime: Date;
|
||||||
|
canEnter?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type APIFileServer = {
|
export type APIFileServer = {
|
||||||
|
|||||||
@@ -99,7 +99,13 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer }
|
|||||||
if (files.some((file) => !file.id || !file.name || typeof file.type === 'undefined')) {
|
if (files.some((file) => !file.id || !file.name || typeof file.type === 'undefined')) {
|
||||||
return Promise.reject('Invalid file data format');
|
return Promise.reject('Invalid file data format');
|
||||||
}
|
}
|
||||||
return files;
|
|
||||||
|
const formattedFiles = files.map((file) => ({
|
||||||
|
...file,
|
||||||
|
canEnter: file.type === 'folder'
|
||||||
|
}));
|
||||||
|
|
||||||
|
return formattedFiles;
|
||||||
};
|
};
|
||||||
|
|
||||||
const getFileContent = async ({ teamId, apiFileId }: { teamId: string; apiFileId: string }) => {
|
const getFileContent = async ({ teamId, apiFileId }: { teamId: string; apiFileId: string }) => {
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ const CustomAPIFileInput = () => {
|
|||||||
parentId: '',
|
parentId: '',
|
||||||
parentName: ''
|
parentName: ''
|
||||||
});
|
});
|
||||||
const [parentUuid, setParentUuid] = useState<string>('');
|
|
||||||
const [paths, setPaths] = useState<ParentTreePathItemType[]>([]);
|
const [paths, setPaths] = useState<ParentTreePathItemType[]>([]);
|
||||||
|
|
||||||
const [searchKey, setSearchKey] = useState('');
|
const [searchKey, setSearchKey] = useState('');
|
||||||
@@ -128,7 +127,7 @@ const CustomAPIFileInput = () => {
|
|||||||
|
|
||||||
const handleItemClick = useCallback(
|
const handleItemClick = useCallback(
|
||||||
(item: APIFileItem) => {
|
(item: APIFileItem) => {
|
||||||
if (item.type === 'folder') {
|
if (item.canEnter) {
|
||||||
setPaths((state) => [...state, { parentId: item.id, parentName: item.name }]);
|
setPaths((state) => [...state, { parentId: item.id, parentName: item.name }]);
|
||||||
return setParent({
|
return setParent({
|
||||||
parentId: item.id,
|
parentId: item.id,
|
||||||
@@ -251,6 +250,7 @@ const CustomAPIFileInput = () => {
|
|||||||
<Box fontSize={'sm'} fontWeight={'medium'} color={'myGray.900'}>
|
<Box fontSize={'sm'} fontWeight={'medium'} color={'myGray.900'}>
|
||||||
{item.name}
|
{item.name}
|
||||||
</Box>
|
</Box>
|
||||||
|
{item.canEnter && <MyIcon name="core/chat/chevronRight" w={'18px'} ml={2} />}
|
||||||
</Flex>
|
</Flex>
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
|
|||||||
Reference in New Issue
Block a user