diff --git a/components/form/field.tsx b/components/form/field.tsx index 44863c4..14d562b 100644 --- a/components/form/field.tsx +++ b/components/form/field.tsx @@ -1,11 +1,11 @@ import { Form, message } from 'antd' import { useForm } from 'antd/lib/form/Form' -import { useRouter } from 'next/router' import React from 'react' import { FormDesignFragment, FormFieldFragment } from '../../graphql/fragment/form.fragment' import { StyledButton } from '../styled/button' import { StyledH1 } from '../styled/h1' import { StyledMarkdown } from '../styled/markdown' +import { useRouter } from '../use.router' import { fieldTypes } from './types' import { TextType } from './types/text.type' import { FieldTypeProps } from './types/type.props' diff --git a/components/use.router.ts b/components/use.router.ts new file mode 100644 index 0000000..18beb4e --- /dev/null +++ b/components/use.router.ts @@ -0,0 +1,19 @@ +import React from 'react'; +import {useRouter as useNextRouter} from 'next/router'; + + +function parseQuery(path) { + const query = {}; + const regex = /[?&]([^&$=]+)(=([^&$]+))?/g; + let param; + while ((param = regex.exec(path)) !== null) { + query[decodeURIComponent(param[1])] = decodeURIComponent(param[3]); + } + return query; +} + +export function useRouter() { + const router = useNextRouter(); + router.query = {...router.query, ...parseQuery(router.asPath)}; + return router; +}