diff --git a/packages/@sanity/state-router/src/components/RouterProvider.tsx b/packages/@sanity/state-router/src/components/RouterProvider.tsx index 9dbedcac09a..b66ef7c22c5 100644 --- a/packages/@sanity/state-router/src/components/RouterProvider.tsx +++ b/packages/@sanity/state-router/src/components/RouterProvider.tsx @@ -63,8 +63,8 @@ export default class RouterProvider extends React.Component { } resolveIntentLink = (intentName: string, parameters?: IntentParameters): string => { - const [params, jsonParams] = Array.isArray(parameters) ? parameters : [parameters] - return this.props.router.encode({intent: intentName, params, jsonParams}) + const [params, payload] = Array.isArray(parameters) ? parameters : [parameters] + return this.props.router.encode({intent: intentName, params, payload}) } getChildContext(): RouterProviderContext { diff --git a/packages/@sanity/state-router/src/route.ts b/packages/@sanity/state-router/src/route.ts index 176a937cf5f..0359b4a78c0 100644 --- a/packages/@sanity/state-router/src/route.ts +++ b/packages/@sanity/state-router/src/route.ts @@ -83,9 +83,9 @@ route.intents = function intents(base) { } }, [ - route(':jsonParams', { + route(':payload', { transform: { - jsonParams: { + payload: { toState: decodeJsonParams, toPath: encodeJsonParams } diff --git a/packages/@sanity/state-router/src/utils/jsonParamsEncoding.ts b/packages/@sanity/state-router/src/utils/jsonParamsEncoding.ts index d52a90eb534..f0b8f610ec8 100644 --- a/packages/@sanity/state-router/src/utils/jsonParamsEncoding.ts +++ b/packages/@sanity/state-router/src/utils/jsonParamsEncoding.ts @@ -5,7 +5,7 @@ export function decodeJsonParams(pathsegment = '') { } try { - return JSON.parse(segment) + return JSON.parse(atob(segment)) } catch (err) { // eslint-disable-next-line no-console console.warn('Failed to parse JSON parameters') @@ -15,5 +15,5 @@ export function decodeJsonParams(pathsegment = '') { } export function encodeJsonParams(params) { - return JSON.stringify(params) + return params === null || typeof params === 'undefined' ? '' : btoa(JSON.stringify(params)) }