Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

Commit

Permalink
Move search page to app router
Browse files Browse the repository at this point in the history
  • Loading branch information
acouch committed May 22, 2024
1 parent 395baed commit 1e261e3
Show file tree
Hide file tree
Showing 9 changed files with 28 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@

import SearchPagination, {
PaginationPosition,
} from "../../components/search/SearchPagination";
} from "../../../components/search/SearchPagination";

import { AgencyNamyLookup } from "src/utils/search/generateAgencyNameLookup";
import { QueryParamData } from "../../services/search/searchfetcher/SearchFetcher";
import { SearchAPIResponse } from "../../types/search/searchResponseTypes";
import SearchBar from "../../components/search/SearchBar";
import { QueryParamData } from "../../../services/search/searchfetcher/SearchFetcher";
import { SearchAPIResponse } from "../../../types/search/searchResponseTypes";
import SearchBar from "../../../components/search/SearchBar";
import SearchFilterAgency from "src/components/search/SearchFilterAgency";
import SearchFilterCategory from "../../components/search/SearchFilterCategory";
import SearchFilterEligibility from "../../components/search/SearchFilterEligibility";
import SearchFilterFundingInstrument from "../../components/search/SearchFilterFundingInstrument";
import SearchOpportunityStatus from "../../components/search/SearchOpportunityStatus";
import SearchResultsHeader from "../../components/search/SearchResultsHeader";
import SearchResultsList from "../../components/search/SearchResultsList";
import { useSearchFormState } from "../../hooks/useSearchFormState";
import SearchFilterCategory from "../../../components/search/SearchFilterCategory";
import SearchFilterEligibility from "../../../components/search/SearchFilterEligibility";
import SearchFilterFundingInstrument from "../../../components/search/SearchFilterFundingInstrument";
import SearchOpportunityStatus from "../../../components/search/SearchOpportunityStatus";
import SearchResultsHeader from "../../../components/search/SearchResultsHeader";
import SearchResultsList from "../../../components/search/SearchResultsList";
import { useSearchFormState } from "../../../hooks/useSearchFormState";

interface SearchFormProps {
initialSearchResults: SearchAPIResponse;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// All exports in this file are server actions
"use server";

import { FormDataService } from "../../services/search/FormDataService";
import { SearchAPIResponse } from "../../types/search/searchResponseTypes";
import { getSearchFetcher } from "../../services/search/searchfetcher/SearchFetcherUtil";
import { FormDataService } from "../../../services/search/FormDataService";
import { SearchAPIResponse } from "../../../types/search/searchResponseTypes";
import { getSearchFetcher } from "../../../services/search/searchfetcher/SearchFetcherUtil";

// Gets MockSearchFetcher or APISearchFetcher based on environment variable
const searchFetcher = getSearchFetcher();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import {
import PageSEO from "src/components/PageSEO";
import { QueryParamData } from "src/services/search/searchfetcher/SearchFetcher";
import SearchCallToAction from "src/components/search/SearchCallToAction";
import { SearchForm } from "src/app/search/SearchForm";
import { SearchForm } from "src/app/[locale]/search/SearchForm";
import { useEffect } from "react";

interface ErrorProps {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import React from "react";
import Spinner from "../../components/Spinner";
import Spinner from "../../../components/Spinner";

export default function Loading() {
// TODO (Issue #1937): Use translation utility for strings in this file
Expand Down
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import {
ServerSideRouteParams,
ServerSideSearchParams,
} from "../../types/searchRequestURLTypes";
} from "../../../types/searchRequestURLTypes";

import BetaAlert from "../../components/AppBetaAlert";
import BetaAlert from "src/components/BetaAlert";
import { Metadata } from "next";
import React from "react";
import SearchCallToAction from "../../components/search/SearchCallToAction";
import SearchCallToAction from "../../../components/search/SearchCallToAction";
import { SearchForm } from "./SearchForm";
import { convertSearchParamsToProperTypes } from "../../utils/search/convertSearchParamsToProperTypes";
import { convertSearchParamsToProperTypes } from "../../../utils/search/convertSearchParamsToProperTypes";
import { generateAgencyNameLookup } from "src/utils/search/generateAgencyNameLookup";
import { getSearchFetcher } from "../../services/search/searchfetcher/SearchFetcherUtil";
import { getSearchFetcher } from "../../../services/search/searchfetcher/SearchFetcherUtil";
import { getTranslations } from "next-intl/server";
import withFeatureFlag from "../../hoc/search/withFeatureFlag";
import withFeatureFlag from "../../../hoc/search/withFeatureFlag";

const searchFetcher = getSearchFetcher();

Expand All @@ -25,10 +25,11 @@ export async function generateMetadata() {
const t = await getTranslations({ locale: "en" });
const meta: Metadata = {
title: t("Search.title"),
description: t("Index.meta_description"),
};

return meta;
}

async function Search({ searchParams }: ServerPageProps) {
const convertedSearchParams = convertSearchParamsToProperTypes(searchParams);
const initialSearchResults = await searchFetcher.fetchOpportunities(
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/components/search/SearchResultsList.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
"use client";

import { AgencyNamyLookup } from "src/utils/search/generateAgencyNameLookup";
import Loading from "../../app/search/loading";
import Loading from "../../app/[locale]/search/loading";
import SearchErrorAlert from "src/components/search/error/SearchErrorAlert";
import { SearchResponseData } from "../../types/search/searchResponseTypes";
import SearchResultsListItem from "./SearchResultsListItem";
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/hooks/useSearchFormState.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { useRef, useState } from "react";

import { QueryParamData } from "../services/search/searchfetcher/SearchFetcher";
import { SearchAPIResponse } from "../types/search/searchResponseTypes";
import { updateResults } from "../app/search/actions";
import { updateResults } from "../app/[locale]/search/actions";
import { useFormState } from "react-dom";
import { useSearchParamUpdater } from "./useSearchParamUpdater";

Expand Down
2 changes: 1 addition & 1 deletion frontend/stories/pages/search.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Meta } from "@storybook/react";
import Search from "../../src/app/search/page";
import Search from "../../src/app/[locale]/search/page";

const meta: Meta<typeof Search> = {
title: "Pages/Search",
Expand Down
1 change: 1 addition & 0 deletions frontend/tests/e2e/search/search.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ test.describe("Search page tests", () => {

expectURLContainsQueryParam(page, "query", searchTerm);

// eslint-disable-next-line testing-library/prefer-screen-queries
const resultsHeading = page.getByRole("heading", {
name: /0 Opportunities/i,
});
Expand Down

0 comments on commit 1e261e3

Please sign in to comment.