Address


The Address component is a specialized UI element designed to display Decentralized Identifier (DID) addresses in a clean, readable, and user-friendly format. It intelligently handles the long strings typical of DIDs by providing options for shortening and easy copying, enhancing the overall user experience.

This component is a simple re-export from @arcblock/ux/lib/Address, providing a consistent way to display addresses within the DID Connect ecosystem.

How to Import#

To use the Address component, import it from its specific module path within the library.

Import

import Address from '@arcblock/did-connect-react/lib/Address';

Basic Usage#

Simply pass the DID string as a child to the component to render the full address.

Basic Address Display

import React from 'react';
import Address from '@arcblock/did-connect-react/lib/Address';

function UserProfile() {
  const userDid = 'z1Zg2a5Vw2fA2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t';

  return (
    <div>
      <h4>User DID:</h4>
      <Address>{userDid}</Address>
    </div>
  );
}

Features#

The Address component includes several helpful features to improve usability.

Shortening#

Long DIDs can clutter the UI. Use the shorten prop to display a truncated version of the address, showing only the beginning and end characters. This is essential for lists or compact profile views.

Copy to Clipboard#

By adding the copyable prop, the component will render a copy icon next to the address. Clicking this icon copies the full DID to the user's clipboard, providing a convenient one-click action.

Props#

The Address component accepts the following props:

children
string
required

The DID address string that you want to display.

shorten
boolean
default:false

If true, the address will be shortened to a more compact format (e.g., z1Zg2a...s0t).

copyable
boolean
default:false

If true, a copy icon is displayed, allowing users to copy the full address to their clipboard with a single click.

responsive
boolean
default:true

When true, the component will automatically shorten the address based on the available width, ensuring it fits within its container without breaking the layout.

Examples#

Here are some common use cases for the Address component.

Shortened and Copyable Address#

This is the most common configuration, providing a compact and functional display suitable for most UIs.

Shortened and Copyable

import React from 'react';
import Address from '@arcblock/did-connect-react/lib/Address';

function UserCard({ did }) {
  return (
    <div style={{ display: 'flex', alignItems: 'center', gap: '8px' }}>
      <span>DID:</span>
      <Address shorten copyable>
        {did}
      </Address>
    </div>
  );
}

Usage with Avatar#

The Address component works great alongside the Avatar component to build user profile elements.

Profile Header

import React from 'react';
import Address from '@arcblock/did-connect-react/lib/Address';
import Avatar from '@arcblock/did-connect-react/lib/Avatar';
import { useSession } from '@arcblock/did-connect-react';

function ProfileHeader() {
  const { session } = useSession();

  if (!session.user) {
    return <p>Please log in.</p>;
  }

  return (
    <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
      <Avatar did={session.user.did} />
      <div>
        <strong>{session.user.name}</strong>
        <Address shorten copyable>
          {session.user.did}
        </Address>
      </div>
    </div>
  );
}

Now that you know how to display user addresses, you might want to learn how to display their profile pictures. Check out the Avatar component documentation for more details.