Skip to content

hooks.useUpdateFragment

Type Aliases

Unpack\<T>

Unpack\<T> = T extends Fragment\<infer U, unknown> ? U : never

Defined in: hooks/useUpdateFragment.tsx:14

Utility type to extract the data type from a Fragment wrapper

Type Parameters

Type Parameter
T

Functions

useUpdateFragment()

useUpdateFragment(): {\<T, P>(fragmentRef: FragmentRef\<T, P>, updater: (draft: Unproxy\<T>) => void): void; \<T>(fragment: T, updater: (draft: Unproxy\<Unpack\<T>>) => void): void; }

Defined in: hooks/useUpdateFragment.tsx:36

Hook for mutating fragments using Immer drafts.

Returns

\<T, P>(fragmentRef: FragmentRef\<T, P>, updater: (draft: Unproxy\<T>) => void): void

Updates a fragment using a FragmentRef object.

Type Parameters
Type Parameter
T
P extends boolean
Parameters
Parameter Type Description
fragmentRef FragmentRef\<T, P> Fragment reference from unproxied content
updater (draft: Unproxy\<T>) => void Immer draft function for mutating fragment data
Returns

void

\<T>(fragment: T, updater: (draft: Unproxy\<Unpack\<T>>) => void): void

Updates a fragment using a Fragment object.

Type Parameters
Type Parameter
T extends { __id: string; }
Parameters
Parameter Type Description
fragment T Fragment object from proxied content
updater (draft: Unproxy\<Unpack\<T>>) => void Immer draft function for mutating fragment data
Returns

void

Example

const update = useUpdateFragment()

// Update via fragment reference
update(userRef, draft => {
  draft.name = "Updated Name"
  draft.email = "new@email.com"
})

// Update via fragment ID directly
update('user_123', draft => {
  draft.profile.bio = "Updated bio"
})