@droppii-org/chat-sdk
Version:
Droppii React Chat SDK
39 lines (38 loc) • 1.36 kB
JavaScript
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;