Commit 155e3d62 authored by tom's avatar tom

make custom useDisclosure hook

parent ab9dc1e4
...@@ -27,7 +27,7 @@ const RESTRICTED_MODULES = { ...@@ -27,7 +27,7 @@ const RESTRICTED_MODULES = {
{ name: 'playwright/TestApp', message: 'Please use render() fixture from test() function of playwright/lib module' }, { name: 'playwright/TestApp', message: 'Please use render() fixture from test() function of playwright/lib module' },
{ {
name: '@chakra-ui/react', name: '@chakra-ui/react',
importNames: [ 'Menu', 'PinInput', 'useToast' ], importNames: [ 'Menu', 'PinInput', 'useToast', 'useDisclosure' ],
message: 'Please use corresponding component or hook from ui/shared/chakra component instead', message: 'Please use corresponding component or hook from ui/shared/chakra component instead',
}, },
{ {
......
// eslint-disable-next-line no-restricted-imports
import { useDisclosure as useDisclosureChakra } from '@chakra-ui/react';
import React from 'react';
export function useDisclosure() {
const { open, onOpen, onClose, onToggle } = useDisclosureChakra();
const onOpenChange = React.useCallback(({ open }: { open: boolean }) => {
if (open) {
onOpen();
} else {
onClose();
}
}, [ onOpen, onClose ]);
return {
open,
onOpenChange,
onClose,
onOpen,
onToggle,
};
}
import { useDisclosure } from '@chakra-ui/react';
import { useQuery } from '@tanstack/react-query'; import { useQuery } from '@tanstack/react-query';
import React from 'react'; import React from 'react';
...@@ -8,9 +7,10 @@ import { NETWORK_GROUPS } from 'types/networks'; ...@@ -8,9 +7,10 @@ import { NETWORK_GROUPS } from 'types/networks';
import config from 'configs/app'; import config from 'configs/app';
import type { ResourceError } from 'lib/api/resources'; import type { ResourceError } from 'lib/api/resources';
import useFetch from 'lib/hooks/useFetch'; import useFetch from 'lib/hooks/useFetch';
import { useDisclosure } from 'toolkit/hooks/useDisclosure';
export default function useNetworkMenu() { export default function useNetworkMenu() {
const { open, onClose, onOpen, onToggle } = useDisclosure(); const { open, onClose, onOpen, onOpenChange, onToggle } = useDisclosure();
const fetch = useFetch(); const fetch = useFetch();
const { isPending, data } = useQuery<unknown, ResourceError<unknown>, Array<FeaturedNetwork>>({ const { isPending, data } = useQuery<unknown, ResourceError<unknown>, Array<FeaturedNetwork>>({
...@@ -20,14 +20,6 @@ export default function useNetworkMenu() { ...@@ -20,14 +20,6 @@ export default function useNetworkMenu() {
staleTime: Infinity, staleTime: Infinity,
}); });
const onOpenChange = React.useCallback(({ open }: { open: boolean }) => {
if (open) {
onOpen();
} else {
onClose();
}
}, [ onOpen, onClose ]);
return React.useMemo(() => ({ return React.useMemo(() => ({
open, open,
onClose, onClose,
......
import { Box, useDisclosure } from '@chakra-ui/react'; import { Box } from '@chakra-ui/react';
import React from 'react'; import React from 'react';
import { IconButton } from 'toolkit/chakra/icon-button'; import { IconButton } from 'toolkit/chakra/icon-button';
import { PopoverBody, PopoverContent, PopoverRoot, PopoverTrigger } from 'toolkit/chakra/popover'; import { PopoverBody, PopoverContent, PopoverRoot, PopoverTrigger } from 'toolkit/chakra/popover';
import { useDisclosure } from 'toolkit/hooks/useDisclosure';
import IconSvg from 'ui/shared/IconSvg'; import IconSvg from 'ui/shared/IconSvg';
import SettingsAddressFormat from './SettingsAddressFormat'; import SettingsAddressFormat from './SettingsAddressFormat';
...@@ -10,23 +11,14 @@ import SettingsColorTheme from './SettingsColorTheme'; ...@@ -10,23 +11,14 @@ import SettingsColorTheme from './SettingsColorTheme';
import SettingsIdentIcon from './SettingsIdentIcon'; import SettingsIdentIcon from './SettingsIdentIcon';
const Settings = () => { const Settings = () => {
// TODO tom2drum refactor to separate hook const { open, onOpenChange, onClose } = useDisclosure();
const { open, onOpen, onClose } = useDisclosure();
const handleOpenChange = React.useCallback(({ open }: { open: boolean }) => {
if (open) {
onOpen();
} else {
onClose();
}
}, [ onOpen, onClose ]);
return ( return (
<PopoverRoot <PopoverRoot
positioning={{ placement: 'bottom-start' }} positioning={{ placement: 'bottom-start' }}
lazyMount lazyMount
open={ open } open={ open }
onOpenChange={ handleOpenChange } onOpenChange={ onOpenChange }
> >
<PopoverTrigger> <PopoverTrigger>
<IconButton <IconButton
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment