mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import React from 'react';
|
|
|
|
import type { FormattedData } from './types';
|
|
|
|
import { PopoverRoot, PopoverTrigger, PopoverContent, PopoverBody } from '@luxfi/ui/popover';
|
|
import { useDisclosure } from 'toolkit/hooks/useDisclosure';
|
|
|
|
import TokenSelectButton from './TokenSelectButton';
|
|
import TokenSelectMenu from './TokenSelectMenu';
|
|
import useTokenSelect from './useTokenSelect';
|
|
|
|
interface Props {
|
|
data: FormattedData;
|
|
isLoading?: boolean;
|
|
}
|
|
|
|
const TokenSelectDesktop = ({ data, isLoading }: Props) => {
|
|
const { open, onOpenChange } = useDisclosure();
|
|
|
|
const result = useTokenSelect(data);
|
|
|
|
return (
|
|
<PopoverRoot open={ open } onOpenChange={ onOpenChange }>
|
|
<PopoverTrigger>
|
|
<TokenSelectButton data={ result.data } isLoading={ isLoading } isOpen={ open }/>
|
|
</PopoverTrigger>
|
|
<PopoverContent className="w-[355px] max-h-[450px] overflow-y-scroll">
|
|
<PopoverBody>
|
|
<TokenSelectMenu { ...result }/>
|
|
</PopoverBody>
|
|
</PopoverContent>
|
|
</PopoverRoot>
|
|
);
|
|
};
|
|
|
|
export default React.memo(TokenSelectDesktop);
|