diff --git a/web/src/lib/utils/places-utils.ts b/web/src/lib/utils/places-utils.ts
index b100d004d0..08ba2588a8 100644
--- a/web/src/lib/utils/places-utils.ts
+++ b/web/src/lib/utils/places-utils.ts
@@ -13,38 +13,6 @@ export interface PlacesGroup {
places: AssetResponseDto[];
}
-export interface PlacesGroupOptionMetadata {
- id: PlacesGroupBy;
- isDisabled: () => boolean;
-}
-
-export const groupOptionsMetadata: PlacesGroupOptionMetadata[] = [
- {
- id: PlacesGroupBy.None,
- isDisabled: () => false,
- },
- {
- id: PlacesGroupBy.Country,
- isDisabled: () => false,
- },
-];
-
-export const findGroupOptionMetadata = (groupBy: string) => {
- // Default is no grouping
- const defaultGroupOption = groupOptionsMetadata[0];
- return groupOptionsMetadata.find(({ id }) => groupBy === id) ?? defaultGroupOption;
-};
-
-export const getSelectedPlacesGroupOption = (settings: PlacesViewSettings) => {
- const defaultGroupOption = PlacesGroupBy.None;
- const albumGroupOption = settings.groupBy ?? defaultGroupOption;
-
- if (findGroupOptionMetadata(albumGroupOption).isDisabled()) {
- return defaultGroupOption;
- }
- return albumGroupOption;
-};
-
/**
* ----------------------------
* Places Groups Collapse/Expand
diff --git a/web/src/routes/(user)/places/PlacesControls.svelte b/web/src/routes/(user)/places/PlacesControls.svelte
index ae1308fdd3..f3fa38cb28 100644
--- a/web/src/routes/(user)/places/PlacesControls.svelte
+++ b/web/src/routes/(user)/places/PlacesControls.svelte
@@ -1,24 +1,11 @@
-
-
- ({
- title: placesGroupByNames[id],
- icon: groupIcon,
- disabled: isDisabled(),
- })}
-/>
+
+
+
-{#if getSelectedPlacesGroupOption($placesViewSettings) !== PlacesGroupBy.None}
-
+{#if $placesViewSettings.groupBy !== PlacesGroupBy.None}
+
expandAllPlacesGroups()}
variant="ghost"
color="secondary"
@@ -81,7 +46,6 @@
collapseAllPlacesGroups(placesGroups)}
variant="ghost"
color="secondary"
diff --git a/web/src/routes/(user)/places/PlacesList.svelte b/web/src/routes/(user)/places/PlacesList.svelte
index 725786bdc5..e815c1c236 100644
--- a/web/src/routes/(user)/places/PlacesList.svelte
+++ b/web/src/routes/(user)/places/PlacesList.svelte
@@ -6,7 +6,7 @@
import { groupBy } from 'lodash-es';
import PlacesCardGroup from './PlacesCardGroup.svelte';
- import { type PlacesGroup, getSelectedPlacesGroupOption } from '$lib/utils/places-utils';
+ import { type PlacesGroup } from '$lib/utils/places-utils';
import { Icon } from '@immich/ui';
import { t } from 'svelte-i18n';
@@ -78,9 +78,8 @@
: places;
});
- const placesGroupOption: string = $derived(getSelectedPlacesGroupOption(userSettings));
- const groupingFunction = $derived(groupOptions[placesGroupOption] ?? groupOptions[PlacesGroupBy.None]);
- const groupedPlaces: PlacesGroup[] = $derived(groupingFunction(filteredPlaces));
+ const groupingFunction = $derived(groupOptions[userSettings.groupBy] ?? groupOptions[PlacesGroupBy.None]);
+ const groupedPlaces = $derived(groupingFunction(filteredPlaces));
$effect(() => {
searchResultCount = filteredPlaces.length;
@@ -93,7 +92,7 @@
{#if places.length > 0}
- {#if placesGroupOption === PlacesGroupBy.None}
+ {#if userSettings.groupBy === PlacesGroupBy.None}
{:else}
{#each groupedPlaces as placeGroup (placeGroup.id)}