# useViewMetadata

**Kind:** Function

Returns a `ViewMetadataQueryResult` for the specified view and re-renders whenever the
view metadata changes. Suspends if the view is not already loaded.

```js
import {useBase, useViewMetadata} from '@airtable/blocks/ui';

function ViewFields({view}) {
    const viewMetadata = useViewMetadata(view);

    return (
        <ul>
            {viewMetadata.visibleFields.map(field => (
                <li key={field.id}>{field.name}</li>
            ))}
        </ul>
    );
}
```

**Parameters:**
- `viewOrViewMetadataQueryResult` (`View | ViewMetadataQueryResult`) — The `View` or `ViewMetadataQueryResult` to watch and use metadata from.

**Returns:** `ViewMetadataQueryResult`
