Skip to main content
Version: 1.2.x

API Controllers

Platform support (current): iOS and Android only. Web is not officially supported yet and may be added in future releases.

Contract details for hooks and controller-style function exports. Import from package root only:

import { useToast, toast, createToastSystem, createToastTemplates } from "react-native-toast-system";

Hooks and Functions

useToast(hostId?)

Signature:

function useToast(hostId?: string): ToastController;
ParameterTypeRequiredDefaultDescriptionAllowed options/values
hostIdstringnoprovider defaultHostIdReturns controller bound to selected host.any host id string
Return valueTypeDescription
controllerToastControllerHost-scoped controller implementing show/update/dismiss/group methods.

toast Global Controller

Signature:

const toast: Omit<ToastController, "hostId"> & {
host: (hostId: string) => ToastController;
};

Global Method Contract

MethodParametersRequired paramsReturnDefault valuesAllowed options/values
show(options)optionsToastIdnonestring or ToastOptions
success(options)optionsToastIdnonestring or ToastOptions
error(options)optionsToastIdnonestring or ToastOptions
warning(options)optionsToastIdnonestring or ToastOptions
info(options)optionsToastIdnonestring or ToastOptions
loading(options)optionsToastIdforces persistent loading defaultsstring or ToastOptions
promise(promise, options, commonOptions?)promise, optionsPromise<T>commonOptions noneToastPromiseOptions<T> + optional partial ToastOptions
update(id, options)id, optionsbooleannoneToastId, ToastUpdateOptions
dismiss(id, reason?)idbooleanreason="dismiss"ToastId, CloseReason
dismissAll(reason?)nonevoidreason="dismiss"CloseReason
dismissGroup(groupId, reason?)groupIdnumberreason="dismiss"string, CloseReason
updateGroup(groupId, options)groupId, optionsnumbernonestring, ToastUpdateOptions
isVisible(id)idbooleannoneToastId
host(hostId)hostIdToastControllernoneany host id string

No-provider behavior for global toast:

  • show-like methods return fallback ids.
  • mutating methods are safe no-ops (false, 0, void).

createToastTemplates

Signature:

function createToastTemplates<const TTemplates extends ToastTemplateMap>(
templates: TTemplates,
): Record<ToastTemplateNameFromMap<TTemplates>, ToastTemplateRenderer>;
NameTypeRequiredDefaultDescriptionAllowed options/values
templatesTTemplates extends ToastTemplateMapyesnoneTyped template map input.Record<string, ToastTemplateRenderer>
Return valueTypeDescription
registryRecord<ToastTemplateNameFromMap<TTemplates>, ToastTemplateRenderer>Built-in + supplied template registry with typed names.

createToastSystem

Signature:

function createToastSystem<const TTemplates extends ToastTemplateMap = {}>(config?: {
templates?: TTemplates;
}): {
ToastProvider: (props: Omit<ToastProviderProps, "templates">) => JSX.Element;
ToastHost: typeof ToastHost;
ToastViewport: typeof ToastHost;
useToast: (hostId?: string) => TypedToastController<ToastTemplateNameFromMap<TTemplates>>;
toast: TypedToastGlobal<ToastTemplateNameFromMap<TTemplates>>;
templates: Record<ToastTemplateNameFromMap<TTemplates>, ToastTemplateRenderer>;
};

Input Contract

NameTypeRequiredDefaultDescriptionAllowed options/values
config{ templates?: TTemplates }nononeOptional typed system config.object
config.templatesTTemplatesnononeCustom template map for typed facade.ToastTemplateMap

Return Object Contract

NameTypeDescription
ToastProvider(props: Omit<ToastProviderProps, "templates">) => JSX.ElementProvider pre-bound to resolved template registry.
ToastHosttypeof ToastHostPublic host renderer component.
ToastViewporttypeof ToastHostAlias of ToastHost.
useToast(hostId?: string) => TypedToastController<TemplateName>Typed host-scoped hook controller.
toastTypedToastGlobal<TemplateName>Typed global controller facade.
templatesRecord<TemplateName, ToastTemplateRenderer>Resolved typed template registry.