import { Story, Canvas, ArgsTable } from '@storybook/addon-docs';

import { AvatarWithBadge } from './avatar-with-badge';

# AvatarWithBadge

The `AvatarWithBadge` is a wrapper component that adds badge display options to avatars.

<Canvas>
  <Story id="components-componentlibrary-avatarwithbadge--default-story" />
</Canvas>

## Props

The `AvatarWithBadge` accepts all props below as well as all [Box](/docs/components-ui-box--default-story#props) component props.

<ArgsTable of={AvatarWithBadge} />

### Badge Position

Use the `badgePosition` prop to set the position of the badge, it can have two values `Top` and `Bottom`

<Canvas>
  <Story id="components-componentlibrary-avatarwithbadge--badge-position" />
</Canvas>

```jsx
import { AvatarWithBadge } from '../ui/component-library';

<AvatarWithBadge
  badgePosition={AVATAR_WITH_BADGE_POSTIONS.BOTTOM}
  badge={
    <AvatarNetwork
      size={SIZES.XS}
      name="Arbitrum One"
      src="./images/arbitrum.svg"
    />
  }
>
  <AvatarAccount
    address="0x5CfE73b6021E818B776b421B1c4Db2474086a7e1"
    size={SIZES.MD}
    type={TYPES.JAZZICON}
  />
</AvatarWithBadge>

<AvatarWithBadge
  badgePosition={AVATAR_WITH_BADGE_POSTIONS.TOP}
  badge={
    <AvatarNetwork
      size={SIZES.XS}
      name="Arbitrum One"
      src="./images/arbitrum.svg"
    />
  }
>
  <AvatarAccount
    address="0x5CfE73b6021E818B776b421B1c4Db2474086a7e1"
    size={SIZES.MD}
    type={TYPES.JAZZICON}
  />
</AvatarWithBadge>
```

### Badge

Used to define the badge component to be rendered inside the `AvatarWithBadge`.

### Badge Props

The required props to be passed to the badge.

### Children

The children to be rendered inside the AvatarWithBadge. Generally used with the `AvatarAccount`
