Skip to content
Snippets Groups Projects
Commit ce76174f authored by mateusz-winiarczyk's avatar mateusz-winiarczyk
Browse files

refactor(plugins): remove unnecessary window func

parent 7409e65c
No related branches found
No related tags found
3 merge requests!223reset the pin numbers before search results are fetch (so the results will be...,!122feat: add main plugins drawer with tabs (MIN-232),!116feat(plugins): Plugin loading management (MIN-233)
...@@ -15,15 +15,12 @@ type HashPlugin = { ...@@ -15,15 +15,12 @@ type HashPlugin = {
pluginScript: string; pluginScript: string;
}; };
type SetHashedPlugin = ({ pluginUrl, pluginScript }: HashPlugin) => void;
declare global { declare global {
interface Window { interface Window {
minerva: { minerva: {
configuration?: MinervaConfiguration; configuration?: MinervaConfiguration;
plugins: { plugins: {
registerPlugin: RegisterPlugin; registerPlugin: RegisterPlugin;
setHashedPlugin: SetHashedPlugin;
}; };
}; };
} }
......
...@@ -50,11 +50,20 @@ export const registerPlugin = createAsyncThunk( ...@@ -50,11 +50,20 @@ export const registerPlugin = createAsyncThunk(
}, },
); );
type GetInitPluginsProps = { pluginsId: string[] }; type GetInitPluginsProps = {
pluginsId: string[];
setHashedPlugin: ({
pluginUrl,
pluginScript,
}: {
pluginUrl: string;
pluginScript: string;
}) => void;
};
export const getInitPlugins = createAsyncThunk<void, GetInitPluginsProps>( export const getInitPlugins = createAsyncThunk<void, GetInitPluginsProps>(
'plugins/getInitPlugins', 'plugins/getInitPlugins',
async ({ pluginsId }): Promise<void> => { async ({ pluginsId, setHashedPlugin }): Promise<void> => {
/* eslint-disable no-restricted-syntax, no-await-in-loop */ /* eslint-disable no-restricted-syntax, no-await-in-loop */
for (const pluginId of pluginsId) { for (const pluginId of pluginsId) {
const res = await axiosInstance<Plugin>(apiPath.getPlugin(pluginId)); const res = await axiosInstance<Plugin>(apiPath.getPlugin(pluginId));
...@@ -65,7 +74,7 @@ export const getInitPlugins = createAsyncThunk<void, GetInitPluginsProps>( ...@@ -65,7 +74,7 @@ export const getInitPlugins = createAsyncThunk<void, GetInitPluginsProps>(
const { urls } = res.data; const { urls } = res.data;
const scriptRes = await axios(urls[0]); const scriptRes = await axios(urls[0]);
const pluginScript = scriptRes.data; const pluginScript = scriptRes.data;
window.minerva.plugins.setHashedPlugin({ pluginUrl: urls[0], pluginScript }); setHashedPlugin({ pluginUrl: urls[0], pluginScript });
/* eslint-disable no-new-func */ /* eslint-disable no-new-func */
const loadPlugin = new Function(pluginScript); const loadPlugin = new Function(pluginScript);
......
...@@ -4,6 +4,7 @@ import { PROJECT_ID } from '@/constants'; ...@@ -4,6 +4,7 @@ import { PROJECT_ID } from '@/constants';
import { AppDispatch } from '@/redux/store'; import { AppDispatch } from '@/redux/store';
import { QueryData } from '@/types/query'; import { QueryData } from '@/types/query';
import { getDefaultSearchTab } from '@/components/FunctionalArea/TopBar/SearchBar/SearchBar.utils'; import { getDefaultSearchTab } from '@/components/FunctionalArea/TopBar/SearchBar/SearchBar.utils';
import { PluginsManager } from '@/services/pluginsManager';
import { getAllBackgroundsByProjectId } from '../backgrounds/backgrounds.thunks'; import { getAllBackgroundsByProjectId } from '../backgrounds/backgrounds.thunks';
import { getAllPublicOverlaysByProjectId } from '../overlays/overlays.thunks'; import { getAllPublicOverlaysByProjectId } from '../overlays/overlays.thunks';
import { getModels } from '../models/models.thunks'; import { getModels } from '../models/models.thunks';
...@@ -77,6 +78,7 @@ export const fetchInitialAppData = createAsyncThunk< ...@@ -77,6 +78,7 @@ export const fetchInitialAppData = createAsyncThunk<
dispatch( dispatch(
getInitPlugins({ getInitPlugins({
pluginsId: queryData.pluginsId, pluginsId: queryData.pluginsId,
setHashedPlugin: PluginsManager.setHashedPlugin,
}), }),
); );
} }
......
...@@ -15,7 +15,6 @@ export const PluginsManager: PluginsManagerType = { ...@@ -15,7 +15,6 @@ export const PluginsManager: PluginsManagerType = {
window.minerva = { window.minerva = {
plugins: { plugins: {
registerPlugin: PluginsManager.registerPlugin, registerPlugin: PluginsManager.registerPlugin,
setHashedPlugin: PluginsManager.setHashedPlugin,
}, },
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment