import { registerPlugin } from "@wordpress/plugins"; import { Button, DateTimePicker, Dropdown } from "@wordpress/components"; import { PluginDocumentSettingPanel } from "@wordpress/editor"; import { useSelect, useDispatch } from "@wordpress/data"; import { __ } from "@wordpress/i18n"; import { useState } from "@wordpress/element"; import { dateI18n, format, getSettings } from "@wordpress/date"; const ModificationDatePanel = () => { const { modificationDate } = useSelect((select) => { const meta = select("core/editor").getEditedPostAttribute("meta"); return { modificationDate: meta?.article_modification_date || "", }; }); const { editPost } = useDispatch("core/editor"); const settings = getSettings(); const updateModificationDate = (newDate) => { const formattedDate = format("Y-m-d H:i:s", newDate); editPost({ meta: { article_modification_date: formattedDate, }, }); }; const clearModificationDate = () => { editPost({ meta: { article_modification_date: "", }, }); }; // Formater la date pour l'affichage const displayDate = modificationDate ? dateI18n(settings.formats.datetime, modificationDate) : __("Non définie", "dynamiques-modification-date"); return (
{__( "Choisissez ici la dernière date de révision de cet article", "dynamiques-modification-date" )}
{modificationDate ? ( ( )} renderContent={({ onClose }) => (
{ updateModificationDate(newDate); onClose(); }} is12Hour={settings.formats.time.includes("a")} />
)} /> ) : ( )}
); }; registerPlugin("modification-date-panel", { render: ModificationDatePanel, });