Next.js
Els components de Wink són elements personalitzats només per a navegador — els scripts CDN s’han de carregar al client. Els patrons següents cobreixen tant l’App Router (Next.js 13+) com l’antic Pages Router.
@wink/elements npm package Instal·la i carrega el paquet CDN amb tipus TypeScript.
Instal·lar
Section titled “Instal·lar”npm install @wink/elementsApp Router (Next.js 13+)
Section titled “App Router (Next.js 13+)”Crea un component client que cridi load() una vegada i renderitza’l dins del teu layout arrel:
'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> );}Utilitza components Wink en qualsevol 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”Carrega una vegada a _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} />;}Després utilitza components Wink a qualsevol pàgina:
export default function HotelsPage() { return <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />;}Variables d’entorn
Section titled “Variables d’entorn”Afegeix a .env.local:
NEXT_PUBLIC_WINK_CLIENT_ID=your-client-idEl prefix NEXT_PUBLIC_ és necessari per exposar la variable al paquet del navegador.
Tipus TypeScript
Section titled “Tipus TypeScript”Afegeix un fitxer de declaració perquè TypeScript reconegui els noms dels elements personalitzats en JSX — consulta la pàgina d’integració React per veure el fragment complet wink-elements.d.ts.