queryStringToObject = query => {
if (!query) return {};
return query
.substring(1)
.split('&')
.reduce((result, item) => {
const [key, value] = item.split('=');
try {
return { ...result, [key]: JSON.parse(decodeURIComponent(value)) };
} catch (error) {
return { ...result, [key]: decodeURIComponent(value) };
}
}, {});
}