import { memo, useCallback } from "react"
import { useBrowserState } from "@/features/browser/services/browser-state-provider"
import { BrowserLoadingIndicator } from "./browser-loading-indicator"
import { BrowserToolbarWrapper } from "./browser-toolbar-wrapper"
import { LazyTabContent } from "./lazy-tab-content"
// Контейнер для контента вкладки
const TabContentContainer = memo(({ activeTab }: { activeTab: string }) => {
const contentClassName = "bg-background m-0 flex-1 overflow-auto"
return (
)
})
TabContentContainer.displayName = "TabContentContainer"
/**
* Новая версия BrowserContent с использованием UniversalList и адаптеров
* Поддерживает все типы контента через единую архитектуру
*/
export const BrowserContent = memo(() => {
// Получаем состояние браузера
const {
activeTab,
currentTabSettings,
setSearchQuery,
toggleFavorites,
setSort,
setGroupBy,
setFilter,
setViewMode,
setPreviewSize,
} = useBrowserState()
// Извлекаем настройки для текущей вкладки
const { searchQuery, showFavoritesOnly, viewMode, sortBy, filterType, groupBy, sortOrder, previewSizeIndex } =
currentTabSettings
// Используем useCallback для стабильных ссылок на функции
const handleSearch = useCallback((query: string) => setSearchQuery(query), [setSearchQuery])
const handleSort = useCallback((sortBy: string, sortOrder: "asc" | "desc") => setSort(sortBy, sortOrder), [setSort])
const handleFilter = useCallback((filterType: string) => setFilter(filterType), [setFilter])
const handleViewModeChange = useCallback(
(mode: "list" | "grid" | "thumbnails") => setViewMode(mode as any),
[setViewMode],
)
const handleGroupBy = useCallback((groupBy: string) => setGroupBy(groupBy), [setGroupBy])
const handleToggleFavorites = useCallback(() => toggleFavorites(), [toggleFavorites])
const handleZoomIn = useCallback(() => {
setPreviewSize(previewSizeIndex + 1)
}, [previewSizeIndex, setPreviewSize])
const handleZoomOut = useCallback(() => {
setPreviewSize(previewSizeIndex - 1)
}, [previewSizeIndex, setPreviewSize])
return (
<>
{/* Индикатор загрузки ресурсов */}
{/* Общий тулбар для всех вкладок */}
{/* Контент только для активной вкладки */}
>
)
})
BrowserContent.displayName = "BrowserContent"