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
grafixeyehero f8cb8721d1 apply suggestion
Co-authored-by: Bill Thornton <thornbill@users.noreply.github.com>
2024-07-15 20:16:19 +03:00

62 lines
1.7 KiB
TypeScript

import React, { type FC } from 'react';
import {
Link,
URLSearchParamsInit,
createSearchParams,
useLocation,
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;
}
const SearchButton: FC<SearchButtonProps> = ({ isTabsAvailable }) => {
const location = useLocation();
const [searchParams] = useSearchParams();
const isSearchPath = location.pathname === '/search.html';
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;