mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import React from 'react';
|
|
|
|
import type { ItemProps } from '../types';
|
|
|
|
import { MenuItem } from 'toolkit/chakra/menu';
|
|
import IconSvg from 'ui/shared/IconSvg';
|
|
import { useMetadataUpdateContext } from 'ui/tokenInstance/contexts/metadataUpdate';
|
|
|
|
import ButtonItem from '../parts/ButtonItem';
|
|
|
|
const MetadataUpdateMenuItem = ({ type }: ItemProps) => {
|
|
|
|
const { status, setStatus } = useMetadataUpdateContext() || {};
|
|
|
|
const handleClick = React.useCallback(() => {
|
|
setStatus?.('MODAL_OPENED');
|
|
}, [ setStatus ]);
|
|
|
|
const element = (() => {
|
|
switch (type) {
|
|
case 'button': {
|
|
return (
|
|
<ButtonItem
|
|
label="Refresh metadata"
|
|
icon="refresh"
|
|
onClick={ handleClick }
|
|
isDisabled={ status === 'WAITING_FOR_RESPONSE' }
|
|
/>
|
|
);
|
|
}
|
|
case 'menu_item': {
|
|
return (
|
|
<MenuItem onClick={ handleClick } disabled={ status === 'WAITING_FOR_RESPONSE' } value="refresh-metadata">
|
|
<IconSvg name="refresh" boxSize={ 5 }/>
|
|
<span>Refresh metadata</span>
|
|
</MenuItem>
|
|
);
|
|
}
|
|
}
|
|
})();
|
|
|
|
return element;
|
|
};
|
|
|
|
export default React.memo(MetadataUpdateMenuItem);
|