File "RolesStore.js"
Full path: /home/satkhirabarta/public_html/wp-content/plugins/really-simple-ssl/settings/src/Settings/TwoFA/RolesStore.js
File
size: 1.31 B
MIME-type: text/x-java
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
import {create} from 'zustand';
import * as rsssl_api from "../../utils/api";
import {produce} from "immer";
const useRolesData = create(( set, get ) => ({
roles: [],
rolesLoaded:false,
fetchRoles: async ( id ) => {
try {
// Fetch the roles from the server using rsssl_api.getUserRoles()
const response = await rsssl_api.doAction('get_roles', { id: id });
// Handle the response
if ( !response ) {
console.error('No response received from the server.');
return;
}
const data = response.roles;
if (typeof data !== 'object') {
console.error('Invalid data received in the server response. Expected an object.');
return;
}
// Convert the object to an array
const dataArray = Object.values(data);
// Format the data into options array for react-select
const formattedData = dataArray.map((role, index) => ({ value: role, label: role.charAt(0).toUpperCase() + role.slice(1) }));
// Set the roles state with formatted data
set({roles: formattedData,rolesLoaded:true });
} catch (error) {
console.error('Error:', error);
}
}
}));
export default useRolesData;