EN · DE · RU · FR · ES

#2722: FavoriteActionButton.jsx

projectforge-webapp/src/containers/panel/favorite/FavoriteActionButton.jsx Тип: JavaScript/React · Роль: Панель · Источник: projectforge-webapp/src/containers/panel/favorite/FavoriteActionButton.jsx 51 строка · 46 кода · 0 комментариев · 5 пустых
Компонент React для управления избранным: добавление сущностей в закладки и быстрая навигация.

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

Импорты из: ../../../components/design/input/Input.module.scss, @fortawesome/react-fontawesome, classnames, prop-types, react, reactstrap

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

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

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

import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import classNames from 'classnames';
import PropTypes from 'prop-types';
import React from 'react';
import { UncontrolledTooltip } from 'reactstrap';
import style from '../../../components/design/input/Input.module.scss';

function FavoriteActionButton(
    {
        className,
        icon,
        id,
        onClick,
        size,
        tooltip,
    },
) {
    const handleClick = (event) => {
        event.stopPropagation();

        onClick(event);
    };

    return (
        <>
            <FontAwesomeIcon
                id={id}
                icon={icon}
                className={classNames(style.icon, className)}
                onClick={handleClick}
                size={size}
            />
            {tooltip && id ? (
                <UncontrolledTooltip placement="right" target={id} fade timeout={150}>
                    {tooltip}
                </UncontrolledTooltip>
            ) : undefined}
        </>
    );
}

FavoriteActionButton.propTypes = {
    icon: PropTypes.shape({}).isRequired,
    onClick: PropTypes.func.isRequired,
    className: PropTypes.string,
    id: PropTypes.string,
    size: PropTypes.string,
    tooltip: PropTypes.string,
};

export default FavoriteActionButton;

История Git

19c17955d jsx: предупреждения консоли.
3685edd6c переход на react 18 wip
bbd81edc3 es-lint, новые версии js.
af0e53cef реализовать переименование избранного
3ba969936 извлечь кнопку действия избранного