EN · DE · RU · FR · ES

#2657: FormattedDateTime.jsx

projectforge-webapp/src/components/design/input/calendar/FormattedDateTime.jsx Type : JavaScript/React · Rôle : Calendrier · Source : projectforge-webapp/src/components/design/input/calendar/FormattedDateTime.jsx 36 lignes · 31 code · 0 commentaires · 5 vides
Composant React de saisie date/heure fournissant un sélecteur de calendrier, une plage de dates et un affichage formaté pour l'application web ProjectForge.

Structure du code

Hooks utilisés : Selector, Selector

Importations depuis : moment, prop-types, react, react-redux

Possède PropTypes pour : FormattedDateTime

Code source (abrégé)

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;

Historique Git

bf988bc6d Élimination de 43 vulnérabilités npm : react-scripts→Vite, ESLint 9, nettoyage des dépendances, corrections de bugs
3685edd6c migration vers react 18 wip
033629f77 correction de bugs typescript eslint
ee7116516 wip : saisie de l'heure
862b06bbf formatage de l'intervalle de temps