Next.js
רכיבי Wink הם אלמנטים מותאמים אישית הפועלים בדפדפן בלבד — יש לטעון את סקריפטי ה-CDN בצד הלקוח. הדפוסים למטה מכסים גם את App Router (Next.js 13+) וגם את ה-Pages Router הישן.
@wink/elements npm package התקן וטעין את חבילת ה-CDN עם טיפוסי TypeScript.
npm install @wink/elementsApp Router (Next.js 13+)
Section titled “App Router (Next.js 13+)”צור קומפוננטת לקוח שקוראת ל-load() פעם אחת והצג אותה בתוך ה-layout הראשי שלך:
'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> );}השתמש ברכיבי Wink בכל Client Component:
'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-idהקידומת NEXT_PUBLIC_ נדרשת כדי לחשוף את המשתנה לחבילת הדפדפן.
טיפוסי TypeScript
Section titled “טיפוסי TypeScript”הוסף קובץ הכרזה כדי ש-TypeScript יזהה את שמות האלמנטים המותאמים ב-JSX — ראה את דף האינטגרציה עם React עבור קטע הקוד המלא של wink-elements.d.ts.