mirror of
https://github.com/Unleash/unleash.git
synced 2025-09-05 17:53:12 +02:00
feat: lazy load kapa
This commit is contained in:
parent
ab74031daf
commit
2d9f5748f3
@ -903,27 +903,7 @@ class="header-github-link"
|
|||||||
'@docusaurus/theme-mermaid',
|
'@docusaurus/theme-mermaid',
|
||||||
],
|
],
|
||||||
scripts: [
|
scripts: [
|
||||||
{
|
// Kapa AI widget is now lazy-loaded via src/theme/Root.tsx
|
||||||
src: 'https://widget.kapa.ai/kapa-widget.bundle.js', // See configuration: https://docs.kapa.ai/integrations/website-widget/configuration
|
|
||||||
'data-website-id': '1d187510-1726-4011-b0f7-62742ae064ee',
|
|
||||||
'data-project-name': 'Unleash',
|
|
||||||
'data-project-color': '#1A4049',
|
|
||||||
'data-project-logo':
|
|
||||||
'https://cdn.getunleash.io/uploads/2024/05/logo-unleash-white.svg',
|
|
||||||
'data-modal-image':
|
|
||||||
'https://cdn.getunleash.io/uploads/2022/05/logo.png',
|
|
||||||
'data-button-position-right': '0',
|
|
||||||
'data-button-border-radius': '10px 0px 0px 10px',
|
|
||||||
'data-button-width': '80px',
|
|
||||||
'data-button-height': '100px',
|
|
||||||
'data-button-image-height': '55px',
|
|
||||||
'data-button-image-width': '55px',
|
|
||||||
'data-button-text-font-weight': '400',
|
|
||||||
'data-button-text-font-size': '16px',
|
|
||||||
'data-button-text-font-family': '"Sen", sans-serif',
|
|
||||||
'data-button-text': 'ASK AI',
|
|
||||||
defer: true,
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
clientModules: ['./global.js'],
|
clientModules: ['./global.js'],
|
||||||
};
|
};
|
||||||
|
90
website/src/theme/Root.tsx
Normal file
90
website/src/theme/Root.tsx
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
import React, { useEffect } from 'react';
|
||||||
|
import ExecutionEnvironment from '@docusaurus/ExecutionEnvironment';
|
||||||
|
|
||||||
|
export default function Root({ children }: { children: React.ReactNode }) {
|
||||||
|
useEffect(() => {
|
||||||
|
if (!ExecutionEnvironment.canUseDOM) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const loadKapaWidget = () => {
|
||||||
|
if (
|
||||||
|
document.querySelector('script[src*="kapa-widget.bundle.js"]')
|
||||||
|
) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const script = document.createElement('script');
|
||||||
|
script.src = 'https://widget.kapa.ai/kapa-widget.bundle.js';
|
||||||
|
script.async = true;
|
||||||
|
script.defer = true;
|
||||||
|
|
||||||
|
script.setAttribute(
|
||||||
|
'data-website-id',
|
||||||
|
'1d187510-1726-4011-b0f7-62742ae064ee',
|
||||||
|
);
|
||||||
|
script.setAttribute('data-project-name', 'Unleash');
|
||||||
|
script.setAttribute('data-project-color', '#1A4049');
|
||||||
|
script.setAttribute(
|
||||||
|
'data-project-logo',
|
||||||
|
'https://cdn.getunleash.io/uploads/2024/05/logo-unleash-white.svg',
|
||||||
|
);
|
||||||
|
script.setAttribute(
|
||||||
|
'data-modal-image',
|
||||||
|
'https://cdn.getunleash.io/uploads/2022/05/logo.png',
|
||||||
|
);
|
||||||
|
script.setAttribute('data-button-position-right', '0');
|
||||||
|
script.setAttribute(
|
||||||
|
'data-button-border-radius',
|
||||||
|
'10px 0px 0px 10px',
|
||||||
|
);
|
||||||
|
script.setAttribute('data-button-width', '80px');
|
||||||
|
script.setAttribute('data-button-height', '100px');
|
||||||
|
script.setAttribute('data-button-image-height', '55px');
|
||||||
|
script.setAttribute('data-button-image-width', '55px');
|
||||||
|
script.setAttribute('data-button-text-font-weight', '400');
|
||||||
|
script.setAttribute('data-button-text-font-size', '16px');
|
||||||
|
script.setAttribute(
|
||||||
|
'data-button-text-font-family',
|
||||||
|
'"Sen", sans-serif',
|
||||||
|
);
|
||||||
|
script.setAttribute('data-button-text', 'ASK AI');
|
||||||
|
|
||||||
|
document.head.appendChild(script);
|
||||||
|
};
|
||||||
|
|
||||||
|
const timeoutId = setTimeout(loadKapaWidget, 3000);
|
||||||
|
|
||||||
|
const handleUserInteraction = () => {
|
||||||
|
loadKapaWidget();
|
||||||
|
window.removeEventListener('scroll', handleUserInteraction);
|
||||||
|
window.removeEventListener('click', handleUserInteraction);
|
||||||
|
window.removeEventListener('touchstart', handleUserInteraction);
|
||||||
|
window.removeEventListener('mousemove', handleUserInteraction);
|
||||||
|
};
|
||||||
|
|
||||||
|
window.addEventListener('scroll', handleUserInteraction, {
|
||||||
|
once: true,
|
||||||
|
passive: true,
|
||||||
|
});
|
||||||
|
window.addEventListener('click', handleUserInteraction, { once: true });
|
||||||
|
window.addEventListener('touchstart', handleUserInteraction, {
|
||||||
|
once: true,
|
||||||
|
passive: true,
|
||||||
|
});
|
||||||
|
window.addEventListener('mousemove', handleUserInteraction, {
|
||||||
|
once: true,
|
||||||
|
passive: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
return () => {
|
||||||
|
clearTimeout(timeoutId);
|
||||||
|
window.removeEventListener('scroll', handleUserInteraction);
|
||||||
|
window.removeEventListener('click', handleUserInteraction);
|
||||||
|
window.removeEventListener('touchstart', handleUserInteraction);
|
||||||
|
window.removeEventListener('mousemove', handleUserInteraction);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
return <>{children}</>;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user