@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.
@@ -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
- // When using `replace`, the current browser history entry will be replaced
7178
- router$1.replace(slice.url);
7179
- }, [slice.url]);
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