{ "version": 3, "sources": ["../../../../../../owl-nest/common/messages/src/Components/ToastDisplayer.tsx"], "sourcesContent": ["import * as React from 'react'\nimport styled, { css } from 'styled-components'\n\nimport * as plume from '@ulule/owl-kit-components/next'\n\nimport { type MessageToast, useMessage } from '../index'\n\ntype Position = 'bottom' | 'top'\n\ntype ToastDisplayerProps = {\n className?: string\n contexts?: string[]\n position: Position\n offset?: number\n}\n\nexport function ToastDisplayerContainer({\n className,\n contexts = [],\n position,\n}: ToastDisplayerProps): React.ReactElement<ToastDisplayerProps> {\n const { messages, clear, softDelete } = useMessage(contexts)\n\n React.useEffect(() => {\n const timers = messages.map((message) => {\n if (message.type === 'toast' && message.forceClose && message.deleted === false) {\n return setTimeout(() => {\n softDelete(message.context)\n }, message.timeOpen)\n }\n })\n\n return () => {\n timers.forEach((timer) => {\n if (timer) {\n clearTimeout(timer)\n }\n })\n }\n }, [messages])\n\n const currentUsedContexts = messages.reduce((acc, message) => {\n if (!acc.includes(message.context)) {\n return [...acc, message.context]\n }\n\n return acc\n }, [] as string[])\n\n const isMultiContext = currentUsedContexts.length > 1\n\n const highMessages = messages.filter(\n (message) => message.type === 'toast' && message.zIndexLevel === 'high',\n ) as MessageToast[]\n const lowMessages = messages.filter(\n (message) => message.type === 'toast' && (message.zIndexLevel === 'low' || message.zIndexLevel === undefined),\n ) as MessageToast[]\n\n return (\n <>\n <Wrapper\n className={className}\n isAllDeleted={highMessages.every((message) => message.deleted)}\n isMultiContext={isMultiContext}\n level=\"high\"\n >\n {highMessages.map((message, i) => {\n const toastProps = {\n key: `${message.context}-${i}`,\n type: message.level,\n onClose: () => {\n clear(message.context)\n message.onClose && message.onClose()\n },\n closed: message.deleted ?? false,\n }\n\n if (message.link) {\n return (\n <plume.Toast {...toastProps} link={message.link}>\n {message.message}\n </plume.Toast>\n )\n }\n\n if (message.button) {\n return (\n <plume.Toast {...toastProps} button={message.button}>\n {message.message}\n </plume.Toast>\n )\n }\n\n return <plume.Toast {...toastProps}>{message.message}</plume.Toast>\n })}\n </Wrapper>\n <Wrapper\n className={className}\n isAllDeleted={lowMessages.every((message) => message.deleted)}\n isMultiContext={isMultiContext}\n level=\"low\"\n >\n {lowMessages.map((message, i) => {\n const toastProps = {\n key: `${message.context}-${i}`,\n type: message.level,\n onClose: () => {\n clear(message.context)\n message.onClose && message.onClose()\n },\n closed: message.deleted ?? false,\n }\n\n if (message.link) {\n return (\n <plume.Toast {...toastProps} link={message.link}>\n {message.message}\n </plume.Toast>\n )\n }\n\n if (message.button) {\n return (\n <plume.Toast {...toastProps} button={message.button}>\n {message.message}\n </plume.Toast>\n )\n }\n\n return <plume.Toast {...toastProps}>{message.message}</plume.Toast>\n })}\n </Wrapper>\n </>\n )\n}\n\nexport const Wrapper = styled.div<{ isAllDeleted: boolean; isMultiContext: boolean; level: 'low' | 'high' }>`\n ${({ isMultiContext }) => {\n if (isMultiContext) {\n return css`\n ${plume.styles.notification.ToastContainer} {\n position: absolute;\n width: 100%;\n }\n `\n }\n }}\n\n ${({ level }) => {\n if (level === 'high') {\n return css`\n z-index: ${plume.ZINDEX.DRAWER + 1};\n `\n }\n\n if (level === 'low') {\n return css`\n z-index: ${plume.ZINDEX.TOAST};\n `\n }\n }}\n\n ${({ isAllDeleted }) =>\n isAllDeleted &&\n css`\n pointer-events: none;\n `}\n`\n\nexport const ToastDisplayer = styled(ToastDisplayerContainer)`\n position: fixed;\n transform: translateX(-50%);\n width: 90%;\n left: 50%;\n\n @media screen and ${plume.BREAKPOINTS.TABLET} {\n ${({ offset = plume.SIZES.HEADER_HEIGHT }) => {\n return css`\n top: calc(${offset}px + 30px);\n `\n }}\n\n margin: 0;\n margin-right: 10px;\n width: 550px;\n }\n\n ${({ offset = plume.SIZES.HEADER_HEIGHT, position }) => {\n if (position === 'bottom') {\n return css`\n bottom: 10px;\n `\n }\n\n if (position === 'top') {\n return css`\n top: calc(${offset}px + 10px);\n\n @media screen and ${plume.BREAKPOINTS.TABLET} {\n top: calc(${offset}px + 30px);\n }\n `\n }\n }}\n`\n"], "mappings": "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", "names": ["init_define_process_env", "init_sentry_release_injection_stub", "React", "ToastDisplayerContainer", "className", "contexts", "position", "messages", "clear", "softDelete", "useMessage", "timers", "message", "timer", "isMultiContext", "acc", "highMessages", "lowMessages", "Wrapper", "i", "_a", "toastProps", "Toast", "__spreadProps", "__spreadValues", "_b", "_c", "_d", "_e", "src_default", "__template", "css", "styles_exports", "level", "zindex_exports", "isAllDeleted", "_f", "_g", "_h", "_i", "ToastDisplayer", "breakpoints_exports", "offset", "sizes_exports"] }