// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. // import React, {FC} from 'react' import {useIntl} from 'react-intl' import {Constants} from '../../constants' import {Board, IPropertyTemplate} from '../../blocks/board' import {BoardView} from '../../blocks/boardView' import {Card} from '../../blocks/card' import mutator from '../../mutator' import Menu from '../../widgets/menu' type Props = { templateId: string board: Board activeView: BoardView views: BoardView[] cards: Card[] } const TableHeaderMenu: FC = (props: Props): JSX.Element => { const {board, activeView, templateId, views, cards} = props const intl = useIntl() return ( mutator.changeViewSortOptions(board.id, activeView.id, activeView.fields.sortOptions, [{propertyId: templateId, reversed: false}])} /> mutator.changeViewSortOptions(board.id, activeView.id, activeView.fields.sortOptions, [{propertyId: templateId, reversed: true}])} /> { if (props.templateId === Constants.titleColumnId) { // eslint-disable-next-line no-warning-comments // TODO: Handle name column } else { const index = board.cardProperties.findIndex((o: IPropertyTemplate) => o.id === templateId) mutator.insertPropertyTemplate(board, activeView, index) } }} /> { if (templateId === Constants.titleColumnId) { // eslint-disable-next-line no-warning-comments // TODO: Handle title column } else { const index = board.cardProperties.findIndex((o: IPropertyTemplate) => o.id === templateId) + 1 mutator.insertPropertyTemplate(board, activeView, index) } }} /> {props.templateId !== Constants.titleColumnId && <> mutator.changeViewVisibleProperties(board.id, activeView.id, activeView.fields.visiblePropertyIds, activeView.fields.visiblePropertyIds.filter((o: string) => o !== templateId))} /> mutator.duplicatePropertyTemplate(board, activeView, templateId)} /> mutator.deleteProperty(board, views, cards, templateId)} /> } ) } export default TableHeaderMenu