Skip to content

Commit a422c89

Browse files
committed
feat: Add useSeamQuery and useSeamMutation
1 parent f71fb33 commit a422c89

20 files changed

+141
-67
lines changed

package-lock.json

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@
145145
"@rxfork/r2wc-react-to-web-component": "^2.4.0",
146146
"@seamapi/fake-devicedb": "^1.6.1",
147147
"@seamapi/fake-seam-connect": "^1.76.0",
148-
"@seamapi/http": "^1.37.0",
148+
"@seamapi/http": "^1.38.3",
149149
"@seamapi/types": "^1.395.3",
150150
"@storybook/addon-designs": "^7.0.1",
151151
"@storybook/addon-essentials": "^7.0.2",

src/lib/seam/access-codes/use-access-code.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ import type { AccessCode } from '@seamapi/types/connect'
66
import { useQuery } from '@tanstack/react-query'
77

88
import { useSeamClient } from 'lib/seam/use-seam-client.js'
9-
import type { UseSeamQueryResult } from 'lib/seam/use-seam-query-result.js'
9+
import type { UseSeamQueryResultLegacy } from 'lib/seam/use-seam-query-result.js'
1010

1111
export type UseAccessCodeParams = AccessCodesGetParams
1212

1313
export type UseAccessCodeData = AccessCode | null
1414

