import React, { FC, useCallback, useEffect, useRef } from 'react'; import IconButtonElement from '../../elements/IconButtonElement'; import { ViewSettingsI } from './interface'; interface SelectViewProps { getVisibleViewSettings: () => string[]; viewSettings: ViewSettingsI setViewSettings: React.Dispatch>; } const SelectView: FC = ({ getVisibleViewSettings, viewSettings, setViewSettings }) => { const element = useRef(null); const showViewSettingsMenu = useCallback(() => { import('../../components/viewSettings/viewSettings').then(({default: ViewSettings}) => { const viewsettings = new ViewSettings(); viewsettings.show({ settings: viewSettings, visibleSettings: getVisibleViewSettings(), setviewsettings: setViewSettings }); }); }, [getVisibleViewSettings, viewSettings, setViewSettings]); useEffect(() => { const btnSelectView = element.current?.querySelector('.btnSelectView') as HTMLButtonElement; btnSelectView?.addEventListener('click', showViewSettingsMenu); return () => { btnSelectView?.removeEventListener('click', showViewSettingsMenu); }; }, [showViewSettingsMenu]); return (
); }; export default SelectView;