@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.
@@ -7151,13 +7151,41 @@ var Events = function Events(_ref) {
7151
7151
  }))))));
7152
7152
  };
7153
7153
 
7154
+ function buildRedirectUrl(url, asPath, query) {
7155
+ if (!url) return '';
7156
+ // Parse the base target URL
7157
+ var target = new URL(url, window.location.origin);
7158
+ // Merge existing params from the target
7159
+ var mergedParams = new URLSearchParams(target.search);
7160
+ // Add absolute source
7161
+ var absoluteSource = "" + window.location.origin + asPath;
7162
+ mergedParams.set('source', absoluteSource);
7163
+ // Forward utm_* params from the current page
7164
+ for (var _i = 0, _Object$entries = Object.entries(query); _i < _Object$entries.length; _i++) {
7165
+ var _Object$entries$_i = _Object$entries[_i],
7166
+ key = _Object$entries$_i[0],
7167
+ value = _Object$entries$_i[1];
7168
+ if (key.startsWith('utm_') && typeof value === 'string') {
7169
+ mergedParams.set(key, value);
7170
+ }
7171
+ }
7172
+ // Add timestamp
7173
+ mergedParams.set('ts', Date.now().toString());
7174
+ // Build final merged URL
7175
+ target.search = mergedParams.toString();
7176
+ return target.toString();
7177
+ }
7178
+
7154
7179
  var Redirect = function Redirect(_ref) {
7155
7180
  var slice = _ref.slice;
7156
7181
  var router = useRouter();
7157
7182
  useEffect(function () {
7158
- // When using `replace`, the current browser history entry will be replaced
7159
- router.replace(slice.url);
7160
- }, [slice.url]);
7183
+ if (!slice.url) return;
7184
+ // Build redirect URL
7185
+ var redirectUrl = buildRedirectUrl(slice.url, router.asPath, router.query);
7186
+ // Redirect
7187
+ router.replace(redirectUrl);
7188
+ }, [slice.url, router]);
7161
7189
  return React.createElement(React.Fragment, null);
7162
7190
  };
7163
7191