[@portaljs/components][sm] - fix bug of multiple flatuitable with different urls
This commit is contained in:
5
.changeset/lovely-ghosts-sin.md
Normal file
5
.changeset/lovely-ghosts-sin.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
'@portaljs/components': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix bug when there were multiple flatuitable components at the same time
|
||||||
Binary file not shown.
@@ -42,6 +42,7 @@ export interface FlatUiTableProps {
|
|||||||
data?: { [key: string]: number | string }[];
|
data?: { [key: string]: number | string }[];
|
||||||
rawCsv?: string;
|
rawCsv?: string;
|
||||||
corsProxy?: string;
|
corsProxy?: string;
|
||||||
|
randomId?: number;
|
||||||
}
|
}
|
||||||
export const FlatUiTable: React.FC<FlatUiTableProps> = ({
|
export const FlatUiTable: React.FC<FlatUiTableProps> = ({
|
||||||
url,
|
url,
|
||||||
@@ -49,10 +50,17 @@ export const FlatUiTable: React.FC<FlatUiTableProps> = ({
|
|||||||
rawCsv,
|
rawCsv,
|
||||||
corsProxy,
|
corsProxy,
|
||||||
}) => {
|
}) => {
|
||||||
|
const randomId = Math.random();
|
||||||
return (
|
return (
|
||||||
// Provide the client to your App
|
// Provide the client to your App
|
||||||
<QueryClientProvider client={queryClient}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<TableInner corsProxy={corsProxy} url={url} data={data} rawCsv={rawCsv} />
|
<TableInner
|
||||||
|
corsProxy={corsProxy}
|
||||||
|
url={url}
|
||||||
|
data={data}
|
||||||
|
rawCsv={rawCsv}
|
||||||
|
randomId={randomId}
|
||||||
|
/>
|
||||||
</QueryClientProvider>
|
</QueryClientProvider>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
@@ -62,6 +70,7 @@ const TableInner: React.FC<FlatUiTableProps> = ({
|
|||||||
data,
|
data,
|
||||||
rawCsv,
|
rawCsv,
|
||||||
corsProxy,
|
corsProxy,
|
||||||
|
randomId,
|
||||||
}) => {
|
}) => {
|
||||||
if (data) {
|
if (data) {
|
||||||
return (
|
return (
|
||||||
@@ -71,12 +80,12 @@ const TableInner: React.FC<FlatUiTableProps> = ({
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
const { data: csvString, isLoading: isDownloadingCSV } = useQuery(
|
const { data: csvString, isLoading: isDownloadingCSV } = useQuery(
|
||||||
['dataCsv', url],
|
['dataCsv', url, randomId],
|
||||||
() => getCsv(url as string, corsProxy),
|
() => getCsv(url as string, corsProxy),
|
||||||
{ enabled: !!url }
|
{ enabled: !!url }
|
||||||
);
|
);
|
||||||
const { data: parsedData, isLoading: isParsing } = useQuery(
|
const { data: parsedData, isLoading: isParsing } = useQuery(
|
||||||
['dataPreview', csvString],
|
['dataPreview', csvString, randomId],
|
||||||
() => parseCsv(rawCsv ? (rawCsv as string) : (csvString as string)),
|
() => parseCsv(rawCsv ? (rawCsv as string) : (csvString as string)),
|
||||||
{ enabled: rawCsv ? true : !!csvString }
|
{ enabled: rawCsv ? true : !!csvString }
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user