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

import { AvatarAccount } from './avatar-account';
import { AvatarBase } from '../';

# AvatarAccount

The `AvatarAccount` is a type of avatar reserved for representing accounts.

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

## Props

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

<ArgsTable of={AvatarAccount} />

`AvatarAccount` accepts all [AvatarBase](/docs/components-componentlibrary-avatarbase--default-story))
component props

<ArgsTable of={AvatarBase} />

### Size

Use the `size` prop and the `SIZES` object from `./ui/helpers/constants/design-system.js` to change the size of `AvatarAccount`

Optional: `AVATAR_ACCOUNT_SIZES` from `./ui/components/component-library` object can be used instead of `SIZES`

Possible sizes include:

- `SIZES.XS` 16px
- `SIZES.SM` 24px
- `SIZES.MD` 32px
- `SIZES.LG` 40px
- `SIZES.XL` 48px

Defaults to `SIZES.MD`

<Canvas>
  <Story id="components-componentlibrary-avataraccount--size" />
</Canvas>

```jsx
import { SIZES } from '../../../helpers/constants/design-system';
import { AvatarAccount } from '../ui/component-library';

<AvatarAccount size={SIZES.XS} />
<AvatarAccount size={SIZES.SM} />
<AvatarAccount size={SIZES.MD} />
<AvatarAccount size={SIZES.LG} />
<AvatarAccount size={SIZES.XL} />
```

### Type

Use the `type` prop for the avatar to be rendered, it can either be a Jazzicon or a Blockie

<Canvas>
  <Story id="components-componentlibrary-avataraccount--type" />
</Canvas>

```jsx
import { TYPES } from './avatar-account.constants';
import { AvatarAccount } from '../ui/component-library';

<AvatarAccount type={TYPES.JAZZICON} />
<AvatarAccount type={TYPES.BLOCKIES} />
```

### Address

Use the required `address` for generating images

<Canvas>
  <Story id="components-componentlibrary-avataraccount--address" />
</Canvas>

```jsx
import { TYPES } from './avatar-account.constants';
import { AvatarAccount } from '../ui/component-library';

<AvatarAccount type={TYPES.JAZZICON} address="0x5CfE73b6021E818B776b421B1c4Db2474086a7e1" />
<AvatarAccount type={TYPES.BLOCKIES} address="0x0" />
```
