Next.js
A Wink komponensek kizárólag böngészőben használható egyedi elemek — a CDN szkripteket kliens oldalon kell betölteni. Az alábbi minták lefedik mind az App Router (Next.js 13+), mind a régebbi Pages Router használatát.
Telepítés
Szekció neve “Telepítés”npm install @wink/elementsApp Router (Next.js 13+)
Szekció neve “App Router (Next.js 13+)”Hozz létre egy kliens komponenst, amely egyszer hívja meg a load()-ot, és rendereld be a gyökér elrendezésedbe:
'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> );}Használd a Wink komponenseket bármely Client Component-ben:
'use client';
export default function HotelsPage() { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> </main> );}Pages Router
Szekció neve “Pages Router”Egyszer töltsd be az _app.tsx-ben:
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} />;}Ezután használd a Wink komponenseket bármely oldalon:
export default function HotelsPage() { return <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />;}Környezeti változók
Szekció neve “Környezeti változók”Add hozzá a .env.local fájlhoz:
NEXT_PUBLIC_WINK_CLIENT_ID=your-client-idA NEXT_PUBLIC_ előtag szükséges, hogy a változó elérhető legyen a böngészői csomagban.
TypeScript típusok
Szekció neve “TypeScript típusok”Adj hozzá egy deklarációs fájlt, hogy a TypeScript felismerje az egyedi elemek neveit JSX-ben — lásd a React integráció oldalt a teljes wink-elements.d.ts kódrészletért.