Skip to content

Commit

Permalink
fix: copy paste in search event (#988)
Browse files Browse the repository at this point in the history
  • Loading branch information
XavierJp committed Apr 11, 2024
1 parent 1450eb0 commit 6f101f7
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 10 deletions.
4 changes: 2 additions & 2 deletions components/matomo-event/search-redirected.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from 'react';
import { Siren, Siret } from '#utils/helpers';
import MatomoEvent from '.';

const MatomoEventFromSearch: React.FC<{ sirenOrSiret: Siren | Siret }> = ({
const MatomoEventFromRedirected: React.FC<{ sirenOrSiret: Siren | Siret }> = ({
sirenOrSiret,
}) => (
<MatomoEvent
Expand All @@ -12,4 +12,4 @@ const MatomoEventFromSearch: React.FC<{ sirenOrSiret: Siren | Siret }> = ({
/>
);

export default MatomoEventFromSearch;
export default MatomoEventFromRedirected;
23 changes: 21 additions & 2 deletions middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,29 @@ export async function middleware(request: NextRequest) {
);
}

// https://github.com/vercel/next.js/issues/43704#issuecomment-1411186664
/**
* pathname for /app router RSC
*/

// https://github.com/vercel/next.js/issues/43704#issuecomment-1411186664
// Store current request url in a custom header, which you can read later
const requestHeaders = new Headers(request.headers);
requestHeaders.set('x-pathname', request.nextUrl.pathname);
requestHeaders.set('x-pathname', pathname);

/**
* siren redirection logging
*/
const nextUrl = request.nextUrl;
const paramIsPresent = nextUrl.search.indexOf('redirected=1') > -1;
if (paramIsPresent) {
// store redirection status in custom header as referrer seems missing from headers in RSC
// isRedirected = params is present + previous page is coming from site
const referer = requestHeaders.get('referer') || '';
const isFromSite = referer.indexOf('https://annuaire-entreprises') === 0;

const isRedirected = paramIsPresent && isFromSite ? '1' : '0';
requestHeaders.set('x-redirected', isRedirected);
}

const response = NextResponse.next({
request: {
Expand All @@ -44,6 +62,7 @@ export async function middleware(request: NextRequest) {
sessionOptions
);
await setVisitTimestamp(session);

return response;
}

Expand Down
4 changes: 2 additions & 2 deletions utils/server-side-helper/app/extract-params.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ const extractParamsAppRouter = ({
const slug = (params?.slug || '') as string;
searchParams = searchParams ?? {};
const headersList = headers();
const referer = headersList.get('referer') && '';
const userAgent = headersList.get('user-agent') || '';

const isRedirected = !!referer && !!searchParams.redirected;
// cf middleware
const isRedirected = headersList.get('x-redirected') === '1';

const pageParam = (searchParams.page || '') as string;
const page = parseIntWithDefaultValue(pageParam, 1);
Expand Down
4 changes: 0 additions & 4 deletions utils/server-side-helper/page/extract-params.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@ import isUserAgentABot from '#utils/user-agent';
const extractParamsPageRouter = (context: GetServerSidePropsContext) => {
const slug = (context?.params?.slug || '') as string;

const referer = context?.req?.headers?.referer;
const isRedirected = !!referer && !!context.query.redirected;

const pageParam = (context?.query?.page || '') as string;
const page = parseIntWithDefaultValue(pageParam, 1);

Expand All @@ -18,7 +15,6 @@ const extractParamsPageRouter = (context: GetServerSidePropsContext) => {

return {
slug,
isRedirected,
page,
isBot,
};
Expand Down

0 comments on commit 6f101f7

Please sign in to comment.