/*! * Copyright (c) 2024 PLANKA Software GmbH * Licensed under the Fair Use License: https://github.com/plankanban/planka/blob/master/LICENSE.md */ import React, { useRef } from 'react'; import classNames from 'classnames'; import { useSelector } from 'react-redux'; import { useTranslation, Trans } from 'react-i18next'; import { Icon, Loader } from 'semantic-ui-react'; import { useTransitioning } from '../../../lib/hooks'; import selectors from '../../../selectors'; import { BoardViews } from '../../../constants/Enums'; import Home from '../Home'; import Board from '../../boards/Board'; import styles from './Static.module.scss'; const Static = React.memo(() => { const { cardId, projectId } = useSelector(selectors.selectPath); const board = useSelector(selectors.selectCurrentBoard); const isFetching = useSelector(selectors.selectIsContentFetching); const isFavoritesActive = useSelector(selectors.selectIsFavoritesActiveForCurrentUser); const [t] = useTranslation(); const wrapperRef = useRef(null); const handleTransitionEnd = useTransitioning(wrapperRef, styles.wrapperTransitioning, [ isFavoritesActive, ]); let wrapperClassNames; let contentNode; if (isFetching) { wrapperClassNames = [styles.wrapperLoader]; contentNode = ; } else if (projectId === undefined) { wrapperClassNames = [isFavoritesActive && styles.wrapperWithFavorites, styles.wrapperVertical]; contentNode = ; } else if (cardId === null) { wrapperClassNames = [isFavoritesActive && styles.wrapperWithFavorites, styles.wrapperFlex]; contentNode = (

{t('common.cardNotFound', { context: 'title', })}

); } else if (board === null) { wrapperClassNames = [isFavoritesActive && styles.wrapperWithFavorites, styles.wrapperFlex]; contentNode = (

{t('common.boardNotFound', { context: 'title', })}

); } else if (projectId === null) { wrapperClassNames = [isFavoritesActive && styles.wrapperWithFavorites, styles.wrapperFlex]; contentNode = (

{t('common.projectNotFound', { context: 'title', })}

); } else if (board === undefined) { wrapperClassNames = [ isFavoritesActive ? styles.wrapperProjectWithFavorites : styles.wrapperProject, styles.wrapperFlex, ]; contentNode = (

{t('common.openBoard', { context: 'title', })}

); } else if (board.isFetching) { wrapperClassNames = [ styles.wrapperLoader, isFavoritesActive ? styles.wrapperProjectWithFavorites : styles.wrapperProject, ]; contentNode = ; } else { wrapperClassNames = [ isFavoritesActive ? styles.wrapperBoardWithFavorites : styles.wrapperBoard, [BoardViews.GRID, BoardViews.LIST].includes(board.view) && styles.wrapperVertical, styles.wrapperFlex, ]; contentNode = ; } return (
{contentNode}
); }); export default Static;