EN · DE · RU · FR · ES

#2724: FavoriteNameInput.jsx

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

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

Используемые хуки: State

Импорты из: ../../../components/design, @fortawesome/free-solid-svg-icons, prop-types, react

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

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

import { faFolderPlus, faCheckSquare } from '@fortawesome/free-solid-svg-icons';
import PropTypes from 'prop-types';
import React from 'react';
import { Input } from '../../../components/design';

function FavoriteNameInput(
    {
        defaultValue = '',
        id,
        label,
        onSave,
        tooltip,
        rename = false,
        ...props
    },
) {
    const [filterName, setFilterName] = React.useState(defaultValue);

    const handleInputChange = ({ target }) => setFilterName(target.value);

    const handleCreateClick = () => onSave(filterName);

    const handleKeyDown = ({ key }) => {
        if (key === 'Enter') {
            onSave(filterName);
        }
    };
    let icon = faFolderPlus;
    if (rename === true) {
        icon = faCheckSquare;
    }

    return (
        <Input
            label={label}
            icon={icon}
            iconProps={{
                size: 'lg',
                onClick: handleCreateClick,
            }}
            id={id}
            onChange={handleInputChange}
            onKeyDown={handleKeyDown}
            value={filterName}
            tooltip={tooltip}
            {...props}
        />
    );
}

FavoriteNameInput.propTypes = {
    id: PropTypes.string.isRequired,
    label: PropTypes.string.isRequired,
    onSave: PropTypes.func.isRequired,
    rename: PropTypes.bool,
    className: PropTypes.string,
    defaultValue: PropTypes.string,
    tooltip: PropTypes.string,
};

export default FavoriteNameInput;

История Git

3685edd6c переход на react 18 wip
312b6f07f FavoriteNameInput/Entry: изменена иконка для режима редактирования.
38329872e Улучшены избранные (добавлены подсказки, улучшены иконки, ...)
253b9f38b обновлены некоторые зависимости и исправлены ошибки eslint
d321a9dcb исправлен большой список шаблонов