### Website or app

https://react.dev

### Repro steps

1. Go to components tab.
2. For any component, try to copy the value in props, hooks etc. to clipboard.

![image](https://user-images.githubusercontent.com/75756768/228340421-a901498a-1308-4e8f-b502-989f4c60331f.png)


### How often does this bug happen?

Every time

### DevTools package (automated)

_No response_

### DevTools version (automated)

_No response_

### Error message (automated)

_No response_

### Error call stack (automated)

_No response_

### Error component stack (automated)

_No response_

### GitHub query string (automated)

_No response_
});
  it('should display the root type for ReactDOMClient.hydrateRoot', async () => {
    const Example = () => <div />;
    await utils.actAsync(() => {
      const container = document.createElement('div');
      container.innerHTML = '<div></div>';
      ReactDOMClient.hydrateRoot(container, <Example />);
    }, false);
    const inspectedElement = await inspectElementAtIndex(0);
    t.rootType).toMatchInlineSnapshot(`"hydrateRoot()"`);
  });
  it('should display the root type for ReactDOMClient.createRoot', async () => {
    const Example = () => <div />;
    await utils.actAsync(() => {
      const container = document.createElement('div');
      ReactDOMClient.createRoot(container).render(<Example />);
    }, false);
    const inspectedElement = await inspectElementAtIndex(0);
    t.rootType).toMatchInlineSnapshot(`"createRoot()"`);
  });
  it('should gracefully surface backend errors on the frontend rather than timing out', async () => {
    jest.spyOn(console, 'error').mo
    let shouldThrow = false;
    const Example = () => {
      const [count] = React.useState(0);
      if (shouldThrow) {
        throw Error('Expected');
      } else {
        return count;
      }