import { useQueryClient } from '@tanstack/react-query'; import { deletePlugin, installPlugin, updatePluginStatus } from '../api'; import useSnackBarStore from '@/stores/snackBarStore'; import { __ } from '@wordpress/i18n'; export function installPluginMutationOptions() { const queryClient = useQueryClient() const { addSnackBar } = useSnackBarStore() return { mutationFn: (pluginSlug: string) => { return installPlugin(pluginSlug) }, onSuccess: (data: any, variables: any, context: any) => { queryClient.refetchQueries({ queryKey: ['site-plugins'] }) addSnackBar( { id: `install-plugin-${variables}`, content: __('Plugin installed successfully', 'ploogins-ai-assistant'), } ) } } } export function updatePluginStatusMutationOptions() { const queryClient = useQueryClient() const { addSnackBar } = useSnackBarStore() return { mutationFn: (args: { pluginSlug: string, status: string, plugin: string }) => { return updatePluginStatus(args) }, onSuccess: (data: any, variables: any, context: any) => { queryClient.refetchQueries({ queryKey: ['site-plugins'] }) switch (variables.status) { case 'active': addSnackBar( { id: `update-plugin-status-${variables}`, content: __('Plugin activated successfully', 'ploogins-ai-assistant'), } ); break; case 'inactive': addSnackBar( { id: `update-plugin-status-${variables}`, content: __('Plugin deactivated successfully', 'ploogins-ai-assistant'), } ); break; default: addSnackBar( { id: `update-plugin-status-${variables}`, content: __('Plugin status updated successfully', 'ploogins-ai-assistant'), } ); } }, onError: (data: any, variables: any, context: any) => { addSnackBar( { id: `error-plugin-${variables}`, content: __('Error activating the plugin', 'ploogins-ai-assistant'), } ); } } } export function deletePluginMutationOptions() { const queryClient = useQueryClient() const { addSnackBar } = useSnackBarStore() return { mutationFn: (args: { pluginSlug: string, plugin: string }) => { return deletePlugin(args) }, onSuccess: (data: any, variables: any, context: any) => { queryClient.refetchQueries({ queryKey: ['site-plugins'] }) addSnackBar( { id: `delete-plugin-${variables}`, content: __('Plugin deleted successfully', 'ploogins-ai-assistant'), } ) } } }