/*! * Copyright (c) 2024 PLANKA Software GmbH * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md */ import React, { useCallback } from 'react'; import classNames from 'classnames'; import { useDispatch, useSelector } from 'react-redux'; import { useTranslation } from 'react-i18next'; import { Icon } from 'semantic-ui-react'; import { Tooltip } from '../../../../lib/custom-ui'; import { usePopup } from '../../../../lib/popup'; import selectors from '../../../../selectors'; import entryActions from '../../../../entry-actions'; import { HomeViews } from '../../../../constants/Enums'; import { HomeViewIcons, ProjectOrderIcons } from '../../../../constants/Icons'; import SelectOrderStep from './SelectOrderStep'; import styles from './RightSide.module.scss'; const TOOLTIP_BY_VIEW = { [HomeViews.GRID_PROJECTS]: 'action.switchToGridProjectsView', [HomeViews.GROUPED_PROJECTS]: 'action.switchToGroupedProjectsView', }; const RightSide = React.memo(() => { const currentView = useSelector(selectors.selectHomeView); // TODO: rename? const currentOrder = useSelector(selectors.selectProjectsOrder); // TODO: rename? const isHiddenVisible = useSelector(selectors.selectIsHiddenProjectsVisible); const dispatch = useDispatch(); const [t] = useTranslation(); const handleSelectViewClick = useCallback( ({ currentTarget: { value: view } }) => { dispatch(entryActions.updateHomeView(view)); }, [dispatch], ); const handleOrderSelect = useCallback( (order) => { dispatch(entryActions.updateProjectsOrder(order)); }, [dispatch], ); const handleToggleHiddenClick = useCallback(() => { dispatch(entryActions.toggleHiddenProjects(!isHiddenVisible)); }, [isHiddenVisible, dispatch]); const SelectOrderPopup = usePopup(SelectOrderStep); return ( <>
{[HomeViews.GRID_PROJECTS, HomeViews.GROUPED_PROJECTS].map((view) => ( ))}
); }); export default RightSide;