1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00
jellyfin-web/src/apps/experimental/components/AppToolbar/SearchButton.tsx

63 lines
1.6 KiB
TypeScript
Raw Normal View History

2024-05-21 00:19:28 +03:00
import React, { type FC } from 'react';
import {
Link,
URLSearchParamsInit,
createSearchParams,
useSearchParams
} from 'react-router-dom';
import SearchIcon from '@mui/icons-material/Search';
import IconButton from '@mui/material/IconButton';
import Tooltip from '@mui/material/Tooltip';
import globalize from 'scripts/globalize';
const getUrlParams = (searchParams: URLSearchParams) => {
const parentId = searchParams.get('parentId') || searchParams.get('topParentId');
const collectionType = searchParams.get('collectionType');
const params: URLSearchParamsInit = {};
if (parentId) {
params.parentId = parentId;
}
if (collectionType) {
params.collectionType = collectionType;
}
return params;
};
interface SearchButtonProps {
isTabsAvailable: boolean;
isSearchPath: boolean;
}
const SearchButton: FC<SearchButtonProps> = ({
isTabsAvailable,
isSearchPath
}) => {
const [searchParams] = useSearchParams();
const createSearchLink = isTabsAvailable ?
{
pathname: '/search.html',
search: `?${createSearchParams(getUrlParams(searchParams))}`
} :
'/search.html';
return (
<Tooltip title={globalize.translate('Search')}>
<IconButton
size='large'
aria-label={globalize.translate('Search')}
color='inherit'
component={Link}
disabled={isSearchPath}
to={createSearchLink}
>
<SearchIcon />
</IconButton>
</Tooltip>
);
};
export default SearchButton;