{"version":3,"sources":["../src/hooks/useSupportFeatureFlag.ts"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useAppStore } from '../store/appStore';\nimport {\n  SupportType,\n  type SupportFeatureFlags,\n  type SupportApiClient,\n} from '../types/support';\n\nexport interface UseSupportFeatureFlagConfig {\n  apiClient: SupportApiClient;\n}\n\nexport interface UseSupportFeatureFlagReturn {\n  supportType: SupportType;\n  loading: boolean;\n  isZendesk: boolean;\n  isNative: boolean;\n  openZendeskChat: () => void;\n}\n\nexport const useSupportFeatureFlag = (\n  config: UseSupportFeatureFlagConfig\n): UseSupportFeatureFlagReturn => {\n  const [supportType, setSupportType] = useState<SupportType>(\n    SupportType.NATIVE\n  );\n  const [loading, setLoading] = useState(true);\n  const { institutionId } = useAppStore();\n\n  useEffect(() => {\n    if (!institutionId) {\n      setLoading(false);\n      return;\n    }\n\n    const fetchSupportFlag = async () => {\n      try {\n        const { data: response } = await config.apiClient.get<{\n          data: { featureFlags: SupportFeatureFlags };\n        }>(`/featureFlags/institution/${institutionId}/page/SUPPORT`);\n\n        const type = response?.data?.featureFlags?.version?.supportType;\n        if (type) {\n          setSupportType(type);\n        }\n      } catch {\n        setSupportType(SupportType.NATIVE);\n      } finally {\n        setLoading(false);\n      }\n    };\n\n    fetchSupportFlag();\n  }, [institutionId]);\n\n  const openZendeskChat = () => {\n    if (\n      typeof globalThis !== 'undefined' &&\n      (globalThis as unknown as Record<string, unknown>).zE\n    ) {\n      (\n        (globalThis as unknown as Record<string, unknown>).zE as (\n          ...args: unknown[]\n        ) => void\n      )('messenger', 'open');\n    }\n  };\n\n  return {\n    supportType,\n    loading,\n    isZendesk: supportType === SupportType.ZENDESK,\n    isNative: supportType === SupportType.NATIVE,\n    openZendeskChat,\n  };\n};\n"],"mappings":";;;;;AAAA,SAAS,WAAW,gBAAgB;AAoB7B,IAAM,wBAAwB,CACnC,WACgC;AAChC,QAAM,CAAC,aAAa,cAAc,IAAI;AAAA;AAAA,EAEtC;AACA,QAAM,CAAC,SAAS,UAAU,IAAI,SAAS,IAAI;AAC3C,QAAM,EAAE,cAAc,IAAI,YAAY;AAEtC,YAAU,MAAM;AACd,QAAI,CAAC,eAAe;AAClB,iBAAW,KAAK;AAChB;AAAA,IACF;AAEA,UAAM,mBAAmB,YAAY;AACnC,UAAI;AACF,cAAM,EAAE,MAAM,SAAS,IAAI,MAAM,OAAO,UAAU,IAE/C,6BAA6B,aAAa,eAAe;AAE5D,cAAM,OAAO,UAAU,MAAM,cAAc,SAAS;AACpD,YAAI,MAAM;AACR,yBAAe,IAAI;AAAA,QACrB;AAAA,MACF,QAAQ;AACN,4CAAiC;AAAA,MACnC,UAAE;AACA,mBAAW,KAAK;AAAA,MAClB;AAAA,IACF;AAEA,qBAAiB;AAAA,EACnB,GAAG,CAAC,aAAa,CAAC;AAElB,QAAM,kBAAkB,MAAM;AAC5B,QACE,OAAO,eAAe,eACrB,WAAkD,IACnD;AACA,MACG,WAAkD,GAGnD,aAAa,MAAM;AAAA,IACvB;AAAA,EACF;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,UAAU;AAAA,IACV;AAAA,EACF;AACF;","names":[]}