react-native-gigya-sdk
Version:
SAP CDC/Gigya SDK for your React Native applications
35 lines (27 loc) • 776 B
text/typescript
import type { GigyaSdkStateType } from '../types'
import getState from '../core/getState'
export const initialState: GigyaSdkStateType = {
UID: '',
lang: 'en',
apiKey: '',
storageKey: 'GigyaSdkState',
}
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)
}
})
}