handling brochure format type rehydratation
This commit is contained in:
parent
b1778a6e7b
commit
c14881fa98
|
|
@ -1 +1 @@
|
|||
<?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-rich-text'), 'version' => 'fbce063ab27a220c98f0');
|
||||
<?php return array('dependencies' => array('wp-block-editor', 'wp-components', 'wp-data', 'wp-element', 'wp-i18n', 'wp-primitives', 'wp-rich-text'), 'version' => '617b3841d9e762364fd5');
|
||||
|
|
|
|||
|
|
@ -2,37 +2,6 @@
|
|||
/******/ "use strict";
|
||||
/******/ var __webpack_modules__ = ({
|
||||
|
||||
/***/ "./node_modules/@wordpress/icons/build-module/library/check.js":
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@wordpress/icons/build-module/library/check.js ***!
|
||||
\*********************************************************************/
|
||||
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
||||
|
||||
__webpack_require__.r(__webpack_exports__);
|
||||
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
||||
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
||||
/* harmony export */ });
|
||||
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @wordpress/element */ "@wordpress/element");
|
||||
/* harmony import */ var _wordpress_element__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__);
|
||||
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @wordpress/primitives */ "@wordpress/primitives");
|
||||
/* harmony import */ var _wordpress_primitives__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__);
|
||||
|
||||
|
||||
/**
|
||||
* WordPress dependencies
|
||||
*/
|
||||
|
||||
const check = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.SVG, {
|
||||
xmlns: "http://www.w3.org/2000/svg",
|
||||
viewBox: "0 0 24 24"
|
||||
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_primitives__WEBPACK_IMPORTED_MODULE_1__.Path, {
|
||||
d: "M16.7 7.1l-6.3 8.5-3.3-2.5-.9 1.2 4.5 3.4L17.9 8z"
|
||||
}));
|
||||
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (check);
|
||||
//# sourceMappingURL=check.js.map
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ "./node_modules/@wordpress/icons/build-module/library/trash.js":
|
||||
/*!*********************************************************************!*\
|
||||
!*** ./node_modules/@wordpress/icons/build-module/library/trash.js ***!
|
||||
|
|
@ -115,8 +84,9 @@ __webpack_require__.r(__webpack_exports__);
|
|||
/* harmony import */ var _wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__);
|
||||
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @wordpress/components */ "@wordpress/components");
|
||||
/* harmony import */ var _wordpress_components__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__);
|
||||
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/check.js");
|
||||
/* harmony import */ var _wordpress_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @wordpress/icons */ "./node_modules/@wordpress/icons/build-module/library/trash.js");
|
||||
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @wordpress/data */ "@wordpress/data");
|
||||
/* harmony import */ var _wordpress_data__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_wordpress_data__WEBPACK_IMPORTED_MODULE_5__);
|
||||
|
||||
|
||||
|
||||
|
|
@ -125,6 +95,8 @@ __webpack_require__.r(__webpack_exports__);
|
|||
|
||||
|
||||
|
||||
// pour les querry
|
||||
|
||||
const formatName = "homegrade-format/brochure-format";
|
||||
const BrochureLinkFormatButton = props => {
|
||||
const {
|
||||
|
|
@ -133,49 +105,67 @@ const BrochureLinkFormatButton = props => {
|
|||
onChange
|
||||
} = props;
|
||||
const [isPopoverOpen, setIsPopoverOpen] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
||||
const [linkValue, setLinkValue] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)("");
|
||||
const [relatedPost, setRelatedPost] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)("");
|
||||
const [pendingBrochure, setPendingBrochure] = (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.useState)(false);
|
||||
const activeFormat = (0,_wordpress_rich_text__WEBPACK_IMPORTED_MODULE_1__.getActiveFormats)(value).filter(format => format.type === formatName)[0];
|
||||
function setFormat() {
|
||||
const brochurePost = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
|
||||
if (activeFormat && activeFormat.attributes.brochurePostID) {
|
||||
return select("core").getEntityRecord("postType", "brochures", activeFormat.attributes.brochurePostID);
|
||||
}
|
||||
});
|
||||
const brochureAttachedMedia = (0,_wordpress_data__WEBPACK_IMPORTED_MODULE_5__.useSelect)(select => {
|
||||
if (brochurePost && brochurePost.acf && brochurePost.acf.brochure_pdf) {
|
||||
return select("core").getEntityRecord("postType", "attachment", brochurePost.acf.brochure_pdf);
|
||||
}
|
||||
});
|
||||
function setFormat(postDatas) {
|
||||
setIsPopoverOpen(!isPopoverOpen);
|
||||
setPendingBrochure(true);
|
||||
onChange((0,_wordpress_rich_text__WEBPACK_IMPORTED_MODULE_1__.applyFormat)(value, {
|
||||
type: formatName,
|
||||
attributes: {
|
||||
href: linkValue.url,
|
||||
href: "",
|
||||
brochurePostID: postDatas.id.toString(),
|
||||
target: "_blank",
|
||||
dataId: linkValue.id.toString(),
|
||||
style: "text-decoration: underline;"
|
||||
}
|
||||
}));
|
||||
}
|
||||
function removeFormat() {
|
||||
setIsPopoverOpen(false);
|
||||
setLinkValue("");
|
||||
onChange((0,_wordpress_rich_text__WEBPACK_IMPORTED_MODULE_1__.toggleFormat)(value, {
|
||||
type: formatName
|
||||
}));
|
||||
}
|
||||
console.log(brochurePost);
|
||||
console.log(brochureAttachedMedia);
|
||||
if (brochurePost && brochureAttachedMedia && pendingBrochure) {
|
||||
onChange((0,_wordpress_rich_text__WEBPACK_IMPORTED_MODULE_1__.applyFormat)(value, {
|
||||
type: formatName,
|
||||
attributes: {
|
||||
target: "_blank",
|
||||
brochurePostID: brochurePost.id.toString(),
|
||||
brochureID: brochureAttachedMedia.id.toString(),
|
||||
href: brochureAttachedMedia.source_url,
|
||||
style: "text-decoration: underline;"
|
||||
}
|
||||
}));
|
||||
setPendingBrochure(false);
|
||||
}
|
||||
return (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.BlockControls, null, isPopoverOpen && (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.Popover, {
|
||||
onClose: () => setIsPopoverOpen(false),
|
||||
className: "popover_tooltip_field"
|
||||
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_block_editor__WEBPACK_IMPORTED_MODULE_3__.__experimentalLinkControl, {
|
||||
suggestionsQuery: {
|
||||
type: "attachment"
|
||||
type: "post",
|
||||
subtype: "brochures"
|
||||
// subtype: "application/pdf", // Not working
|
||||
// mime_type: "application/pdf", // Not working
|
||||
},
|
||||
|
||||
value: linkValue,
|
||||
onChange: value => {
|
||||
setLinkValue(value);
|
||||
}
|
||||
}), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.Button, {
|
||||
icon: _wordpress_icons__WEBPACK_IMPORTED_MODULE_5__["default"],
|
||||
variant: "primary",
|
||||
onClick: () => {
|
||||
setIsPopoverOpen(!isPopoverOpen);
|
||||
setFormat();
|
||||
}
|
||||
}, "Valider")), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.ToolbarGroup, {
|
||||
value: relatedPost,
|
||||
onChange: setFormat
|
||||
})), (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.ToolbarGroup, {
|
||||
className: "test"
|
||||
}, (0,_wordpress_element__WEBPACK_IMPORTED_MODULE_0__.createElement)(_wordpress_components__WEBPACK_IMPORTED_MODULE_4__.ToolbarButton, {
|
||||
isActive: isActive,
|
||||
|
|
@ -187,6 +177,10 @@ const BrochureLinkFormatButton = props => {
|
|||
(0,_wordpress_rich_text__WEBPACK_IMPORTED_MODULE_1__.registerFormatType)("homegrade-format/brochure-format", {
|
||||
title: "Lien Brochure",
|
||||
tagName: "a",
|
||||
attributes: {
|
||||
brochureID: "brochure-id",
|
||||
brochurePostID: "brochure-post-id"
|
||||
},
|
||||
className: "brochure-link-format",
|
||||
edit: BrochureLinkFormatButton
|
||||
});
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user