Next.js
Wink कंपोनेंट्स केवल ब्राउज़र के लिए कस्टम एलिमेंट्स हैं — CDN स्क्रिप्ट्स क्लाइंट-साइड लोड करनी होती हैं। नीचे दिए गए पैटर्न दोनों App Router (Next.js 13+) और पुराने Pages Router को कवर करते हैं।
@wink/elements npm package TypeScript टाइप्स के साथ CDN बंडल इंस्टॉल और लोड करें।
इंस्टॉल करें
Section titled “इंस्टॉल करें”npm install @wink/elementsApp Router (Next.js 13+)
Section titled “App Router (Next.js 13+)”एक क्लाइंट कंपोनेंट बनाएं जो load() को एक बार कॉल करे और इसे अपने रूट लेआउट के अंदर रेंडर करें:
'use client';import { useEffect } from 'react';import { load } from '@wink/elements';
export function WinkLoader() { useEffect(() => { load({ clientId: process.env.NEXT_PUBLIC_WINK_CLIENT_ID! }); }, []); return null;}import { WinkLoader } from '@/components/WinkLoader';
export default function RootLayout({ children }: { children: React.ReactNode }) { return ( <html lang="en"> <body> <WinkLoader /> {children} </body> </html> );}किसी भी Client Component में Wink कंपोनेंट्स का उपयोग करें:
'use client';
export default function HotelsPage() { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> </main> );}Pages Router
Section titled “Pages Router”_app.tsx में एक बार लोड करें:
import type { AppProps } from 'next/app';import { useEffect } from 'react';import { load } from '@wink/elements';
export default function App({ Component, pageProps }: AppProps) { useEffect(() => { load({ clientId: process.env.NEXT_PUBLIC_WINK_CLIENT_ID! }); }, []); return <Component {...pageProps} />;}फिर किसी भी पेज में Wink कंपोनेंट्स का उपयोग करें:
export default function HotelsPage() { return <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />;}पर्यावरण चर
Section titled “पर्यावरण चर”.env.local में जोड़ें:
NEXT_PUBLIC_WINK_CLIENT_ID=your-client-idNEXT_PUBLIC_ प्रीफिक्स आवश्यक है ताकि यह वेरिएबल ब्राउज़र बंडल को एक्सपोज़ हो सके।
TypeScript टाइप्स
Section titled “TypeScript टाइप्स”एक डिक्लेरेशन फाइल जोड़ें ताकि TypeScript JSX में कस्टम एलिमेंट नामों को पहचान सके — पूरा wink-elements.d.ts स्निपेट देखने के लिए React integration page देखें।