@sky-mavis/tanto-widget
Version:
Tanto Widget
31 lines • 1.38 kB
JavaScript
import {jsx}from'@emotion/react/jsx-runtime';import {XIcon}from'./assets/XIcon.mjs';import {IconButton}from'./components/button/Button.mjs';import {FlexModal}from'./components/flex-modal/FlexModal.mjs';import {CONNECT_SUCCESS_DELAY}from'./constants.mjs';import {useTantoConfig}from'./contexts/tanto/useTantoConfig.mjs';import {useWidgetModal}from'./contexts/widget-modal/useWidgetModal.mjs';import {WidgetRouterProvider}from'./contexts/widget-router/WidgetRouterProvider.mjs';import {WidgetUIConfigProvider}from'./contexts/widget-ui-config/WidgetUIConfigProvider.mjs';import {useAccountEffect}from'./hooks/useAccountEffect.mjs';import {WidgetContent}from'./WidgetContent.mjs';function WidgetModal() {
const {
open,
setOpen,
hide
} = useWidgetModal();
const {
hideConnectSuccessPrompt
} = useTantoConfig();
useAccountEffect({
onConnect() {
setTimeout(hide, hideConnectSuccessPrompt ? 0 : CONNECT_SUCCESS_DELAY);
}
});
return jsx(FlexModal, {
open: open,
onOpenChange: setOpen,
children: jsx(WidgetRouterProvider, {
children: jsx(WidgetUIConfigProvider, {
children: jsx(WidgetContent, {
close: jsx(IconButton, {
intent: "secondary",
variant: "plain",
icon: jsx(XIcon, {}),
onClick: hide
})
})
})
})
});
}export{WidgetModal};