@porsche-design-system/components-react
Version:
Porsche Design System is a component library designed to help developers create the best experience for software or services distributed by Dr. Ing. h.c. F. Porsche AG.
29 lines (25 loc) • 1.18 kB
JavaScript
"use client";
;
var jsxRuntime = require('react/jsx-runtime');
var react = require('react');
var componentsJs = require('@porsche-design-system/components-js');
// to warn users about missing PorscheDesignSystemProvider, we set the default values as undefined
const PorscheDesignSystemContext = react.createContext({
prefix: undefined,
theme: 'light',
});
const PorscheDesignSystemProvider = ({ prefix = '', cdn, theme = 'light', ...props }) => {
// @ts-ignore
if (!process.browser) {
// for ssr we set the global PORSCHE_DESIGN_SYSTEM_CDN_URL variable that is used in our getCDNBaseURL() util to respect the cdn
const tld = cdn === 'cn' ? 'cn' : 'com';
// @ts-ignore
global.PORSCHE_DESIGN_SYSTEM_CDN_URL = `https://cdn.ui.porsche.${tld}`;
}
react.useEffect(() => {
componentsJs.load({ prefix, cdn });
}, []); // runtime prefix or cdn change is not supported
return jsxRuntime.jsx(PorscheDesignSystemContext.Provider, { value: { prefix, theme }, ...props });
};
exports.PorscheDesignSystemContext = PorscheDesignSystemContext;
exports.PorscheDesignSystemProvider = PorscheDesignSystemProvider;