diff --git a/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte b/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte index 884929845b..d2f1ba3b98 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer-nav-bar.svelte @@ -18,6 +18,7 @@ import ButtonContextMenu from '$lib/components/shared-components/context-menu/button-context-menu.svelte'; import MenuOption from '$lib/components/shared-components/context-menu/menu-option.svelte'; import { featureFlagsManager } from '$lib/managers/feature-flags-manager.svelte'; + import { languageManager } from '$lib/managers/language-manager.svelte'; import { Route } from '$lib/route'; import { getGlobalActions } from '$lib/services/app.service'; import { getAssetActions, handleReplaceAsset } from '$lib/services/asset.service'; @@ -36,6 +37,7 @@ import { ActionButton, CommandPaletteDefaultProvider, type ActionItem } from '@immich/ui'; import { mdiArrowLeft, + mdiArrowRight, mdiCompare, mdiDotsVertical, mdiImageSearch, @@ -84,7 +86,7 @@ const Close: ActionItem = $derived({ title: $t('go_back'), type: $t('assets'), - icon: mdiArrowLeft, + icon: languageManager.rtl ? mdiArrowRight : mdiArrowLeft, $if: () => !!onClose, onAction: () => onClose?.(), shortcuts: [{ key: 'Escape' }], diff --git a/web/src/lib/components/asset-viewer/editor/transform-tool/transform-tool.svelte b/web/src/lib/components/asset-viewer/editor/transform-tool/transform-tool.svelte index ed9f854bb9..a45cb5d998 100644 --- a/web/src/lib/components/asset-viewer/editor/transform-tool/transform-tool.svelte +++ b/web/src/lib/components/asset-viewer/editor/transform-tool/transform-tool.svelte @@ -134,7 +134,7 @@ > {/if} - {ratio.label} + {ratio.label} {/each} diff --git a/web/src/lib/components/asset-viewer/slideshow-bar.svelte b/web/src/lib/components/asset-viewer/slideshow-bar.svelte index 0063ca404e..21f99952c3 100644 --- a/web/src/lib/components/asset-viewer/slideshow-bar.svelte +++ b/web/src/lib/components/asset-viewer/slideshow-bar.svelte @@ -2,6 +2,7 @@ import { shortcuts, type ShortcutOptions } from '$lib/actions/shortcut'; import ProgressBar from '$lib/components/shared-components/progress-bar/progress-bar.svelte'; import { ProgressBarStatus } from '$lib/constants'; + import { languageManager } from '$lib/managers/language-manager.svelte'; import SlideshowSettingsModal from '$lib/modals/SlideshowSettingsModal.svelte'; import { SlideshowNavigation, slideshowStore } from '$lib/stores/slideshow.store'; import { AssetTypeEnum } from '@immich/sdk'; @@ -199,7 +200,7 @@ variant="ghost" shape="round" color="secondary" - icon={mdiChevronLeft} + icon={languageManager.rtl ? mdiChevronRight : mdiChevronLeft} onclick={onPrevious} aria-label={$t('previous')} /> @@ -207,7 +208,7 @@ variant="ghost" shape="round" color="secondary" - icon={mdiChevronRight} + icon={languageManager.rtl ? mdiChevronLeft : mdiChevronRight} onclick={onNext} aria-label={$t('next')} /> diff --git a/web/src/lib/components/timeline/AssetLayout.svelte b/web/src/lib/components/timeline/AssetLayout.svelte index 1d3300ca71..8b06d9b72b 100644 --- a/web/src/lib/components/timeline/AssetLayout.svelte +++ b/web/src/lib/components/timeline/AssetLayout.svelte @@ -47,7 +47,7 @@ data-asset-id={asset.id} class="absolute" style:top={position.top + 'px'} - style:left={position.left + 'px'} + style:inset-inline-start={position.left + 'px'} style:width={position.width + 'px'} style:height={position.height + 'px'} out:scale|global={{ start: 0.1, duration: scaleDuration }} diff --git a/web/src/lib/components/timeline/Month.svelte b/web/src/lib/components/timeline/Month.svelte index f7ffb58c43..8a93dae633 100644 --- a/web/src/lib/components/timeline/Month.svelte +++ b/web/src/lib/components/timeline/Month.svelte @@ -54,7 +54,6 @@ {#each filterIntersecting(monthGroup.dayGroups) as dayGroup, groupIndex (dayGroup.day)} - {@const absoluteWidth = dayGroup.left} {@const isDayGroupSelected = assetInteraction.selectedGroup.has(dayGroup.groupTitle)}
(hoveredDayGroup = dayGroup.groupTitle)} onmouseleave={() => (hoveredDayGroup = null)} > diff --git a/web/src/lib/components/timeline/Timeline.svelte b/web/src/lib/components/timeline/Timeline.svelte index 609b5fdc13..7c613fa247 100644 --- a/web/src/lib/components/timeline/Timeline.svelte +++ b/web/src/lib/components/timeline/Timeline.svelte @@ -620,7 +620,7 @@
this.viewerAssets.some((viewAsset) => viewAsset.intersecting)); #top: number = $state(0); - #left: number = $state(0); + #start: number = $state(0); #row = $state(0); #col = $state(0); #deferredLayout = false; @@ -41,12 +41,12 @@ export class DayGroup { this.#top = value; } - get left() { - return this.#left; + get start() { + return this.#start; } - set left(value: number) { - this.#left = value; + set start(value: number) { + this.#start = value; } get row() { diff --git a/web/src/lib/managers/timeline-manager/internal/layout-support.svelte.ts b/web/src/lib/managers/timeline-manager/internal/layout-support.svelte.ts index 71dc168971..232c67a6ba 100644 --- a/web/src/lib/managers/timeline-manager/internal/layout-support.svelte.ts +++ b/web/src/lib/managers/timeline-manager/internal/layout-support.svelte.ts @@ -39,7 +39,7 @@ export function layoutMonthGroup(timelineManager: TimelineManager, month: MonthG if (fitsInCurrentRow) { dayGroup.row = dayGroupRow; dayGroup.col = dayGroupCol++; - dayGroup.left = cumulativeWidth; + dayGroup.start = cumulativeWidth; dayGroup.top = cumulativeHeight; cumulativeWidth += dayGroup.width + timelineManager.gap; @@ -53,7 +53,7 @@ export function layoutMonthGroup(timelineManager: TimelineManager, month: MonthG // Position at start of new row dayGroup.row = dayGroupRow; dayGroup.col = dayGroupCol; - dayGroup.left = 0; + dayGroup.start = 0; dayGroup.top = cumulativeHeight; dayGroupCol++;