import { ChevronRight, Grid2X2, List, Maximize2, MoreHorizontal, } from "lucide-react" import { useTranslation } from "react-i18next" import { MainCardHeader } from "@/components/common/main-card-header" import { SearchInput } from "@/components/common/search-input" import { Button } from "@/components/ui/button" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { Slider } from "@/components/ui/slider" import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip" import { cn } from "@/lib/utils" import { albumStoreActions, useAlbumStore } from "@/store" import { AlbumViewMode } from "./utils" type AlbumHeaderProps = { activeBreadcrumb: string searchValue: string onSearchValueChange: (value: string) => void onSelectAll: () => void onOpenInspector: () => void isAllSelected: boolean hasFilteredImages: boolean hasSelection: boolean onPreview: () => void } export function AlbumHeader({ activeBreadcrumb, searchValue, onSearchValueChange, onSelectAll, onOpenInspector, isAllSelected, hasFilteredImages, hasSelection, onPreview, }: AlbumHeaderProps) { const { t } = useTranslation() const viewMode = useAlbumStore.use.viewMode() const masonryColumnCount = useAlbumStore.use.masonryColumnCount() const sliderValue = 11 - masonryColumnCount return ( {t("ALBUM")} {activeBreadcrumb} } trailingClassName="flex-1" trailing={ <> {viewMode === AlbumViewMode.Masonry ? (
{ const resolvedValue = Array.isArray(value) ? value[0] : value const nextValue = 11 - resolvedValue await albumStoreActions.setMasonryColumnCount(nextValue) }} />
) : null}
{t("ALBUM_MENU")} {isAllSelected ? t("ALBUM_CLEAR_SELECTION") : t("SELECT_ALL")} {t("ALBUM_OPEN_INSPECTOR")}
{t("ALBUM_PREVIEW")} {t("ALBUM_GRID_VIEW")} {t("ALBUM_LIST_VIEW")}
} /> ) }