تخطَّ إلى المحتوى

حزمة npm

حزمة @wink/elements على npm هي أسرع طريقة لإضافة مكونات ويب Wink إلى أي مشروع جافاسكريبت أو تايب سكريبت. توفر دالة load() التي تقوم بحقن موارد CDN وتصريحات أنواع TypeScript كاملة لجميع سمات المكونات.

Terminal window
npm install @wink/elements

استدعِ load() مرة واحدة عند بدء تشغيل التطبيق. الدالة idempotent — آمنة للاستدعاء عدة مرات.

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

ثم استخدم أي مكون من Wink في HTML أو 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 });
}
}

يتم تصدير جميع واجهات سمات المكونات للاستخدام في JSX، أو القوالب النصية، أو القواميس المطبقة بالأنواع:

import type { WinkContentLoaderAttributes, WinkLayout } from '@wink/elements';
const attrs: WinkContentLoaderAttributes = {
layout: 'HOTEL', // TypeScript سيتحقق من صحة قيم layout
id: 'abc123',
sort: 'POPULARITY',
};
load({
clientId: 'YOUR_CLIENT_ID',
cdnBaseUrl: 'https://staging-elements.wink.travel',
});
الخيارالنوعمطلوبالافتراضيالوصف
clientIdstringنعممعرف عميل OAuth2 الخاص بـ Wink
configurationIdstringلامعرف تخصيص اختياري
cdnBaseUrlstringلاhttps://elements.wink.travelتجاوز عنوان URL الخاص بـ CDN