EN · DE · RU · FR · ES

#2722 : FavoriteActionButton.jsx

projectforge-webapp/src/containers/panel/favorite/FavoriteActionButton.jsx Type : JavaScript/React · Rôle : Panneau · Source : projectforge-webapp/src/containers/panel/favorite/FavoriteActionButton.jsx 51 lignes · 46 code · 0 commentaires · 5 vides
Composant React de gestion des favoris pour le marquage d'entités et la navigation rapide.

Structure du code

Importations depuis : ../../../components/design/input/Input.module.scss, @fortawesome/react-fontawesome, classnames, prop-types, react, reactstrap

Possède PropTypes pour : FavoriteActionButton

Utilise les modules CSS pour le style.

Code source (abrégé)

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;

Historique Git

19c17955d jsx : avertissements console.
3685edd6c migration vers react 18 wip
bbd81edc3 es-lint, nouvelles versions js.
af0e53cef implémentation renommer favori
3ba969936 extraction du bouton d'action favori