Przejdź do głównej zawartości

pakiet npm

Pakiet npm @wink/elements to najszybszy sposób na dodanie komponentów webowych Wink do dowolnego projektu JavaScript lub TypeScript. Udostępnia funkcję load(), która wstrzykuje zasoby CDN oraz pełne deklaracje typów TypeScript dla wszystkich atrybutów komponentów.

Okno terminala
npm install @wink/elements

Wywołaj load() raz podczas uruchamiania aplikacji. Funkcja jest idempotentna — można ją bezpiecznie wywołać wielokrotnie.

import { load } from '@wink/elements';
load({ clientId: 'YOUR_CLIENT_ID' });

Następnie użyj dowolnego komponentu Wink w swoim HTML lub JSX:

<wink-content-loader layout="HOTEL" id="YOUR_LAYOUT_ID"></wink-content-loader>
app/layout.tsx
'use client';
import { useEffect } from 'react';
import { load } from '@wink/elements';
export default function RootLayout({ children }: { children: React.ReactNode }) {
useEffect(() => {
load({ clientId: process.env.NEXT_PUBLIC_WINK_CLIENT_ID! });
}, []);
return <html><body>{children}</body></html>;
}
plugins/wink.client.ts
import { load } from '@wink/elements';
export default defineNuxtPlugin(() => {
load({ clientId: useRuntimeConfig().public.winkClientId });
});
src/layouts/Layout.astro
---
import { load } from '@wink/elements';
---
<script>
import { load } from '@wink/elements';
load({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID });
</script>
src/routes/+layout.ts
import { load as loadWink } from '@wink/elements';
import { browser } from '$app/environment';
export function load() {
if (browser) {
loadWink({ clientId: import.meta.env.PUBLIC_WINK_CLIENT_ID });
}
}

Wszystkie interfejsy atrybutów komponentów są eksportowane do użycia w JSX, template literals lub typowanych słownikach:

import type { WinkContentLoaderAttributes, WinkLayout } from '@wink/elements';
const attrs: WinkContentLoaderAttributes = {
layout: 'HOTEL', // TypeScript wykryje nieprawidłowe wartości layoutu
id: 'abc123',
sort: 'POPULARITY',
};
load({
clientId: 'YOUR_CLIENT_ID',
cdnBaseUrl: 'https://staging-elements.wink.travel',
});
OpcjaTypWymaganeDomyślnieOpis
clientIdstringTakTwój Wink OAuth2 Client ID
configurationIdstringNieOpcjonalny identyfikator konfiguracji
cdnBaseUrlstringNiehttps://elements.wink.travelNadpisanie adresu URL CDN