{"version":3,"file":"FluentProfileMenuCard.mjs","names":["React","forwardRef","useCallback","Button","CardContent","makeStyles","Typography","UserAvatar","clearStoredPath","clearStoredExternalPath","clearStoredTenant","storeTenant","useTranslation","useUserActions","User","useHistory","useHistoryNoType","Tenant","History","TenantSelect","useStyles","theme","root","margin","spacing","paddingBottom","cardHeader","display","marginBottom","currentTenant","width","buttonGroup","flexDirection","alignItems","basicInfoContainer","marginLeft","basicInfo","paddingLeft","divider","height","avatar","fontSize","FluentProfileMenuCardProps","userTenants","user","logout","unityUrl","displayProfileButton","FluentProfileMenuCard","HTMLDivElement","props","ref","$","_c","classes","t0","undefined","history","t1","push","redirectToHome","t","key","options","Record","changeTenant","t2","tenant","tenantId","handleTenantChange","t3","t4","name","t5","email","t6","t7","t8","t9","t10","t11","t12","t13","defaultValue","t14","t15","t16","t17","displayName"],"sources":["../../../../src/shell/ui/profile/FluentProfileMenuCard.tsx"],"sourcesContent":["import React, { forwardRef, useCallback } from 'react';\nimport { Button, CardContent, makeStyles, Typography } from '@material-ui/core';\nimport UserAvatar from './UserAvatar';\nimport { clearStoredPath } from '../../../utilities/redirect/LocalRedirectUrlStorage';\nimport { clearStoredExternalPath } from '../../../utilities/redirect/ExternalRedirectUrlStorage';\nimport {\n  clearStoredTenant,\n  storeTenant\n} from '../../../utilities/storage/UnitySessionStorage';\nimport { useTranslation } from 'react-i18next';\nimport { useUserActions } from '../../../utilities/auth/users';\nimport { User } from '../../../utilities/auth';\nimport { useHistory as useHistoryNoType} from 'react-router-dom';\nimport { Tenant } from '../../../utilities';\nimport {History} from 'history';\nimport { TenantSelect } from '../../../utilities/tenant';\n\nconst useHistory = useHistoryNoType as  () => History;\nconst useStyles = makeStyles((theme) => ({\n  root: {\n    '& > *': {\n      margin: theme.spacing(1)\n    },\n    '&:last-child': {\n      paddingBottom: theme.spacing(2)\n    }\n  },\n  cardHeader: {\n    display: 'flex',\n    marginBottom: theme.spacing(3)\n  },\n  currentTenant: {\n    margin: 'auto',\n    width: '85%',\n    marginBottom: theme.spacing(4)\n  },\n  buttonGroup: {\n    display: 'flex',\n    flexDirection: 'row',\n    alignItems: 'center'\n  },\n  basicInfoContainer: {\n    marginLeft: theme.spacing(1)\n  },\n  basicInfo: {\n    paddingLeft: theme.spacing(1)\n  },\n  divider: {\n    height: theme.spacing(3)\n  },\n  avatar: {\n    fontSize: 40\n  }\n}));\n\ninterface FluentProfileMenuCardProps {\n  userTenants: Tenant[];\n  currentTenant: Tenant | null;\n  user: User | null;\n  logout: () => void;\n  unityUrl?: string;\n  displayProfileButton?: boolean;\n}\n\nexport const FluentProfileMenuCard = forwardRef<HTMLDivElement, FluentProfileMenuCardProps>((props, ref) => {\n  const classes = useStyles();\n  const devUnityUrl = 'https://unity-dev.univerus.com/';\n  const {\n    userTenants,\n    currentTenant,\n    user,\n    logout,\n    unityUrl = devUnityUrl,\n  } = props;\n  const history =  useHistory();\n  const redirectToHome = useCallback(() => history.push('/'), [history]);\n  // eslint-disable-next-line\n  const { t  } = useTranslation() as {t: (key: string, options?: Record<string, unknown>) => string};\n  const { changeTenant } = useUserActions();\n\n  const handleTenantChange = useCallback(\n    (tenant: Tenant) => {\n      storeTenant(tenant.tenantId);\n      changeTenant(tenant.tenantId);\n      redirectToHome();\n    },\n    [changeTenant, redirectToHome]\n  );\n\n\n\n  // const handleProfileClick = () => {\n  //   // if this is unity (productid is 1), go to the profile slug, otherwise open the profile page in a new tab\n  //   if(ConfigService.config.UNITY_PRODUCT_ID === '1') history.push('/profile')\n  //   else window.open(unityUrl + '/profile');\n\n  // }\n\n  if (!user) return null;\n\n  return (\n    <CardContent ref={ref} className={classes.root}>\n      <div className={classes.cardHeader}>\n        <UserAvatar\n          name={user?.name}\n          email={user?.email}\n          size='large'\n          className={classes.avatar}\n        />\n        <div className={classes.basicInfoContainer}>\n          <Typography className={classes.basicInfo} variant='subtitle2'>\n            {user?.name}\n          </Typography>\n          <Typography className={classes.basicInfo} variant='body2'>\n            {user?.email}\n          </Typography>\n          {/* {displayProfileButton && (\n            <div className={classes.buttonGroup}>\n              <Button\n                id='udpRecord-FluentProfileMenuCard-MyProfile'\n                udprecordid='udpRecord-FluentProfileMenuCard-MyProfile'\n                onClick={handleProfileClick}\n                target='_blank'\n                color='secondary'\n              >\n                {t('My Profile')}\n              </Button>\n            </div>\n          )} */}\n        </div>\n      </div>\n      {userTenants && user && changeTenant && (\n        <TenantSelect\n          className={classes.currentTenant}\n          id='current-tenant'\n          tenants={userTenants}\n          value={currentTenant}\n          onTenantChange={handleTenantChange}\n          label={t('shell.profile.currentTenant', {\n            defaultValue: 'Current Tenant'\n          })}\n          recordIdPrefix='udpRecord-FluentProfileMenuCard'\n        />\n      )}\n      <Button\n        id='udpRecord-FluentProfileMenuCard-SignOut'\n        // @ts-expect-error Custom automation attribute not typed by MUI\n        udprecordid='udpRecord-FluentProfileMenuCard-SignOut'\n        onClick={() => {\n          clearStoredPath();\n          clearStoredExternalPath();\n          clearStoredTenant();\n          logout();\n        }}\n        variant='outlined'\n        color='secondary'\n      >\n        {t('shell.profile.signOut', { defaultValue: 'Sign out' })}\n      </Button>\n    </CardContent>\n  );\n});\n\nFluentProfileMenuCard.displayName = 'FluentProfileMenuCard';\n"],"mappings":"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"}