diff --git a/frontend/src/AppRoutes/index.tsx b/frontend/src/AppRoutes/index.tsx index a5641c35da..ec7db3f0aa 100644 --- a/frontend/src/AppRoutes/index.tsx +++ b/frontend/src/AppRoutes/index.tsx @@ -5,6 +5,7 @@ import AppLayout from 'container/AppLayout'; import { useThemeConfig } from 'hooks/useDarkMode'; import { NotificationProvider } from 'hooks/useNotifications'; import history from 'lib/history'; +import { QueryBuilderProvider } from 'providers/QueryBuilder'; import React, { Suspense } from 'react'; import { Route, Router, Switch } from 'react-router-dom'; @@ -17,26 +18,28 @@ function App(): JSX.Element { return ( - - - - }> - - {routes.map(({ path, component, exact }) => ( - - ))} + + + + + }> + + {routes.map(({ path, component, exact }) => ( + + ))} - - - - - - + + + + + + + ); diff --git a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/query.tsx b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/query.tsx index 8f171baa3c..7b9681f89e 100644 --- a/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/query.tsx +++ b/frontend/src/container/NewWidget/LeftContainer/QuerySection/QueryBuilder/queryBuilder/query.tsx @@ -68,6 +68,8 @@ function MetricsBuilder({ }); }, [metricName]); + // TODO: rewrite to Form component from antd + return ( void; + handleSetQueryBuilderData: () => void; +}; + +export const QueryBuilderContext = createContext({ + queryBuilderData: [ + { + queryData: '', + queryFormulas: '', + }, + ], + resetQueryBuilderData: () => {}, + handleSetQueryBuilderData: () => {}, +}); + +const initialQueryBuilderData: unknown[] = [ + { + queryData: '', + queryFormulas: '', + }, +]; + +export function QueryBuilderProvider({ + children, +}: PropsWithChildren): JSX.Element { + // ** TODO: get queryId from url for getting data for query builder + // ** TODO: type the params which will be used for request of the data for query builder + // eslint-disable-next-line @typescript-eslint/no-unused-vars + const params = useParams(); + + // ** TODO: create state for queryBuilder + // ** TODO: create state for queryFormulas + + // ** TODO: Find out the types of the queryBuilder state + // ** TODO: Check exist version of the functionality + const [queryBuilderData, setQueryBuilderData] = useState([ + { + queryData: '', + queryFormulas: '', + }, + ]); + + const resetQueryBuilderData = useCallback((): void => { + setQueryBuilderData(initialQueryBuilderData); + }, []); + + const handleSetQueryBuilderData = useCallback((): void => {}, []); + // ** TODO: Discuss with Palash how the state of the queryBuilder and queryFormulas + // ** TODO: should be filled from url + + // ** TODO: create set function for state + + // ** TODO: put these values and setter to the context value + + const contextValues: QueryBuilderContextType = useMemo( + () => ({ + queryBuilderData, + resetQueryBuilderData, + handleSetQueryBuilderData, + }), + [queryBuilderData, resetQueryBuilderData, handleSetQueryBuilderData], + ); + + return ( + + {children} + + ); +}