Files
1a57cb25a0 Async CSV export (#3330)
* add export for address txs

* transfer all export from page to dialog

* remove old route and components

* improve file name and fix loading state of icon button

* basic implementation

* refetch item status

* status indicator for download items

* changes for multichain

* handle too many requests for downloads error

* update button styles and spacing

* fix tests

* disable async export for multichain

* Fix CSV export cancel flow and stabilize context updates

Applied via @cursor push command

* test and review fixes

* design fixes

* refactor file names

---------

Co-authored-by: Hanzo Dev <[email protected]>
2026-03-02 15:51:50 +02:00

31 lines
800 B
TypeScript

/* eslint-disable no-restricted-imports */
import type { UseDisclosureProps } from '@chakra-ui/react';
import { useDisclosure as useDisclosureChakra } from '@chakra-ui/react';
import React from 'react';
export interface OpenChangeDetails {
open: boolean;
}
export type OnOpenChangeHandler = (details: OpenChangeDetails) => void;
export function useDisclosure(props?: UseDisclosureProps) {
const { open, onOpen, onClose, onToggle } = useDisclosureChakra(props);
const onOpenChange = React.useCallback(({ open }: OpenChangeDetails) => {
if (open) {
onOpen();
} else {
onClose();
}
}, [ onOpen, onClose ]);
return React.useMemo(() => ({
open,
onOpenChange,
onClose,
onOpen,
onToggle,
}), [ open, onOpenChange, onClose, onOpen, onToggle ]);
}