# Types: ReviewsEmptyProps to SubmitReviewState (/themes/sdk/reference/product/types-8)

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

## `ReviewsEmptyProps` [#reviewsemptyprops]

Props of [`ReviewsEmpty`](/themes/sdk/reference/product/parts-4#reviewsempty).

<TypeTable type={{"onWrite":{"description":"Called when the shopper chooses to write the first review; without it no button is drawn.","type":"() => void","required":false}}} />

## `ReviewsFooterProps` [#reviewsfooterprops]

Props of [`ReviewsFooter`](/themes/sdk/reference/product/parts-4#reviewsfooter).

<TypeTable type={{"loaded":{"description":"How many reviews are shown.","type":"number","required":true},"hasMore":{"description":"Whether more reviews can be loaded.","type":"boolean","required":true},"loadingMore":{"description":"Whether the next reviews are loading.","type":"boolean","required":true},"onLoadMore":{"description":"Called when the shopper asks for more reviews.","type":"() => void","required":true}}} />

## `ReviewsHeaderProps` [#reviewsheaderprops]

Props of [`ReviewsHeader`](/themes/sdk/reference/product/parts-4#reviewsheader).

<TypeTable type={{"heading":{"description":"Replaces the store's heading, \"Customer reviews\".","type":"string","required":false},"total":{"description":"How many reviews there are; the count badge is hidden at zero.","type":"number","required":true},"onWrite":{"description":"Called when the shopper chooses to write a review; without it no button is drawn.","type":"() => void","required":false}}} />

## `ReviewsProps` [#reviewsprops]

Props of [`Reviews`](/themes/sdk/reference/product/defaults-8#reviews).

<TypeTable type={{"by":{"description":"Whose reviews to show; the product page's own, or its bundle's items, by default.","type":"ReviewsBy","required":false},"heading":{"description":"Replaces the store's heading, \"Customer reviews\".","type":"string","required":false},"className":{"description":"Classes added to the panel.","type":"string","required":false},"listClassName":{"description":"Classes added to the list of reviews.","type":"string","required":false}}} />

## `SubmitReviewState` [#submitreviewstate]

The state of sending a review.

<TypeTable type={{"submit":{"description":"Sends a review after the bot check.","type":"(input: ReviewInput) => Promise<ReviewResult>","required":true},"status":{"description":"`idle` before sending, `submitting` while it is sent, `done` once received, `error` after a failure.","type":"'idle' | 'submitting' | 'done' | 'error'","required":true},"error":{"description":"Why the last send failed, in the page language, or null.","type":"string | null","required":true},"reset":{"description":"Returns to `idle` and forgets the last result.","type":"() => void","required":true}}} />
