diff --git a/app/components/search/SearchResults/SearchResults.tsx b/app/components/search/SearchResults/SearchResults.tsx
index 3bbaa74ab..5df1a13d3 100644
--- a/app/components/search/SearchResults/SearchResults.tsx
+++ b/app/components/search/SearchResults/SearchResults.tsx
@@ -6,6 +6,7 @@ import {
SearchResults as SearchResultsProps,
} from "react-instantsearch/connectors";
import { whiteLabel } from "utils";
+import { CATEGORIES } from "pages/ServiceDiscoveryForm/constants";
import { SearchMap } from "components/search/SearchMap/SearchMap";
import ResultsPagination from "components/search/Pagination/ResultsPagination";
import { Texting } from "components/Texting";
@@ -44,7 +45,12 @@ const SearchResults = ({
if (!searchResults) return null;
- const hits = transformHits(searchResults.hits as unknown as SearchHit[]);
+ const category = CATEGORIES.find((c) => c.id === categoryId);
+ const alphabetizeResults = category && category.alphabetizeResults;
+ const hits = transformHits(
+ searchResults.hits as unknown as SearchHit[],
+ alphabetizeResults
+ );
return (
@@ -93,6 +99,7 @@ const SearchResult = ({
const [textingIsOpen, setTextingIsOpen] = useState(false);
const [clinicianActionsIsOpen, setClinicianActionsIsOpen] = useState(false);
const [handoutModalIsOpen, setHandoutModalIsOpen] = useState(false);
+
type HandoutLanguage = "es" | "tl" | "zh-TW" | "vi" | "ru" | "ar";
const handoutUrl = (hitId: number, language: HandoutLanguage | null) => {
const handoutRoute =
diff --git a/app/components/ucsf/RefinementLists/SubcategoryRefinements.tsx b/app/components/ucsf/RefinementLists/SubcategoryRefinements.tsx
index 1403d6d63..7c9af7bb9 100644
--- a/app/components/ucsf/RefinementLists/SubcategoryRefinements.tsx
+++ b/app/components/ucsf/RefinementLists/SubcategoryRefinements.tsx
@@ -28,6 +28,8 @@ export const SubcategoryRefinements = ({
selectedSubcategories: SelectedSubcategories;
setSelectedSubcategories: (categories: SelectedSubcategories) => void;
}) => {
+ if (subcategories.length === 0) return null;
+
// Add generic "See All" element to subcategory array if it is not there yet
if (!subcategories[0] || subcategories[0].id !== seeAllPseudoId) {
subcategories.unshift({ id: seeAllPseudoId, name: "See All" });
diff --git a/app/models/SearchHits.ts b/app/models/SearchHits.ts
index 8d82a44ae..d6b685abd 100644
--- a/app/models/SearchHits.ts
+++ b/app/models/SearchHits.ts
@@ -37,8 +37,11 @@ export type SearchHit = ServiceHit | OrganizationHit;
* Transform Algolia search hits such that each hit has a recurringSchedule that
* uses the time helper classes.
*/
-export const transformHits = (hits: SearchHit[]) =>
- hits.flatMap((hit) => {
+export const transformHits = (
+ hits: SearchHit[],
+ sortAlphabetically: boolean = false
+) => {
+ const hitsWithSchedule = hits.flatMap((hit) => {
switch (hit.type) {
case "resource":
return {
@@ -62,3 +65,8 @@ export const transformHits = (hits: SearchHit[]) =>
return [];
}
});
+
+ return sortAlphabetically
+ ? hitsWithSchedule.sort((a, b) => (a.name < b.name ? -1 : 1))
+ : hitsWithSchedule;
+};
diff --git a/app/pages/ServiceDiscoveryForm/constants.ts b/app/pages/ServiceDiscoveryForm/constants.ts
index 18e73ec9b..841cd9545 100644
--- a/app/pages/ServiceDiscoveryForm/constants.ts
+++ b/app/pages/ServiceDiscoveryForm/constants.ts
@@ -7,6 +7,7 @@ export type Step =
export interface ServiceCategory {
algoliaCategoryName: string;
+ alphabetizeResults?: boolean;
disableGeoLocation?: boolean;
id: string;
name: string;
@@ -165,6 +166,7 @@ export const CATEGORIES: Readonly = [
},
{
algoliaCategoryName: "Ucsf-intimatepartnerviolence",
+ alphabetizeResults: true,
disableGeoLocation: true,
id: "2000006",
name: "Intimate Partner Violence Resources",
diff --git a/app/pages/UcsfDiscoveryForm/UcsfDiscoveryForm.tsx b/app/pages/UcsfDiscoveryForm/UcsfDiscoveryForm.tsx
index 9f68a5f28..5a1397c43 100644
--- a/app/pages/UcsfDiscoveryForm/UcsfDiscoveryForm.tsx
+++ b/app/pages/UcsfDiscoveryForm/UcsfDiscoveryForm.tsx
@@ -149,6 +149,8 @@ const Page = () => {
let nextButtonText = "Next: ";
if (nextStepName === "subcategories") {
nextButtonText += "Service Type";
+ } else if (nextStepName === "eligibilities") {
+ nextButtonText += "Patient Identity";
} else if (nextStepName === "results") {
nextButtonText += "Show Results";
}