import {create} from 'zustand';
import * as cmplz_api from "../../utils/api";
const UseInstallPluginData = create(( set, get ) => ({
	apiRequestActive:false,
	pluginAction: 'status',
	wordPressUrl: '#',
	upgradeUrl: '#',
	rating: [],
	statusLoaded:false,
	setStatusLoaded: (status) => {
		set({statusLoaded:status})
	},
	startPluginAction: (slug, action) => {
		let data = {};
		set({apiRequestActive:true});
		data.pluginAction = typeof action !== 'undefined' ? action : get().pluginAction;
		data.slug = slug;

		let nextAction = false;
		if ( data.pluginAction === 'download' ) {
			nextAction = 'activate';
		}

		cmplz_api.doAction('plugin_actions', data).then( ( response ) => {
			set({
				pluginAction:response.pluginAction,
				wordPressUrl:response.wordpress_url,
				upgradeUrl:response.upgrade_url,
			});//'installed', 'download', 'activate', 'upgrade-to-premium'
			//convert to percentage
			let p = Math.round( response.star_rating.rating / 10, 0 ) / 2;
			set({
				rating:p,
				ratingCount:response.star_rating.rating_count,
				apiRequestActive:false,
				statusLoaded:true,
			});
			//if the plugin is installed, go ahead and activate as well
			if ( nextAction === 'activate' && response.pluginAction!=='installed' ) {
				get().startPluginAction(slug, response.pluginAction);
			}

		});
	},
}));

export default UseInstallPluginData;