%PDF- %PDF-
Direktori : /home/dopla/www/wp-content/plugins/ml-slider/extendify-sdk/src/state/ |
Current File : /home/dopla/www/wp-content/plugins/ml-slider/extendify-sdk/src/state/User.js |
import create from 'zustand' import { persist } from 'zustand/middleware' import { User } from '../api/User' const storage = { getItem: async () => await User.getData(), setItem: async (_name, value) => await User.setData(value), } const isGlobalLibraryEnabled = () => window.extendifySdkData.sitesettings === null || window.extendifySdkData?.sitesettings?.state?.enabled export const useUserStore = create( persist( (set, get) => ({ email: '', apiKey: '', imports: 0, uuid: '', sdkPartner: '', registration: { email: '', }, noticesDismissedAt: {}, allowedImports: 0, entryPoint: 'not-set', enabled: isGlobalLibraryEnabled(), canInstallPlugins: false, canActivatePlugins: false, preferredOptions: { taxonomies: {}, type: '', search: '', }, preferredOptionsHistory: { siteType: [], }, incrementImports: () => set({ imports: get().imports + 1 }), canImport: () => get().apiKey ? true : Number(get().imports) < Number(get().allowedImports), remainingImports: () => { if (get().apiKey) { return 'unlimited' } const remaining = Number(get().allowedImports) - Number(get().imports) return remaining > 0 ? remaining : 0 }, updateSiteType: (value) => { get().updatePreferredOption('tax_categories', value) if (!value || value === 'Unknown') return const history = new Set([ value, ...get().preferredOptionsHistory.siteType, ]) set({ preferredOptionsHistory: Object.assign( {}, get().preferredOptionsHistory, { siteType: [...history].slice(0, 3), }, ), }) }, updatePreferredOption: (option, value) => { // If the option doesn't exist, assume it's a taxonomy if ( !Object.prototype.hasOwnProperty.call( get().preferredOptions, option, ) ) { value = Object.assign( {}, get().preferredOptions?.taxonomies ?? {}, { [option]: value }, ) option = 'taxonomies' } // Reset if the type changes from template/pattern/etc const resetTaxonomies = option == 'type' && value !== get().preferredOptions?.type set({ preferredOptions: { ...Object.assign( {}, get().preferredOptions, { [option]: value }, resetTaxonomies ? { taxonomies: {} } : {}, ), }, }) }, }), { name: 'extendify-user', getStorage: () => storage, }, ), )