UNPKG

@droppii-org/chat-sdk

Version:

Droppii React Chat SDK

39 lines (38 loc) 1.36 kB
import { create } from "zustand"; import { Platform } from "@openim/wasm-client-sdk"; import { DChatApplicationType } from "../types/chat"; import { jwtDecode } from "jwt-decode"; const useAuthStore = create((set, get) => ({ accessToken: "", chatToken: "", apiAddress: "", wsAddress: "", platformID: Platform.Web, userID: "", applicationType: DChatApplicationType.OBEFE, isCx: false, isCrm: false, onTokenRefresh: undefined, onAuthError: undefined, setAccessToken: (token) => set({ accessToken: token }), setChatToken: (token) => set({ chatToken: token }), initAuthStore: ({ accessToken, chatToken, apiAddress, wsAddress, platformID, userID, applicationType, isCrm, onTokenRefresh, onAuthError, }) => { var _a; const jwtParser = !!accessToken ? jwtDecode(accessToken) : null; const isCx = !!isCrm && !!((_a = jwtParser === null || jwtParser === void 0 ? void 0 : jwtParser.role) === null || _a === void 0 ? void 0 : _a.includes("CRM_LIVE_CHAT")); set({ accessToken, chatToken, apiAddress, wsAddress, platformID, userID, applicationType, isCx, isCrm: !!isCrm, onTokenRefresh, onAuthError, }); }, })); export default useAuthStore;