{"version":3,"file":"getFeatureState.mjs","sources":["../../../../../../../../web/src/adminPortal/utils/getFeatureState.ts"],"sourcesContent":["import { Member } from '@stytch/core/public';\n\nexport type AdminPortalFeatureState =\n  | 'success'\n  | 'loading'\n  | 'notLoggedIn'\n  | 'error'\n  | 'featureNotEnabled'\n  | 'noPermission';\n\nexport const getFeatureState = ({\n  self,\n  fromCache,\n  adminPortalConfigError,\n  isFeatureEnabled,\n  hasPermission,\n}: {\n  self: Member | null;\n  fromCache: boolean;\n  adminPortalConfigError: unknown;\n  isFeatureEnabled: boolean | undefined;\n  hasPermission: boolean | undefined;\n}): AdminPortalFeatureState => {\n  const hasSelf = !!self;\n\n  const hasAdminPortalConfig = isFeatureEnabled !== undefined;\n\n  if (!hasSelf) {\n    return fromCache ? 'loading' : 'notLoggedIn';\n  }\n  if (adminPortalConfigError) {\n    return 'error';\n  }\n\n  if (!hasAdminPortalConfig) {\n    return 'loading';\n  }\n  if (hasPermission === undefined) {\n    return 'loading';\n  }\n\n  if (!isFeatureEnabled) {\n    return 'featureNotEnabled';\n  }\n  if (!hasPermission) {\n    return 'noPermission';\n  }\n\n  return 'success';\n};\n"],"names":["getFeatureState","self","fromCache","adminPortalConfigError","isFeatureEnabled","hasPermission","hasSelf","hasAdminPortalConfig","undefined"],"mappings":"AAUO,MAAMA,eAAAA,GAAkB,CAAC,EAC9BC,IAAI,EACJC,SAAS,EACTC,sBAAsB,EACtBC,gBAAgB,EAChBC,aAAa,EAOd,GAAA;IACC,MAAMC,OAAAA,GAAU,CAAC,CAACL,IAAAA;AAElB,IAAA,MAAMM,uBAAuBH,gBAAAA,KAAqBI,SAAAA;AAElD,IAAA,IAAI,CAACF,OAAAA,EAAS;AACZ,QAAA,OAAOJ,YAAY,SAAA,GAAY,aAAA;AACjC,IAAA;AACA,IAAA,IAAIC,sBAAAA,EAAwB;QAC1B,OAAO,OAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACI,oBAAAA,EAAsB;QACzB,OAAO,SAAA;AACT,IAAA;AACA,IAAA,IAAIF,kBAAkBG,SAAAA,EAAW;QAC/B,OAAO,SAAA;AACT,IAAA;AAEA,IAAA,IAAI,CAACJ,gBAAAA,EAAkB;QACrB,OAAO,mBAAA;AACT,IAAA;AACA,IAAA,IAAI,CAACC,aAAAA,EAAe;QAClB,OAAO,cAAA;AACT,IAAA;IAEA,OAAO,SAAA;AACT;;;;"}