Skip to content

Registering Bridge Components

For the native app to "listen" to your website, certain bridge components must be present in the DOM.

Global Components

Add these to your layout.tsx so they are present on every page.

tsx
'use client';
import dynamic from 'next/dynamic';

const HotwireToast = dynamic(() => import('@bagisto-native/react').then(m => m.HotwireToast), { ssr: false });
const HotwireHistorySync = dynamic(() => import('@bagisto-native/react').then(m => m.HotwireHistorySync), { ssr: false });
const HotwireThemeMode = dynamic(() => import('@bagisto-native/react').then(m => m.HotwireThemeMode), { ssr: false });

export default function NativeListeners() {
  return (
    <>
      <HotwireToast />
      <HotwireHistorySync />
      <HotwireThemeMode />
    </>
  );
}

Page-Specific Components

Components like <DynamicButton type="search" /> or <DynamicButton type="share" /> should be added only to the specific pages where that action makes sense (e.g., Share on Product Page, Search on Home).

Next Steps

Released under the MIT License.