Browse Source

feat(web): added toggle for Sharing button in the sidebar (#4674)

* Added toggle for Sharing button in the sidebar

* fix: format

---------

Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
doggo 1 year ago
parent
commit
daad02504f

+ 19 - 17
web/src/lib/components/shared-components/side-bar/side-bar.svelte

@@ -77,23 +77,25 @@
       <SideBarButton title="People" icon={mdiAccount} isSelected={$page.route.id === '/(user)/people'} />
     </a>
   {/if}
-  <a data-sveltekit-preload-data="hover" href={AppRoute.SHARING} draggable="false">
-    <SideBarButton
-      title="Sharing"
-      icon={isSharingSelected ? mdiAccountMultiple : mdiAccountMultipleOutline}
-      isSelected={isSharingSelected}
-    >
-      <svelte:fragment slot="moreInformation">
-        {#await getAlbumCount()}
-          <LoadingSpinner />
-        {:then data}
-          <div>
-            <p>{data.shared.toLocaleString($locale)} Albums</p>
-          </div>
-        {/await}
-      </svelte:fragment>
-    </SideBarButton>
-  </a>
+  {#if $sidebarSettings.sharing}
+    <a data-sveltekit-preload-data="hover" href={AppRoute.SHARING} draggable="false">
+      <SideBarButton
+        title="Sharing"
+        icon={isSharingSelected ? mdiAccountMultiple : mdiAccountMultipleOutline}
+        isSelected={isSharingSelected}
+      >
+        <svelte:fragment slot="moreInformation">
+          {#await getAlbumCount()}
+            <LoadingSpinner />
+          {:then data}
+            <div>
+              <p>{data.shared.toLocaleString($locale)} Albums</p>
+            </div>
+          {/await}
+        </svelte:fragment>
+      </SideBarButton>
+    </a>
+  {/if}
 
   <div class="text-xs transition-all duration-200 dark:text-immich-dark-fg">
     <p class="hidden p-6 group-hover:sm:block md:block">LIBRARY</p>

+ 3 - 0
web/src/lib/components/user-settings-page/sidebar-settings.svelte

@@ -10,6 +10,9 @@
       <div class="ml-4">
         <SettingSwitch title="People" subtitle="Display a link to People" bind:checked={$sidebarSettings.people} />
       </div>
+      <div class="ml-4">
+        <SettingSwitch title="Sharing" subtitle="Display a link to Sharing" bind:checked={$sidebarSettings.sharing} />
+      </div>
     </div>
   </div>
 </section>

+ 2 - 0
web/src/lib/stores/preferences.store.ts

@@ -49,10 +49,12 @@ export interface AlbumViewSettings {
 
 export interface SidebarSettings {
   people: boolean;
+  sharing: boolean;
 }
 
 export const sidebarSettings = persisted<SidebarSettings>('sidebar-settings', {
   people: false,
+  sharing: true,
 });
 
 export enum AlbumViewMode {