{"version":3,"file":"cookies-tooltip.mjs","sources":["../../../packages/cookies-tooltip/cookies-tooltip.tsx"],"sourcesContent":["import {\n  FC,\n  useEffect,\n  useState,\n  useCallback,\n  ComponentPropsWithoutRef,\n  ReactNode,\n} from 'react'\nimport { getCrossDomainCookieClientSide } from '../utils/index.js'\nimport {\n  Wrap,\n  Box,\n  Text,\n  ButtonsWrap,\n  AllowButton,\n  DeclineButton,\n  ExternalLink,\n} from './styles.js'\nimport { allowCookies, declineCookies } from './utils.js'\nimport { COOKIE_ALLOWED_KEY } from './constants.js'\n\nexport type CookiesTooltipProps = Omit<\n  ComponentPropsWithoutRef<'div'>,\n  'children'\n> & {\n  privacyText?: ReactNode\n  privacyLink?: string\n  privacyLinkEnabled?: boolean\n}\n\nexport const CookiesTooltip: FC<CookiesTooltipProps> = ({\n  privacyText,\n  privacyLink,\n  privacyLinkEnabled = true,\n  ...rest\n}) => {\n  const [isVisible, setVisibility] = useState(false)\n\n  const checkCookieAllowedEarlier = useCallback(() => {\n    // Check if user allowed/declined in other tab or third level domain\n    if (getCrossDomainCookieClientSide(COOKIE_ALLOWED_KEY)) {\n      setVisibility(false)\n\n      window.removeEventListener('focus', checkCookieAllowedEarlier)\n    }\n  }, [])\n\n  useEffect(() => {\n    // Check cookie after page loaded\n    if (getCrossDomainCookieClientSide(COOKIE_ALLOWED_KEY)) {\n      return\n    }\n\n    setVisibility(true)\n\n    // This code runs after returned to this browser tab (window) from other\n    window.addEventListener('focus', checkCookieAllowedEarlier)\n  }, [checkCookieAllowedEarlier])\n\n  if (!isVisible) return <></>\n\n  return (\n    <Wrap {...rest}>\n      <Box>\n        <Text>\n          {privacyText ?? (\n            <>\n              Cookies are used to collect anonymous site visitation data\n              to&nbsp;improve website performance.\n              {privacyLinkEnabled && <>&nbsp;For&nbsp;more info, read&nbsp;</>}\n            </>\n          )}\n          {privacyLinkEnabled && (\n            <ExternalLink\n              href={privacyLink ?? 'https://lido.fi/privacy-notice'}\n            >\n              Privacy Notice\n            </ExternalLink>\n          )}\n        </Text>\n        <ButtonsWrap>\n          <AllowButton\n            onClick={() => {\n              allowCookies()\n              setVisibility(false)\n            }}\n          >\n            Allow\n          </AllowButton>\n          <DeclineButton\n            onClick={() => {\n              declineCookies()\n              setVisibility(false)\n            }}\n          >\n            Decline\n          </DeclineButton>\n        </ButtonsWrap>\n      </Box>\n    </Wrap>\n  )\n}\n"],"names":["CookiesTooltip","_ref","privacyText","privacyLink","privacyLinkEnabled","rest","isVisible","setVisibility","useState","checkCookieAllowedEarlier","useCallback","getCrossDomainCookieClientSide","COOKIE_ALLOWED_KEY","window","removeEventListener","useEffect","addEventListener","_jsx","_Fragment","Wrap","children","_jsxs","Box","Text","ExternalLink","href","ButtonsWrap","AllowButton","onClick","allowCookies","DeclineButton","declineCookies"],"mappings":";;;;;;;;AA8BaA,MAAAA,cAAuC,GAAGC,IAAA,IAKjD;EAAA,IALkD;IACtDC,WAAW;IACXC,WAAW;AACXC,IAAAA,kBAAkB,GAAG,IAAI;IACzB,GAAGC,IAAAA;AACL,GAAC,GAAAJ,IAAA,CAAA;EACC,MAAM,CAACK,SAAS,EAAEC,aAAa,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAElD,EAAA,MAAMC,yBAAyB,GAAGC,WAAW,CAAC,MAAM;AAClD;AACA,IAAA,IAAIC,8BAA8B,CAACC,kBAAkB,CAAC,EAAE;MACtDL,aAAa,CAAC,KAAK,CAAC,CAAA;AAEpBM,MAAAA,MAAM,CAACC,mBAAmB,CAAC,OAAO,EAAEL,yBAAyB,CAAC,CAAA;AAChE,KAAA;GACD,EAAE,EAAE,CAAC,CAAA;AAENM,EAAAA,SAAS,CAAC,MAAM;AACd;AACA,IAAA,IAAIJ,8BAA8B,CAACC,kBAAkB,CAAC,EAAE;AACtD,MAAA,OAAA;AACF,KAAA;IAEAL,aAAa,CAAC,IAAI,CAAC,CAAA;;AAEnB;AACAM,IAAAA,MAAM,CAACG,gBAAgB,CAAC,OAAO,EAAEP,yBAAyB,CAAC,CAAA;AAC7D,GAAC,EAAE,CAACA,yBAAyB,CAAC,CAAC,CAAA;EAE/B,IAAI,CAACH,SAAS,EAAE,oBAAOW,GAAA,CAAAC,QAAA,IAAI,CAAC,CAAA;EAE5B,oBACED,GAAA,CAACE,IAAI,EAAA;AAAA,IAAA,GAAKd,IAAI;IAAAe,QAAA,eACZC,IAAA,CAACC,GAAG,EAAA;MAAAF,QAAA,EAAA,cACFC,IAAA,CAACE,IAAI,EAAA;AAAAH,QAAAA,QAAA,EACFlB,CAAAA,WAAW,iBACVmB,IAAA,CAAAH,QAAA,EAAA;AAAAE,UAAAA,QAAA,GAAE,+FAGA,EAAChB,kBAAkB,iBAAIa,GAAA,CAAAC,QAAA,EAAA;AAAAE,YAAAA,QAAA,EAAE,gCAAA;AAAoC,WAAE,CAAC,CAAA;AAAA,SAChE,CACH,EACAhB,kBAAkB,iBACjBa,GAAA,CAACO,YAAY,EAAA;UACXC,IAAI,EAAEtB,WAAW,IAAI,gCAAiC;AAAAiB,UAAAA,QAAA,EACvD,gBAAA;AAED,SAAc,CACf,CAAA;AAAA,OACG,CAAC,eACPC,IAAA,CAACK,WAAW,EAAA;QAAAN,QAAA,EAAA,cACVH,GAAA,CAACU,WAAW,EAAA;UACVC,OAAO,EAAEA,MAAM;AACbC,YAAAA,YAAY,EAAE,CAAA;YACdtB,aAAa,CAAC,KAAK,CAAC,CAAA;WACpB;AAAAa,UAAAA,QAAA,EACH,OAAA;AAED,SAAa,CAAC,eACdH,GAAA,CAACa,aAAa,EAAA;UACZF,OAAO,EAAEA,MAAM;AACbG,YAAAA,cAAc,EAAE,CAAA;YAChBxB,aAAa,CAAC,KAAK,CAAC,CAAA;WACpB;AAAAa,UAAAA,QAAA,EACH,SAAA;AAED,SAAe,CAAC,CAAA;AAAA,OACL,CAAC,CAAA;KACX,CAAA;AAAC,GACF,CAAC,CAAA;AAEX;;;;"}