EN · DE · RU · FR · ES

#2716: CalendarEventTooltip.jsx

projectforge-webapp/src/containers/panel/calendar/CalendarEventTooltip.jsx Тип: JavaScript/React · Роль: Календарь · Источник: projectforge-webapp/src/containers/panel/calendar/CalendarEventTooltip.jsx 49 строк · 42 кода · 3 комментария · 4 пустых
Компонент календаря React, отображающий события с всплывающими подсказками, навигацией и интеграцией с командным календарём.

Структура кода

Импорты из: ../../../components/design, ./CalendarEventTooltip.module.scss, classnames, prop-types, react, reactstrap

Содержит PropTypes для: CalendarEventTooltip

Использует CSS Modules для стилизации.

Исходный код (сокращён)

import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import { CardFooter } from 'reactstrap';
import styles from './CalendarEventTooltip.module.scss';
import { CardHeader, CardBody } from '../../../components/design';

function CalendarEventTooltip({ forwardRef, event = null }) {
    const extendedProps = event?.extendedProps;
    const tooltip = extendedProps?.tooltip;

    return (
        <div
            ref={forwardRef}
            className={classNames('card', styles.eventTooltip, !event && styles.hidden)}
        >
            {tooltip?.title && (
                <CardHeader>
                    <b>{tooltip?.title}</b>
                </CardHeader>
            ) }
            <CardBody>
                <div
                    /* eslint-disable-next-line react/no-danger */
                    dangerouslySetInnerHTML={{ __html: tooltip?.text }}
                />
            </CardBody>
            {extendedProps?.duration && (
                <CardFooter>
                    {extendedProps?.duration}
                </CardFooter>
            )}
        </div>
    );
}

CalendarEventTooltip.propTypes = {
    forwardRef: PropTypes.oneOfType([
        // Либо функция
        PropTypes.func,
        // Либо экземпляр нативного DOM-элемента (см. примечание о SSR)
        PropTypes.shape({ current: PropTypes.instanceOf(Element) }),
    ]).isRequired,
    event: PropTypes.shape({
        extendedProps: PropTypes.shape({}),
    }),
};

export default CalendarEventTooltip;

История Git

958c2f0ff jsx: исправлены предупреждения eslint.
3685edd6c переход на react 18 wip
31d46c691 React: PropTypes
c47405865 Кнопка: Помечено как удалено -> Удалить.
3ea4ecb63 React: PropTypes исправлены, urlParams -> urlparams