react-native-gigya-sdk
Version:
SAP CDC/Gigya SDK for your React Native applications
33 lines (25 loc) • 894 B
text/typescript
import { GigyaSdkDataCenters, GigyaSdkLinkAccountVersions, GigyaSdkStateType } from '../types'
import getState from '../core/getState'
export const initialState: GigyaSdkStateType = {
UID: '',
lang: 'en',
apiKey: '',
storageKey: 'GigyaSdkState',
dataCenter: GigyaSdkDataCenters.EU1,
linkAccountVersion: GigyaSdkLinkAccountVersions.V1,
}
export let state: GigyaSdkStateType = initialState
export function setState(data: Partial<GigyaSdkStateType>): Promise<GigyaSdkStateType> {
return new Promise(async (resolve, reject) => {
try {
const oldState = await getState()
const newState = { ...oldState, ...data }
const setItem = data.storage?.setItem || oldState.storage?.setItem
await Promise.resolve(setItem?.(newState.storageKey, JSON.stringify(newState)))
state = newState
resolve(state)
} catch (e) {
reject(e)
}
})
}