import React, { FunctionComponent, useEffect, useRef } from 'react'; import IconButtonElement from '../../elements/IconButtonElement'; import libraryBrowser from '../../scripts/libraryBrowser'; import * as userSettings from '../../scripts/settings/userSettings'; import { IQuery } from './type'; type SelectViewProps = { getCurrentViewStyle: () => string; query: IQuery; getViewSettings: () => string; reloadItems: () => void; } const SelectView: FunctionComponent = ({ getCurrentViewStyle, getViewSettings, query, reloadItems }: SelectViewProps) => { const element = useRef(null); useEffect(() => { const btnSelectView = element.current?.querySelector('.btnSelectView') as HTMLButtonElement; btnSelectView.addEventListener('click', (e) => { libraryBrowser.showLayoutMenu(e.target, getCurrentViewStyle(), 'Banner,List,Poster,PosterCard,Thumb,ThumbCard'.split(',')); }); btnSelectView.addEventListener('layoutchange', (e) => { const viewStyle = (e as CustomEvent).detail.viewStyle; userSettings.set(getViewSettings(), viewStyle, false); query.StartIndex = 0; reloadItems(); }); }, [getCurrentViewStyle, query, reloadItems, getViewSettings]); return (
); }; export default SelectView;