Skip to content

Commit

Permalink
Now capable of writing the plugin config !
Browse files Browse the repository at this point in the history
  • Loading branch information
S3L3CT3DLoves committed Nov 27, 2024
1 parent ad21862 commit fc257df
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 0 deletions.
20 changes: 20 additions & 0 deletions plugins/CommunityScriptsUILibrary/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,26 @@ All the following functions are exposed under `window.csLib` and `csLib`
*/
```

## setConfiguration
```js
/**
* Set configuration of a plugin in the server via GraphQL
* @param {string} pluginId - The ID of the plugin as it is registered in the server
* @param {*} values - The configuration object with the values you want to save in the server
* @returns {Object} - The configuration object of the plugin as it is stored in the server after update
*
* @example
* // fetch config from the server
* const config = await getConfiguration('CommunityScriptsUIPlugin', defaultConfig);
* // config = { theme: 'dark' }
* // update the config based on user input
* // config = { theme: 'light' }
* // save config in the server
* await setConfiguration('CommunityScriptsUIPlugin', config);
* }
*/
```

## waitForElement
```js
/**
Expand Down
31 changes: 31 additions & 0 deletions plugins/CommunityScriptsUILibrary/cs-ui-lib.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,36 @@
return response.configuration.plugins?.[pluginId] ?? fallback;
};


/**
* Set configuration of a plugin in the server via GraphQL
* @param {string} pluginId - The ID of the plugin as it is registered in the server
* @param {*} values - The configuration object with the values you want to save in the server
* @returns {Object} - The configuration object of the plugin as it is stored in the server after update
*
* @example
* // fetch config from the server
* const config = await getConfiguration('CommunityScriptsUIPlugin', defaultConfig);
* // config = { theme: 'dark' }
* // update the config based on user input
* // config = { theme: 'light' }
* // save config in the server
* await setConfiguration('CommunityScriptsUIPlugin', config);
* }
*/
const setConfiguration = async (pluginId, values) => {
const query = `mutation ConfigurePlugin($pluginId: ID!, $input: Map!) { configurePlugin(plugin_id: $pluginId, input: $input) }`;
const queryBody = {
query : query,
variables : {
pluginId : pluginId,
input : values
}
}
const response = await csLib.callGQL({ ...queryBody });
return response.configurePlugin
};

/**
* Waits for an element to be available in the DOM and runs the callback function once it is
* @param {string} selector - The CSS selector of the element to wait for
Expand Down Expand Up @@ -105,6 +135,7 @@
baseURL,
callGQL,
getConfiguration,
setConfiguration,
waitForElement,
PathElementListener,
};
Expand Down

0 comments on commit fc257df

Please sign in to comment.