---
title: "Solutions hooks"
description: "Hand-written shim. Generated CRUD hooks via ./solutions.gen. The graph
custom-op hook stays hand-written until the React gen learns to emit
kind: \"custom\" ops. Solution members are their own generated top-level
entity (see ./solution-members)."
section: "Libraries"
group: "React hooks"
order: 448
---

## Hooks

### `useCreateSolution` `mutation`

Create a solution.

```ts
useCreateSolution(options?: MutationOpts<Solution, CreateSolutionParams>)
```

**Types:** [Solution](/types/solution) · [CreateSolutionParams](/types/create-solution-params)

### `useDeleteSolution` `mutation`

Soft-delete a solution (overlay only — member entities are NOT touched).

```ts
useDeleteSolution(options?: MutationOpts<SuccessResponse, string>)
```

**Types:** [SuccessResponse](/types/success-response)

### `useGetSolutionGraph` `query`

```ts
useGetSolutionGraph(id: string, options?: QueryOpts<SolutionGraphResponse>)
```

**Types:** [SolutionGraphResponse](/types/solution-graph-response)

### `useListSolutions` `query`

List solutions.

```ts
useListSolutions(params?: Omit<ListSolutionsParams, | > & { filter?: SolutionFilter; orderBy?: SolutionOrderBy[]; } & SolutionShorthands, options?: QueryOpts<Page<Solution>>)
```

**Types:** [ListSolutionsParams](/types/list-solutions-params) · [SolutionFilter](/types/solution-filter) · [SolutionOrderBy](/types/solution-order-by) · [SolutionShorthands](/types/solution-shorthands) · [Page](/types/page) · [Solution](/types/solution)

### `usePurgeSolution` `composite`

Permanently delete a soft-deleted solution.

```ts
usePurgeSolution(options?: MutationOpts<SuccessResponse, PurgeSolutionParams>)
```

**Types:** [SuccessResponse](/types/success-response) · [PurgeSolutionParams](/types/purge-solution-params)

### `useRestoreSolution` `composite`

Restore a soft-deleted solution.

```ts
useRestoreSolution(options?: MutationOpts<Solution, string>)
```

**Types:** [Solution](/types/solution)

### `useRetrieveSolution` `query`

Get a solution by ID.

```ts
useRetrieveSolution(id: string, options?: QueryOpts<Solution>)
```

**Types:** [Solution](/types/solution)

### `useUpdateSolution` `mutation`

Update a solution's name or description.

```ts
useUpdateSolution(options?: MutationOpts<Solution, UpdateSolutionParams>)
```

**Types:** [Solution](/types/solution) · [UpdateSolutionParams](/types/update-solution-params)
