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

add plugin props

parent 9fb7b224
No related branches found
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