1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

apply suggestion

This commit is contained in:
grafixeyehero 2022-10-27 00:59:46 +03:00
parent 7805e86f70
commit d7e48d30b6
21 changed files with 172 additions and 140 deletions

View file

@ -1,54 +0,0 @@
import React, { FC, useCallback, useEffect, useRef } from 'react';
import IconButtonElement from '../../elements/IconButtonElement';
import { ViewSettingsI } from './interface';
interface SortProps {
getSortMenuOptions: () => {
name: string;
value: string;
}[];
viewSettings: ViewSettingsI
setViewSettings: React.Dispatch<React.SetStateAction<ViewSettingsI>>;
}
const Sort: FC<SortProps> = ({
getSortMenuOptions,
viewSettings,
setViewSettings
}) => {
const element = useRef<HTMLDivElement>(null);
const showSortMenu = useCallback(() => {
import('../../components/sortmenu/sortmenu').then(({default: SortMenu}) => {
const sortMenu = new SortMenu();
sortMenu.show({
settings: viewSettings,
sortOptions: getSortMenuOptions(),
setSortValues: setViewSettings
});
});
}, [getSortMenuOptions, viewSettings, setViewSettings]);
useEffect(() => {
const btnSort = element.current?.querySelector('.btnSort');
btnSort?.addEventListener('click', showSortMenu);
return () => {
btnSort?.removeEventListener('click', showSortMenu);
};
}, [showSortMenu]);
return (
<div ref={element}>
<IconButtonElement
is='paper-icon-button-light'
className='btnSort autoSize'
title='Sort'
icon='material-icons sort_by_alpha'
/>
</div>
);
};
export default Sort;