Skip to main content

useSyncsnapJob

Hook to create a SyncSnap job and wait for completion via the server’s wait endpoint (server-side polling). The result (from your server’s onCompleted or the presigned URL) is passed to onCompleted(job, result).

Import

import { useSyncsnapJob } from "@syncsnap/react";

Usage

const result = useSyncsnapJob(options?);

Options (UseSyncsnapJobOptions)

OptionTypeDefaultDescription
createJobUrlstring"/api/syncsnap/job"URL for POST to create a job.
getJobUrl(jobId: string) => stringid => "/api/syncsnap/job/" + idURL for GET job status.
getWaitForCompletionUrl(jobId: string) => stringid => getJobUrl(id) + "/wait"URL for the server’s wait endpoint.
waitTimeoutMsnumber120000Timeout for wait (ms), sent as query param.
waitIntervalMsnumber2000Poll interval for wait (ms), sent as query param.
autoStartbooleanfalseIf true, start() is called on mount.
onJobCreated(job: CreateJobResponse) => voidCalled when job is created.
onCompleted(job: Job, result?: unknown) => voidCalled when job completes or fails; result is server’s onCompleted return (or presigned URL).
onError(error: Error) => voidCalled on create or wait errors.

Return value (UseSyncsnapJobResult)

PropertyTypeDescription
jobJob | nullCurrent job or null.
jobIdstring | nullJob ID when available.
statusJobStatus | nullCurrent job status.
errorError | nullLast error.
isWaitingbooleanTrue while the wait request is in flight.
start() => Promise<void>Create job and call wait endpoint.
reset() => voidAbort wait and clear state.
See useSyncsnapJob for usage and examples.