UNPKG

gebeya-whatsapp-otp

Version:

React WhatsApp OTP verification component with Supabase integration

177 lines (132 loc) 4.62 kB
# Gebeya WhatsApp OTP A React component library for WhatsApp OTP verification with Supabase integration. This package provides a complete solution for implementing phone number verification using WhatsApp OTP in your React applications. ## Features - ✅ **WhatsApp OTP Integration** - Send and verify OTP codes via WhatsApp - ✅ **Supabase Backend** - Built-in Supabase integration for data storage - ✅ **React Components** - Ready-to-use UI components - ✅ **TypeScript Support** - Full TypeScript support with type definitions - ✅ **Customizable Styling** - Tailwind CSS support with custom styling options - ✅ **Country Selection** - Multi-country support with country code selection - ✅ **Error Handling** - Comprehensive error handling and user feedback - ✅ **Security Features** - Rate limiting, attempt tracking, and phone suspension - ✅ **Accessibility** - WCAG compliant components ## Quick Start ### Installation ```bash npm install gebeya-whatsapp-otp ``` ### Basic Usage ```tsx import React from "react"; import { WhatsAppOTPProvider, VerifyWithWhatsAppButton, WhatsAppOTPModal, } from "gebeya-whatsapp-otp"; function App() { const config = { supabaseUrl: "YOUR_SUPABASE_URL", supabaseKey: "YOUR_SUPABASE_ANON_KEY", }; return ( <WhatsAppOTPProvider config={config}> <div> <h1>Welcome</h1> <VerifyWithWhatsAppButton> Verify with WhatsApp </VerifyWithWhatsAppButton> </div> <WhatsAppOTPModal /> </WhatsAppOTPProvider> ); } ``` ## Documentation 📖 **[Complete Setup Guide](SETUP_GUIDE.md)** - Detailed installation and configuration instructions ## Components ### `WhatsAppOTPProvider` Context provider that manages the OTP verification state and Supabase connection. ### `VerifyWithWhatsAppButton` Button component that triggers the OTP verification flow. Supports multiple variants and sizes. ### `WhatsAppOTPModal` Modal component that handles the phone number input and OTP verification interface. ### `useWhatsAppOTP` Custom hook for advanced usage and custom implementations. ## Examples ### Basic Implementation ```tsx import { WhatsAppOTPProvider, VerifyWithWhatsAppButton, WhatsAppOTPModal, } from "gebeya-whatsapp-otp"; function LoginPage() { const config = { supabaseUrl: process.env.REACT_APP_SUPABASE_URL!, supabaseKey: process.env.REACT_APP_SUPABASE_ANON_KEY!, }; const callbacks = { onSuccess: (phoneNumber: string) => { console.log("Phone verified:", phoneNumber); // Redirect to dashboard }, onError: (error: string) => { console.error("Verification failed:", error); // Show error message }, }; return ( <WhatsAppOTPProvider config={config} callbacks={callbacks}> <div className="min-h-screen flex items-center justify-center"> <div className="text-center"> <h1 className="text-2xl font-bold mb-4">Welcome</h1> <p className="text-gray-600 mb-6">Please verify your phone number</p> <VerifyWithWhatsAppButton className="w-full"> Verify Phone Number </VerifyWithWhatsAppButton> </div> </div> <WhatsAppOTPModal /> </WhatsAppOTPProvider> ); } ``` ### Custom Styling ```tsx <VerifyWithWhatsAppButton variant="outline" size="lg" className="bg-green-600 hover:bg-green-700 text-white" > Custom Styled Button </VerifyWithWhatsAppButton> ``` ### Custom Countries ```tsx const customCountries = [ { code: "+1", country: "United States", flag: "🇺🇸" }, { code: "+44", country: "United Kingdom", flag: "🇬🇧" }, { code: "+251", country: "Ethiopia", flag: "🇪🇹" }, ]; <WhatsAppOTPModal countries={customCountries} />; ``` ## Requirements - React 16.8.0 or higher - React-DOM 16.8.0 or higher - Supabase account and project - Node.js 14.0 or higher ## Browser Support - Chrome 60+ - Firefox 55+ - Safari 12+ - Edge 79+ ## Contributing We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details. ## License MIT License - see the [LICENSE](LICENSE) file for details. ## Support - 📖 [Documentation](SETUP_GUIDE.md) - 🐛 [Report Issues](https://github.com/gebeyainc/gebeya-whatsapp-otp/issues) - 💬 [Discussions](https://github.com/gebeyainc/gebeya-whatsapp-otp/discussions) ## Changelog See [CHANGELOG.md](CHANGELOG.md) for a list of changes and version history.