Skip to content

Commit

Permalink
[state-router] Reuse base64 JSON encoding for params/payload
Browse files Browse the repository at this point in the history
  • Loading branch information
rexxars committed Nov 19, 2019
1 parent a3fd6b4 commit 9656938
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
Expand Up @@ -63,8 +63,8 @@ export default class RouterProvider extends React.Component<Props> {
}

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 {
Expand Down
4 changes: 2 additions & 2 deletions packages/@sanity/state-router/src/route.ts
Expand Up @@ -83,9 +83,9 @@ route.intents = function intents(base) {
}
},
[
route(':jsonParams', {
route(':payload', {
transform: {
jsonParams: {
payload: {
toState: decodeJsonParams,
toPath: encodeJsonParams
}
Expand Down
4 changes: 2 additions & 2 deletions packages/@sanity/state-router/src/utils/jsonParamsEncoding.ts
Expand Up @@ -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')
Expand All @@ -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))
}

0 comments on commit 9656938

Please sign in to comment.