EN · DE · RU · FR · ES

#2657: FormattedDateTime.jsx

projectforge-webapp/src/components/design/input/calendar/FormattedDateTime.jsx Тип: JavaScript/React · Роль: Календарь · Исходник: projectforge-webapp/src/components/design/input/calendar/FormattedDateTime.jsx 36 строк · 31 код · 0 комментариев · 5 пустых
Компонент ввода даты/времени на React, предоставляющий календарь, выбор диапазона дат и форматированное отображение для веб-приложения ProjectForge.

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

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

Импорты из: moment, prop-types, react, react-redux

Имеет PropTypes для: FormattedDateTime

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

import moment from 'moment';
import PropTypes from 'prop-types';
import React from 'react';
import { useSelector } from 'react-redux';

function FormattedDateTime(
    {
        date,
        slot = 'FROM',
        ...props
    },
) {
    const jsDateFormat = useSelector((state) => state.authentication.user.jsDateFormat);
    const jsTimestampFormatMinutes = useSelector((state) => state.authentication.user.jsTimestampFormatMinutes);
    let format = jsTimestampFormatMinutes;

    if (
        (slot === 'FROM' && date.getHours() === 0 && date.getMinutes() === 0)
        || (slot === 'TO' && date.getHours() === 23 && date.getMinutes() === 59)) {
        format = jsDateFormat;
    }

    return (
        <span {...props}>
            {moment(date)
                .format(format)}
        </span>
    );
}

FormattedDateTime.propTypes = {
    date: PropTypes.instanceOf(Date).isRequired,
    slot: PropTypes.oneOf(['FROM', 'TO']),
};

export default FormattedDateTime;

История Git

bf988bc6d Устранение 43 уязвимостей npm: react-scripts→Vite, ESLint 9, очистка зависимостей, исправления ошибок
3685edd6c переход на react 18 wip
033629f77 исправление ошибок typescript eslint
ee7116516 wip: ввод времени
862b06bbf форматирование временного интервала