Skip to content

Commit 481dcbf

Browse files
committed
fix: trim institution names before sorting
1 parent f3d7190 commit 481dcbf

File tree

3 files changed

+20
-7
lines changed

3 files changed

+20
-7
lines changed

app/(admin)/admin/institutions/_lib/actions.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -219,7 +219,8 @@ export async function updateInstitutionByAdmin(
219219
updatePayload.category = normalizeInstitutionCategory(payload.category);
220220
}
221221
if (payload.name) {
222-
const newSlug = await generateUniqueSlug(payload.name, id);
222+
updatePayload.name = payload.name.trim();
223+
const newSlug = await generateUniqueSlug(updatePayload.name, id);
223224
updatePayload.slug = newSlug;
224225
}
225226

app/(user)/contribute/_lib/submit-institution.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,20 @@ export async function submitInstitution(
6969

7070
// --- Extract raw values
7171
const rawFromForm = {
72-
name: formData.get("name"),
72+
name:
73+
typeof formData.get("name") === "string"
74+
? formData.get("name")?.toString().trim()
75+
: formData.get("name"),
7376
category: formData.get("category"),
7477
state: formData.get("state"),
75-
city: formData.get("city"),
76-
address: formData.get("address"),
78+
city:
79+
typeof formData.get("city") === "string"
80+
? formData.get("city")?.toString().trim()
81+
: formData.get("city"),
82+
address:
83+
typeof formData.get("address") === "string"
84+
? formData.get("address")?.toString().trim()
85+
: formData.get("address"),
7786
contributorRemarks: formData.get("contributorRemarks"),
7887
sourceUrl: formData.get("sourceUrl"),
7988
contributorId: formData.get("contributorId"),

lib/queries/institutions.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
"use server";
22

3-
import { and, eq } from "drizzle-orm";
3+
import { and, asc, eq, sql } from "drizzle-orm";
44
import { unstable_cache } from "next/cache";
55
import { db } from "@/db";
66
import { institutions, users } from "@/db/schema";
77
import { normalizeInstitutionCategory } from "@/lib/institution-categories";
88
import { slugify } from "@/lib/utils";
99

10-
const INSTITUTIONS_CACHE_VERSION = "v2";
10+
const INSTITUTIONS_CACHE_VERSION = "v3";
1111

1212
const getInstitutionsInternal = unstable_cache(
1313
async () => {
@@ -42,7 +42,10 @@ const getInstitutionsInternal = unstable_cache(
4242
.from(institutions)
4343
.leftJoin(users, eq(institutions.contributorId, users.id))
4444
.where(eq(institutions.status, "approved"))
45-
.orderBy(institutions.name);
45+
.orderBy(
46+
asc(sql`lower(btrim(${institutions.name}))`),
47+
asc(institutions.id),
48+
);
4649

4750
return results.map((institution) => ({
4851
...institution,

0 commit comments

Comments
 (0)