1515
export function useAccessCode(
1616
params: UseAccessCodeParams
17-
): UseSeamQueryResult<'accessCode', UseAccessCodeData> {
17+
): UseSeamQueryResultLegacy<'accessCode', UseAccessCodeData> {
1818
const { client } = useSeamClient()
1919
const { data, ...rest } = useQuery<UseAccessCodeData, SeamHttpApiError>({
2020
enabled: client != null,

src/lib/seam/access-codes/use-access-codes.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@ import type { AccessCode } from '@seamapi/types/connect'
66
import { useQuery, useQueryClient } from '@tanstack/react-query'
77

88
import { useSeamClient } from 'lib/seam/use-seam-client.js'
9-
import type { UseSeamQueryResult } from 'lib/seam/use-seam-query-result.js'
9+
import type { UseSeamQueryResultLegacy } from 'lib/seam/use-seam-query-result.js'
1010

1111
export type UseAccessCodesParams = AccessCodesListParams
1212

1313
export type UseAccessCodesData = AccessCode[]
1414

1515
export function useAccessCodes(
1616
params: UseAccessCodesParams
17-
): UseSeamQueryResult<'accessCodes', UseAccessCodesData> {
17+
): UseSeamQueryResultLegacy<'accessCodes', UseAccessCodesData> {
1818
const { client } = useSeamClient()
1919
const queryClient = useQueryClient()
2020

src/lib/seam/access-codes/use-create-access-code.ts

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,14 @@
1-
import type {
2-
AccessCodesCreateBody,
3-
SeamHttpApiError,
4-
} from '@seamapi/http/connect'
5-
import type { AccessCode } from '@seamapi/types/connect'
6-
import {
7-
useMutation,
8-
type UseMutationResult,
9-
useQueryClient,
10-
} from '@tanstack/react-query'
11-
12-
import { NullSeamClientError, useSeamClient } from 'lib/seam/use-seam-client.js'
13-
14-
export type UseCreateAccessCodeParams = never
1+
import { useQueryClient } from '@tanstack/react-query'
152

16-
export type UseCreateAccessCodeData = AccessCode
17-
18-
export type UseCreateAccessCodeMutationVariables = AccessCodesCreateBody
3+
import {
4+
useSeamMutation,
5+
type UseSeamMutationResult,
6+
} from '../use-seam-mutation.js'
197

20-
export function useCreateAccessCode(): UseMutationResult<
21-
UseCreateAccessCodeData,
22-
SeamHttpApiError,
23-
UseCreateAccessCodeMutationVariables
24-
> {
25-
const { client } = useSeamClient()
8+
export function useCreateAccessCode(): UseSeamMutationResult<'/access_codes/create'> {
269
const queryClient = useQueryClient()
2710

28-
return useMutation<
29-
UseCreateAccessCodeData,
30-
SeamHttpApiError,
31-
UseCreateAccessCodeMutationVariables
32-
>({
33-
mutationFn: async (variables) => {
34-
if (client === null) throw new NullSeamClientError()
35-
return await client.accessCodes.create(variables)
36-
},
11+
return useSeamMutation('/access_codes/create', {
3712
onSuccess: (data) => {
3813
queryClient.setQueryData(
3914
['access_codes', 'get', { access_code_id: data.access_code_id }],

src/lib/seam/client-sessions/use-client-session.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import type { ClientSession } from '@seamapi/types/connect'
33
import { useQuery } from '@tanstack/react-query'
44

55
import { useSeamClient } from 'lib/seam/use-seam-client.js'
6-
import type { UseSeamQueryResult } from 'lib/seam/use-seam-query-result.js'
6+
import type { UseSeamQueryResultLegacy } from 'lib/seam/use-seam-query-result.js'
77

88
export type UseClientSessionParams = never
99

1010
export type UseClientSessionData = ClientSession | null
1111

12-
export function useClientSession(): UseSeamQueryResult<
12+
export function useClientSession(): UseSeamQueryResultLegacy<
1313
'clientSession',
1414
UseClientSessionData
1515
> {

src/lib/seam/components/SupportedDeviceTable/use-device-model.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import type {
77
import { useQuery } from '@tanstack/react-query'
88

99
import { useSeamClient } from 'lib/seam/use-seam-client.js'
10-
import type { UseSeamQueryResult } from 'lib/seam/use-seam-query-result.js'
10+
import type { UseSeamQueryResultLegacy } from 'lib/seam/use-seam-query-result.js'
1111

1212
export type UseDeviceModelParams = DeviceModelsGetParams
1313

1414
export type UseDeviceModelData = DeviceModel | null
1515

1616
export function useDeviceModel(
1717
params: UseDeviceModelParams
18-
): UseSeamQueryResult<'deviceModel', UseDeviceModelData> {
18+
): UseSeamQueryResultLegacy<'deviceModel', UseDeviceModelData> {
1919
const { client: seam } = useSeamClient()
2020
const { data, ...rest } = useQuery<UseDeviceModelData, SeamHttpApiError>({
2121
enabled: seam != null,

src/lib/seam/components/SupportedDeviceTable/use-device-models.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import type {
77
import { useQuery, useQueryClient } from '@tanstack/react-query'
88

99
import { useSeamClient } from 'lib/seam/use-seam-client.js'
10-
import type { UseSeamQueryResult } from 'lib/seam/use-seam-query-result.js'
10+
import type { UseSeamQueryResultLegacy } from 'lib/seam/use-seam-query-result.js'
1111

1212
export type UseDeviceModelsParams = DeviceModelsListParams
1313

1414
export type UseDeviceModelsData = DeviceModel[]
1515

1616
export function useDeviceModels(
1717
params?: UseDeviceModelsParams
18-
): UseSeamQueryResult<'deviceModels', UseDeviceModelsData> {
18+
): UseSeamQueryResultLegacy<'deviceModels', UseDeviceModelsData> {
1919
const { client: seam } = useSeamClient()
2020
const queryClient = useQueryClient()
2121

src/lib/seam/components/SupportedDeviceTable/use-manufacturer.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import type {
77
import { useQuery } from '@tanstack/react-query'
88

99
import { useSeamClient } from 'lib/seam/use-seam-client.js'
10-
import type { UseSeamQueryResult } from 'lib/seam/use-seam-query-result.js'
10+
import type { UseSeamQueryResultLegacy } from 'lib/seam/use-seam-query-result.js'
1111

1212
export type UseManufacturerParams = ManufacturersGetParams
1313

1414
export type UseManufacturerData = Manufacturer | null
1515

1616
export function useManufacturer(
1717
params: UseManufacturerParams
18-
): UseSeamQueryResult<'manufacturer', UseManufacturerData> {
18+
): UseSeamQueryResultLegacy<'manufacturer', UseManufacturerData> {
1919
const { client: seam } = useSeamClient()
2020
const { data, ...rest } = useQuery<UseManufacturerData, SeamHttpApiError>({
2121
enabled: seam != null,

src/lib/seam/components/SupportedDeviceTable/use-manufacturers.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,15 @@ import type {
77
import { useQuery, useQueryClient } from '@tanstack/react-query'
88

99
import { useSeamClient } from 'lib/seam/use-seam-client.js'
10-
import type { UseSeamQueryResult } from 'lib/seam/use-seam-query-result.js'
10+
import type { UseSeamQueryResultLegacy } from 'lib/seam/use-seam-query-result.js'
1111

1212
export type UseManufacturersParams = ManufacturersListParams
1313

1414
export type UseManufacturersData = Manufacturer[]
1515

1616
export function useManufacturers(
1717
params?: UseManufacturersParams
18-
): UseSeamQueryResult<'manufacturers', UseManufacturersData> {
18+
): UseSeamQueryResultLegacy<'manufacturers', UseManufacturersData> {
1919
const { client: seam } = useSeamClient()
2020
const queryClient = useQueryClient()
2121

0 commit comments

Comments
 (0)