# Parts: ReviewForm to ReviewsHeader (/themes/sdk/reference/product/parts-4)

```ts
import { … } from '@poltura/theme-sdk/product';
```

## `ReviewForm` [#reviewform]

The write-a-review form: a star picker, name, email, title and text, a thank-you once sent and a product picker for a bundle.

```ts
ReviewForm(props: ReviewFormProps): ReactElement
```

**Props:** [`ReviewFormProps`](/themes/sdk/reference/product/types-7#reviewformprops)

**Example**

```tsx
import { ReviewForm, type Product } from '@poltura/theme-sdk/product';

export function Write({ product, close }: { product: Product; close: () => void }) {
  return <ReviewForm target={{ product: { id: product.id, handle: product.handle } }} onClose={close} />;
}
```

**See also:** [`useSubmitReview`](/themes/sdk/reference/product/hooks-2#usesubmitreview)

## `ReviewSkeleton` [#reviewskeleton]

Three placeholder cards shaped like [`ReviewCard`](/themes/sdk/reference/product/parts-3#reviewcard), for the time the reviews load.

```ts
ReviewSkeleton(props: ReviewSkeletonProps): ReactElement
```

**Props:** [`ReviewSkeletonProps`](/themes/sdk/reference/product/types-7#reviewskeletonprops)

**Example**

```tsx
import { ReviewSkeleton, useReviews } from '@poltura/theme-sdk/product';

export function Loading({ productId }: { productId: string }) {
  const { status } = useReviews({ productId });
  return status === 'pending' ? <ReviewSkeleton /> : null;
}
```

## `ReviewsEmpty` [#reviewsempty]

The message for a product without reviews, with a button that asks for the first one.

```ts
ReviewsEmpty(props: ReviewsEmptyProps): ReactElement
```

**Props:** [`ReviewsEmptyProps`](/themes/sdk/reference/product/types-8#reviewsemptyprops)

**Example**

```tsx
import { ReviewsEmpty } from '@poltura/theme-sdk/product';

export function NoReviews({ open }: { open: () => void }) {
  return <ReviewsEmpty onWrite={open} />;
}
```

## `ReviewsFooter` [#reviewsfooter]

The load-more button under a review list, or the count of reviews seen once there are no more.

```ts
ReviewsFooter(props: ReviewsFooterProps): ReactElement
```

**Props:** [`ReviewsFooterProps`](/themes/sdk/reference/product/types-8#reviewsfooterprops)

**Example**

```tsx
import { ReviewsFooter } from '@poltura/theme-sdk/product';

export function More({ shown, more }: { shown: number; more: () => void }) {
  return <ReviewsFooter loaded={shown} hasMore loadingMore={false} onLoadMore={more} />;
}
```

## `ReviewsHeader` [#reviewsheader]

The reviews heading with the review count and a write-a-review button.

```ts
ReviewsHeader(props: ReviewsHeaderProps): ReactElement
```

**Props:** [`ReviewsHeaderProps`](/themes/sdk/reference/product/types-8#reviewsheaderprops)

**Example**

```tsx
import { ReviewsHeader } from '@poltura/theme-sdk/product';

export function Header({ total, open }: { total: number; open: () => void }) {
  return <ReviewsHeader total={total} onWrite={open} />;
}
```
