Runtime Setup
Platform support (current): iOS and Android only. Web is not officially supported yet and may be added in future releases.
Before validating toast behavior, confirm app runtime prerequisites.
Required Prerequisites
- Reanimated Babel plugin is configured.
- App root uses
GestureHandlerRootView. - App root uses
SafeAreaProvider. ToastProviderwraps any subtree callinguseToast().- At least one root host (
ToastViewportorToastHost) is mounted.
For native surfaces (for example Modal), wrap that surface with ToastNativeSurfaceBoundary when gesture activation needs an isolated boundary root.
Recommended App Root Structure
import { GestureHandlerRootView } from "react-native-gesture-handler";
import { SafeAreaProvider } from "react-native-safe-area-context";
import { ToastProvider, ToastViewport } from "react-native-toast-system";
export function AppRoot() {
return (
<GestureHandlerRootView style={{ flex: 1 }}>
<SafeAreaProvider>
<ToastProvider>
<AppNavigation />
<ToastViewport />
</ToastProvider>
</SafeAreaProvider>
</GestureHandlerRootView>
);
}
Placement Rules
- Keep one app-level root host for global flows.
- Add extra hosts only for explicit isolated surfaces (
modal-host,sheet-host). - Mount each host inside the visual surface where it should render.
Visual Check
Host-aware routing across layered surfaces should behave like this: