Files
fn_registry/frontend/functions/ui/use_wails_mutation.md
T
egutierrez e33b306225 fix: corregir lang y file_path en frontmatter de funciones existentes
Normaliza lang: typescript → ts en funciones frontend y corrige file_path de functions/infra/ → functions/browser/ en funciones CDP. Actualiza referencias cn_typescript_core → cn_ts_core.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 03:23:20 +02:00

2.0 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, tested, tests, test_file_path, file_path, props, emits, has_state, framework, variant, source_repo, source_license, source_file
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports tested tests test_file_path file_path props emits has_state framework variant source_repo source_license source_file
use_wails_mutation component ts ui 1.0.0 impure useWailsMutation<TData, TVariables>(opts: UseWailsMutationOptions<TData, TVariables>): UseWailsMutationResult<TData, TVariables> Hook para escrituras IPC Wails con optimistic updates, invalidación automática de queries, retry y callbacks completos.
wails
mutation
hook
ipc
optimistic
component
ui
wails_cache_ts_core
wails_provider_ts_ui
WailsIPC_ts_ui
false
react
false
frontend/functions/ui/use_wails_mutation.tsx
name type required description
mutationFn (variables: TVariables) => Promise<TData> true Función que ejecuta la mutación via IPC
name type required description
invalidateQueries string[][] false Query keys a invalidar en éxito
name type required description
onMutate (variables: TVariables) => unknown false Optimistic update antes de la mutación
onSuccess
onError
onSettled
true react
default
https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/Bl4cksmith/Frontend_Library MIT frontend/src/lib/wails/use-wails-mutation.tsx

Ejemplo

const { mutate, isLoading } = useWailsMutation({
  mutationFn: (user: User) => CreateUser(user),
  invalidateQueries: [['users']],
  onMutate: (user) => {
    // Optimistic: añadir al cache antes de confirmar
    const prev = wailsCache.get<User[]>(['users', 'list'])
    wailsCache.set(['users', 'list'], [...(prev || []), user])
    return { prev }
  },
  onError: (_err, _vars, context) => {
    // Rollback
    wailsCache.set(['users', 'list'], context.prev)
  },
})

Notas

mutate() es fire-and-forget, mutateAsync() retorna Promise. Estado: idle → loading → success/error.