### Countdown at different rates

```jsx
<util.ConversationContext theme={util.theme} ios={util.ios}>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="10 second timer"
      i18n={util.i18n}
      timestamp={Date.now() + 10 * 1000}
      expirationLength={10 * 1000}
      expirationTimestamp={Date.now() + 10 * 1000}
    />
  </li>
  <li>
    <Message
      direction="outgoing"
      status="delivered"
      authorColor="blue"
      text="30 second timer"
      i18n={util.i18n}
      timestamp={Date.now() + 30 * 1000}
      expirationLength={30 * 1000}
      expirationTimestamp={Date.now() + 30 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="1 minute timer"
      i18n={util.i18n}
      timestamp={Date.now() + 55 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 55 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="5 minute timer"
      i18n={util.i18n}
      timestamp={Date.now() + 5 * 60 * 1000}
      expirationLength={5 * 60 * 1000}
      expirationTimestamp={Date.now() + 5 * 60 * 1000}
    />
  </li>
</util.ConversationContext>
```

### Timer calculations

```jsx
<util.ConversationContext theme={util.theme} ios={util.ios}>
  <li>
    <Message
      authorColor="blue"
      direction="incoming"
      text="Full timer"
      i18n={util.i18n}
      timestamp={Date.now() + 60 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 60 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="Full timer"
      i18n={util.i18n}
      timestamp={Date.now() + 60 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 60 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="incoming"
      text="55 timer"
      i18n={util.i18n}
      timestamp={Date.now() + 55 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 55 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="55 timer"
      i18n={util.i18n}
      timestamp={Date.now() + 55 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 55 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="incoming"
      text="30 timer"
      i18n={util.i18n}
      timestamp={Date.now() + 30 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 30 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="30 timer"
      i18n={util.i18n}
      timestamp={Date.now() + 30 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 30 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="incoming"
      text="5 timer"
      i18n={util.i18n}
      timestamp={Date.now() + 5 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 5 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="5 timer"
      i18n={util.i18n}
      timestamp={Date.now() + 5 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 5 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="incoming"
      text="Expired timer"
      i18n={util.i18n}
      timestamp={Date.now()}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now()}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="Expired timer"
      i18n={util.i18n}
      timestamp={Date.now()}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now()}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="incoming"
      text="Expiration is too far away"
      i18n={util.i18n}
      timestamp={Date.now() + 120 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 120 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="Expiration is too far away"
      i18n={util.i18n}
      timestamp={Date.now() + 120 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() + 120 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="incoming"
      text="Already expired"
      i18n={util.i18n}
      timestamp={Date.now() - 20 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() - 20 * 1000}
    />
  </li>
  <li>
    <Message
      authorColor="blue"
      direction="outgoing"
      status="delivered"
      text="Already expired"
      i18n={util.i18n}
      timestamp={Date.now() - 20 * 1000}
      expirationLength={60 * 1000}
      expirationTimestamp={Date.now() - 20 * 1000}
    />
  </li>
</util.ConversationContext>
```
