EN · DE · RU · FR · ES

#2657: FormattedDateTime.jsx

projectforge-webapp/src/components/design/input/calendar/FormattedDateTime.jsx Typ: JavaScript/React · Rolle: Kalender · Quelle: projectforge-webapp/src/components/design/input/calendar/FormattedDateTime.jsx 36 Zeilen · 31 Code · 0 Kommentare · 5 Leerzeilen
React-Datums-/Zeiteingabekomponente mit Kalenderauswahl, Datumsbereich und formatierter Anzeige für die ProjectForge-Web-App.

Codestruktur

Verwendete Hooks: Selector, Selector

Importe von: moment, prop-types, react, react-redux

Hat PropTypes für: FormattedDateTime

Quellcode (gekürzt)

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-Verlauf

bf988bc6d 43 npm-Sicherheitslücken beseitigt: react-scripts→Vite, ESLint 9, Abhängigkeitsbereinigung, Fehlerbehebungen
3685edd6c Upgrade auf React 18 (Work-in-Progress)
033629f77 TypeScript-ESLint-Fehler behoben
ee7116516 Work-in-Progress: Zeiteingabe
862b06bbf Zeitintervall formatiert