@atlaskit/editor-plugin-card
Version:
Card plugin for @atlaskit/editor-core
44 lines • 1.28 kB
JavaScript
/**
* @jsxRuntime classic
* @jsx jsx
*/
import { useEffect, useState } from 'react';
import { DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE, useDatasourceClientExtension } from '@atlaskit/link-client-extension';
export const useFetchDatasourceDataInfo = ({
datasourceId,
parameters,
visibleColumnKeys
}) => {
const [extensionKey, setExtensionKey] = useState(undefined);
const {
getDatasourceData
} = useDatasourceClientExtension();
useEffect(() => {
const fetchDatasource = async () => {
try {
if (!datasourceId || !parameters || !visibleColumnKeys) {
return;
}
const datasourceDataRequest = {
parameters,
pageSize: DEFAULT_GET_DATASOURCE_DATA_PAGE_SIZE,
pageCursor: undefined,
fields: visibleColumnKeys,
includeSchema: true
};
const {
meta
} = await getDatasourceData(datasourceId, datasourceDataRequest, false);
setExtensionKey(meta.extensionKey);
} catch (e) {
// eslint-disable-next-line no-console
console.error(e);
setExtensionKey(undefined);
}
};
void fetchDatasource();
}, [getDatasourceData, visibleColumnKeys, parameters, datasourceId]);
return {
extensionKey
};
};