feat: trim for aplhabet sort
This commit is contained in:
@@ -74,7 +74,7 @@ export const ArticleListPage = observer(() => {
|
||||
];
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return articleList[language].data
|
||||
.filter((article) => !query || (article.heading ?? "").toLowerCase().includes(query))
|
||||
.map((article) => ({
|
||||
|
||||
@@ -121,7 +121,7 @@ export const CarrierListPage = observer(() => {
|
||||
const canWriteCarriers = authStore.canWrite("carriers");
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return (carriers[language].data ?? [])
|
||||
.filter((carrier) => !allowedCityIds || allowedCityIds.includes(carrier.city_id))
|
||||
.filter(
|
||||
|
||||
@@ -59,7 +59,7 @@ export const CityListPage = observer(() => {
|
||||
}, [cities, countryStore.countries, language, isLoading]);
|
||||
|
||||
const filteredRows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
if (!query) return rows;
|
||||
return rows.filter((row) => {
|
||||
const cityName = (row.name ?? "").toLowerCase();
|
||||
|
||||
@@ -74,7 +74,7 @@ export const CountryListPage = observer(() => {
|
||||
];
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return (countries[language]?.data ?? [])
|
||||
.filter((country) => !query || (country.name ?? "").toLowerCase().includes(query))
|
||||
.map((country) => ({
|
||||
|
||||
@@ -244,9 +244,9 @@ class MapStore {
|
||||
const sorted = [...features];
|
||||
switch (sortType) {
|
||||
case "name_asc":
|
||||
return sorted.sort((a, b) => a.name.localeCompare(b.name));
|
||||
return sorted.sort((a, b) => a.name.trim().localeCompare(b.name.trim()));
|
||||
case "name_desc":
|
||||
return sorted.sort((a, b) => b.name.localeCompare(a.name));
|
||||
return sorted.sort((a, b) => b.name.trim().localeCompare(a.name.trim()));
|
||||
case "created_asc":
|
||||
return sorted.sort((a, b) => {
|
||||
if (
|
||||
@@ -379,7 +379,7 @@ class MapStore {
|
||||
}));
|
||||
|
||||
this.routes = this.routes.sort((a, b) =>
|
||||
a.route_number.localeCompare(b.route_number),
|
||||
a.route_number.trim().localeCompare(b.route_number.trim()),
|
||||
);
|
||||
|
||||
await this.preloadRouteStations(routesIds);
|
||||
@@ -2545,14 +2545,14 @@ const MapSightbar: React.FC<MapSightbarProps> = observer(
|
||||
switch (sortType) {
|
||||
case "name_asc":
|
||||
return sorted.sort((a, b) =>
|
||||
((a.get("name") as string) || "").localeCompare(
|
||||
(b.get("name") as string) || "",
|
||||
((a.get("name") as string) || "").trim().localeCompare(
|
||||
((b.get("name") as string) || "").trim(),
|
||||
),
|
||||
);
|
||||
case "name_desc":
|
||||
return sorted.sort((a, b) =>
|
||||
((b.get("name") as string) || "").localeCompare(
|
||||
(a.get("name") as string) || "",
|
||||
((b.get("name") as string) || "").trim().localeCompare(
|
||||
((a.get("name") as string) || "").trim(),
|
||||
),
|
||||
);
|
||||
case "created_asc":
|
||||
|
||||
@@ -69,7 +69,7 @@ class MapStore {
|
||||
path: route.path,
|
||||
}));
|
||||
this.routes = mappedRoutes.sort((a, b) =>
|
||||
a.route_number.localeCompare(b.route_number)
|
||||
a.route_number.trim().localeCompare(b.route_number.trim())
|
||||
);
|
||||
};
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ export const MediaListPage = observer(() => {
|
||||
];
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return media
|
||||
.filter((item) => !query || (item.media_name ?? "").toLowerCase().includes(query))
|
||||
.map((item) => ({
|
||||
|
||||
@@ -267,9 +267,9 @@ export const RouteCreatePage = observer(() => {
|
||||
language as keyof typeof carrierStore.carriers
|
||||
].data?.find((c: any) => c.id === carrier_id)?.full_name || "",
|
||||
carrier_id,
|
||||
route_number: routeNumber,
|
||||
route_sys_number: govRouteNumber,
|
||||
route_name: routeName,
|
||||
route_number: routeNumber.trim(),
|
||||
route_sys_number: govRouteNumber.trim(),
|
||||
route_name: routeName.trim(),
|
||||
route_direction,
|
||||
scale_min: scale_min !== null ? scale_min : 0,
|
||||
scale_max: scale_max !== null ? scale_max : 0,
|
||||
|
||||
@@ -149,7 +149,7 @@ export const RouteListPage = observer(() => {
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const { selectedCityId } = selectedCityStore;
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
let filtered = routes.data;
|
||||
if (selectedCityId) {
|
||||
const cityCarrierIds = new Set(
|
||||
|
||||
@@ -122,7 +122,7 @@ export const SightListPage = observer(() => {
|
||||
});
|
||||
}, [sights, selectedCityStore.selectedCityId, canReadCities, authStore.meCities]);
|
||||
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
const rows = filteredSights
|
||||
.filter((sight: any) => !query || (sight.name ?? "").toLowerCase().includes(query))
|
||||
.map((sight) => ({
|
||||
|
||||
@@ -91,7 +91,7 @@ export const SnapshotListPage = observer(() => {
|
||||
];
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return snapshots
|
||||
.filter(
|
||||
(snapshot) =>
|
||||
|
||||
@@ -125,7 +125,7 @@ export const StationListPage = observer(() => {
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const { selectedCityId } = selectedCityStore;
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return stationLists[language].data
|
||||
.filter((station: any) => !selectedCityId || station.city_id === selectedCityId)
|
||||
.filter(
|
||||
|
||||
@@ -109,7 +109,7 @@ export const UserListPage = observer(() => {
|
||||
];
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return (users.data ?? [])
|
||||
.filter((user) =>
|
||||
!query ||
|
||||
|
||||
@@ -138,7 +138,7 @@ export const VehicleListPage = observer(() => {
|
||||
];
|
||||
|
||||
const rows = useMemo(() => {
|
||||
const query = searchQuery.toLowerCase();
|
||||
const query = searchQuery.trim().toLowerCase();
|
||||
return (vehicles.data ?? [])
|
||||
.filter(
|
||||
(vehicle) =>
|
||||
|
||||
Reference in New Issue
Block a user