in packages/react/alfa-react/src/widget.tsx [11:48]
export function createCWSWidget<T>(option: WidgetFactoryOption) {
const AlfaWidget = lazy(async () => {
let { url } = option;
let config: WidgetCWSConfig = {
links: {},
features: {},
locales: {},
conf: {},
};
if (!url) {
const { version, entryUrl } = await getWidgetVersionById(option);
url = entryUrl;
config = await getWidgetConfigById({ ...option, version });
}
const deps = await getWidgetDeps(config, option);
return loadBundle({
id: normalizeName(option.name),
url: (option.url || url || '').replace('index.js', (option?.alfaLoader) ? 'index.alfa.js' : 'index.js'),
deps: {
...deps,
...option.dependencies,
},
xmlrequest: !option.alfaLoader,
context: {
window,
location,
history,
document,
},
});
});
return (props: T) => (
<Suspense fallback={<Loading loading={option.loading} />}>