Next.js
Wink-komponentit ovat selainkohtaisia mukautettuja elementtejä — CDN-skriptit on ladattava asiakaspuolella. Alla olevat mallit kattavat sekä App Routerin (Next.js 13+) että perinteisen Pages Routerin.
@wink/elements npm package Asenna ja lataa CDN-paketti TypeScript-tyypeillä.
Asennus
Osio nimeltä “Asennus”npm install @wink/elementsApp Router (Next.js 13+)
Osio nimeltä “App Router (Next.js 13+)”Luo client-komponentti, joka kutsuu load()-funktiota kerran ja renderöi sen juurilayoutin sisälle:
'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> );}Käytä Wink-komponentteja missä tahansa Client Component -komponentissa:
'use client';
export default function HotelsPage() { return ( <main> <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" /> </main> );}Pages Router
Osio nimeltä “Pages Router”Lataa kerran _app.tsx-tiedostossa:
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} />;}Sitten käytä Wink-komponentteja missä tahansa sivulla:
export default function HotelsPage() { return <wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID" />;}Ympäristömuuttujat
Osio nimeltä “Ympäristömuuttujat”Lisää .env.local-tiedostoon:
NEXT_PUBLIC_WINK_CLIENT_ID=your-client-idNEXT_PUBLIC_-etuliite vaaditaan, jotta muuttuja näkyy selainpaketissa.
TypeScript-tyypit
Osio nimeltä “TypeScript-tyypit”Lisää tyyppimääritystiedosto, jotta TypeScript tunnistaa mukautettujen elementtien nimet JSX:ssä — katso React-integraatiosivu täydellinen wink-elements.d.ts-pätkä.