@treely/strapi-slices 7.16.2 → 7.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/strapi-slices.cjs.development.js +31 -3
- package/dist/strapi-slices.cjs.development.js.map +1 -1
- package/dist/strapi-slices.cjs.production.min.js +1 -1
- package/dist/strapi-slices.cjs.production.min.js.map +1 -1
- package/dist/strapi-slices.esm.js +31 -3
- package/dist/strapi-slices.esm.js.map +1 -1
- package/dist/utils/buildRedirectUrl.d.ts +3 -0
- package/package.json +1 -1
- package/src/slices/Redirect/Redirect.test.tsx +73 -0
- package/src/slices/Redirect/Redirect.tsx +14 -3
- package/src/utils/buildRedirectUrl.test.ts +102 -0
- package/src/utils/buildRedirectUrl.ts +34 -0
- package/src/slices/Redirect/Rediect.test.tsx +0 -30
|
@@ -7170,13 +7170,41 @@ var Events = function Events(_ref) {
|
|
|
7170
7170
|
}))))));
|
|
7171
7171
|
};
|
|
7172
7172
|
|
|
7173
|
+
function buildRedirectUrl(url, asPath, query) {
|
|
7174
|
+
if (!url) return '';
|
|
7175
|
+
// Parse the base target URL
|
|
7176
|
+
var target = new URL(url, window.location.origin);
|
|
7177
|
+
// Merge existing params from the target
|
|
7178
|
+
var mergedParams = new URLSearchParams(target.search);
|
|
7179
|
+
// Add absolute source
|
|
7180
|
+
var absoluteSource = "" + window.location.origin + asPath;
|
|
7181
|
+
mergedParams.set('source', absoluteSource);
|
|
7182
|
+
// Forward utm_* params from the current page
|
|
7183
|
+
for (var _i = 0, _Object$entries = Object.entries(query); _i < _Object$entries.length; _i++) {
|
|
7184
|
+
var _Object$entries$_i = _Object$entries[_i],
|
|
7185
|
+
key = _Object$entries$_i[0],
|
|
7186
|
+
value = _Object$entries$_i[1];
|
|
7187
|
+
if (key.startsWith('utm_') && typeof value === 'string') {
|
|
7188
|
+
mergedParams.set(key, value);
|
|
7189
|
+
}
|
|
7190
|
+
}
|
|
7191
|
+
// Add timestamp
|
|
7192
|
+
mergedParams.set('ts', Date.now().toString());
|
|
7193
|
+
// Build final merged URL
|
|
7194
|
+
target.search = mergedParams.toString();
|
|
7195
|
+
return target.toString();
|
|
7196
|
+
}
|
|
7197
|
+
|
|
7173
7198
|
var Redirect = function Redirect(_ref) {
|
|
7174
7199
|
var slice = _ref.slice;
|
|
7175
7200
|
var router$1 = router.useRouter();
|
|
7176
7201
|
React.useEffect(function () {
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7202
|
+
if (!slice.url) return;
|
|
7203
|
+
// Build redirect URL
|
|
7204
|
+
var redirectUrl = buildRedirectUrl(slice.url, router$1.asPath, router$1.query);
|
|
7205
|
+
// Redirect
|
|
7206
|
+
router$1.replace(redirectUrl);
|
|
7207
|
+
}, [slice.url, router$1]);
|
|
7180
7208
|
return React__default.default.createElement(React__default.default.Fragment, null);
|
|
7181
7209
|
};
|
|
7182
7210
|
|