mirror of
https://github.com/hanzonet/explore.git
synced 2026-10-30 18:16:57 +00:00
* operation lifecycle accordion * operation entity * adapt layout to mobile device * basic operations view * pass response data to operation details * update types package * tac operation status and links to tx on ton * feature config, docs and operation badge * add info to tx page * add operations to search * search input on operations page * tests * update tooltips and temporary fix of ts * add InterFallback typeface with → glyph * design and api updates * support new API version * add time format toggle * add shield to entity icon * minor fixes * update screenshots * clean up * fix screenshot
33 lines
954 B
TypeScript
33 lines
954 B
TypeScript
import type { HTMLChakraProps } from '@chakra-ui/react';
|
|
import { chakra } from '@chakra-ui/react';
|
|
import { type IconName } from 'public/icons/name';
|
|
import React from 'react';
|
|
|
|
import config from 'configs/app';
|
|
import { Skeleton } from 'toolkit/chakra/skeleton';
|
|
|
|
export const href = config.app.spriteHash ? `/icons/sprite.${ config.app.spriteHash }.svg` : '/icons/sprite.svg';
|
|
|
|
export { IconName };
|
|
|
|
export interface Props extends HTMLChakraProps<'div'> {
|
|
name: IconName;
|
|
isLoading?: boolean;
|
|
}
|
|
|
|
const IconSvg = React.forwardRef(
|
|
function IconSvg({ name, isLoading = false, ...props }: Props, ref: React.ForwardedRef<HTMLDivElement>) {
|
|
return (
|
|
<Skeleton loading={ isLoading } display="inline-block" asChild { ...props } ref={ ref }>
|
|
<chakra.svg w="100%" h="100%">
|
|
<use href={ `${ href }#${ name }` }/>
|
|
</chakra.svg>
|
|
</Skeleton>
|
|
);
|
|
},
|
|
);
|
|
|
|
IconSvg.displayName = 'IconSvg';
|
|
|
|
export default IconSvg;
|