Next.js
Los componentes de Wink son elementos personalizados solo para navegador — los scripts CDN deben cargarse del lado del cliente. Los patrones a continuación cubren tanto el App Router (Next.js 13+) como el legado Pages Router.
Instalación
Sección titulada «Instalación»npm install @wink/elementsApp Router (Next.js 13+)
Sección titulada «App Router (Next.js 13+)»Creá un componente cliente que llame a load() una vez y renderizalo dentro de tu layout raíz:
'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> );}Usá componentes Wink en cualquier Client Component:
'use client';
export default function HotelsPage() { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> </main> );}Pages Router
Sección titulada «Pages Router»Cargá una vez en _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} />;}Luego usá componentes Wink en cualquier página:
export default function HotelsPage() { return <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />;}Variables de entorno
Sección titulada «Variables de entorno»Agregá a .env.local:
NEXT_PUBLIC_WINK_CLIENT_ID=your-client-idEl prefijo NEXT_PUBLIC_ es obligatorio para exponer la variable al bundle del navegador.
Tipos para TypeScript
Sección titulada «Tipos para TypeScript»Agregá un archivo de declaración para que TypeScript reconozca los nombres de elementos personalizados en JSX — consultá la página de integración con React para el snippet completo de wink-elements.d.ts.