diff --git a/packages/core/client/src/schema-component/antd/variable/Helpers/HelperConfiguator.tsx b/packages/core/client/src/schema-component/antd/variable/Helpers/HelperConfiguator.tsx index 7cf25c2bb9..9b5c61f1e9 100644 --- a/packages/core/client/src/schema-component/antd/variable/Helpers/HelperConfiguator.tsx +++ b/packages/core/client/src/schema-component/antd/variable/Helpers/HelperConfiguator.tsx @@ -15,7 +15,7 @@ import { createMemoryHistory } from 'history'; import debounce from 'lodash/debounce'; import minimatch from 'minimatch'; import React from 'react'; -import { Router } from 'react-router-dom'; +import { Router, useLocation } from 'react-router-dom'; import { useApp } from '../../../../application'; import { SchemaComponent } from '../../../core/SchemaComponent'; import { useCurrentVariable, VariableHelperMapping } from '../VariableProvider'; @@ -59,7 +59,7 @@ export function isFilterAllowedForVariable( return !mapping.strictMode; } -export const HelperConfiguator = observer( +const Configurator = observer( ({ index, close }: { index: number; close: () => void }) => { const app = useApp(); const { value, helperObservables } = useCurrentVariable(); @@ -68,7 +68,6 @@ export const HelperConfiguator = observer( const rawHelper = rawHelpersObs.value[index]; const helperConfigs = app.jsonTemplateParser.filters; const helperConfig = helperConfigs.find((item) => item.name === helper.name); - const history = createMemoryHistory(); const previousHelpers = helpersObs.value.slice(0, index); const inputValue = previousHelpers.reduce((value, helper) => { return helper.handler(value, ...helper.args); @@ -178,21 +177,48 @@ export const HelperConfiguator = observer( }, }, }; + + return ( + + ); + }, + { displayName: 'Configurator' }, +); + +const WithRouter = observer( + ({ children }: { children: React.ReactNode }) => { + const history = createMemoryHistory(); return ( - + {children} ); }, - { displayName: 'Helper' }, + { displayName: 'WithRouter' }, +); + +export const HelperConfiguator = observer( + (props: { index: number; close: () => void }) => { + try { + useLocation(); + return ; + } catch (error) { + return ( + + + + ); + } + }, + { displayName: 'HelperConfiguator' }, );