Skip to content

Commit b49d32c

Browse files
committed
fix: lazy loading of accordion panel
1 parent 4c48c54 commit b49d32c

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

collection/app/(app)/ImportsList.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { ImportTable } from "@/components/tables/ImportTable";
55
import { ImportList, rollbackImport } from "@/lib/crud/importCsv";
66
import { Accordion, Badge, Button, Group, Paper, Stack, Text, Title } from "@mantine/core";
77
import { useDisclosure } from "@mantine/hooks";
8-
import React from "react";
8+
import React, { useState } from "react";
99
import { FaUndo } from "react-icons/fa";
1010

1111
interface ImportsListProps {
@@ -52,12 +52,14 @@ const ImportItem: React.FC<{ importItem: ImportList[0] }> = ({ importItem }) =>
5252
};
5353

5454
export const ImportsList: React.FC<ImportsListProps> = ({ imports }) => {
55+
const [currentlyOpen, setCurrentlyOpen] = useState<string | null>("");
56+
5557
return (
5658
<Paper p="lg" withBorder mt="xl">
5759
<Stack>
5860
<Title order={3}>Previous Imports</Title>
5961

60-
<Accordion>
62+
<Accordion onChange={setCurrentlyOpen}>
6163
{imports.map((importItem, index) => (
6264
<Accordion.Item key={index} value={importItem.id}>
6365
<Accordion.Control>
@@ -67,7 +69,9 @@ export const ImportsList: React.FC<ImportsListProps> = ({ imports }) => {
6769
</Group>
6870
</Accordion.Control>
6971
<Accordion.Panel pl="md" pr="md">
70-
<ImportItem importItem={importItem} />
72+
{currentlyOpen === importItem.id && (
73+
<ImportItem importItem={importItem} />
74+
)}
7175
</Accordion.Panel>
7276
</Accordion.Item>
7377
))}

0 commit comments

Comments
 (0)