Skip to content
Snippets Groups Projects
Commit d828bcf1 authored by Eduardo Orthmann's avatar Eduardo Orthmann
Browse files

add plugin props

parent 9fb7b224
Branches feature/plugin-props
No related tags found
No related merge requests found
...@@ -133,5 +133,8 @@ ...@@ -133,5 +133,8 @@
"Issuance": { "Issuance": {
"title": "Ausgabe", "title": "Ausgabe",
"select": "Wählen" "select": "Wählen"
},
"Plugin": {
"not-found": "Plugin nicht gefunden"
} }
} }
...@@ -133,5 +133,8 @@ ...@@ -133,5 +133,8 @@
"Issuance": { "Issuance": {
"title": "Issuance", "title": "Issuance",
"select": "Select" "select": "Select"
},
"Plugin": {
"not-found": "Plugin not found"
} }
} }
\ No newline at end of file
...@@ -3,6 +3,8 @@ ...@@ -3,6 +3,8 @@
import { RemoteComponent } from '@/RemoteComponent'; import { RemoteComponent } from '@/RemoteComponent';
import { type Plugin as IPlugin } from '@/components/side-menu/WalletSideMenu'; import { type Plugin as IPlugin } from '@/components/side-menu/WalletSideMenu';
import { useQueryClient } from '@tanstack/react-query'; import { useQueryClient } from '@tanstack/react-query';
import { useTranslations } from 'next-intl';
import { useAuth } from 'oidc-react';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
interface PluginProps { interface PluginProps {
...@@ -14,6 +16,13 @@ interface PluginProps { ...@@ -14,6 +16,13 @@ interface PluginProps {
const Plugin = ({ params }: PluginProps): JSX.Element => { const Plugin = ({ params }: PluginProps): JSX.Element => {
const [PluginComponent, setPluginComponent] = useState<JSX.Element>(); const [PluginComponent, setPluginComponent] = useState<JSX.Element>();
const pluginDiscoveryData = useQueryClient().getQueryData<IPlugin[]>(['pluginDiscovery']); const pluginDiscoveryData = useQueryClient().getQueryData<IPlugin[]>(['pluginDiscovery']);
const t = useTranslations('Plugin');
const { userData } = useAuth();
const pluginMetadata = {
example1: 'Example 1',
example2: 'Example 2',
example3: 'Example 3',
};
const fetchPluginData = (pluginDiscovery: IPlugin[], pluginRoute: string): void => { const fetchPluginData = (pluginDiscovery: IPlugin[], pluginRoute: string): void => {
const foundPlugin = pluginDiscovery.find(plugin => plugin.route === pluginRoute); const foundPlugin = pluginDiscovery.find(plugin => plugin.route === pluginRoute);
...@@ -22,12 +31,18 @@ const Plugin = ({ params }: PluginProps): JSX.Element => { ...@@ -22,12 +31,18 @@ const Plugin = ({ params }: PluginProps): JSX.Element => {
process.env.NODE_ENV !== 'development' ? process.env.ENV_URL : 'https://cloud-wallet.xfsc.dev' process.env.NODE_ENV !== 'development' ? process.env.ENV_URL : 'https://cloud-wallet.xfsc.dev'
}/api/dynamic/plugins${foundPlugin?.url}/main.js`; }/api/dynamic/plugins${foundPlugin?.url}/main.js`;
setPluginComponent(<RemoteComponent url={url} />); setPluginComponent(
<RemoteComponent
url={url}
token={userData?.access_token}
metadata={pluginMetadata}
/>
);
}; };
useEffect(() => { useEffect(() => {
if (!pluginDiscoveryData) { if (!pluginDiscoveryData) {
setPluginComponent(<div>Plugin not found</div>); setPluginComponent(<div>{t('not-found')}</div>);
} else { } else {
fetchPluginData(pluginDiscoveryData, params.plugin); fetchPluginData(pluginDiscoveryData, params.plugin);
} }
......
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