index.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. import { registerPlugin } from "@wordpress/plugins";
  2. import { PluginSidebar, PluginSidebarMoreMenuItem } from "@wordpress/edit-post";
  3. import { __ } from "@wordpress/i18n";
  4. import { PanelBody, TextControl, TextareaControl } from "@wordpress/components";
  5. import { withSelect, withDispatch } from "@wordpress/data";
  6. let PluginMetaFields = (props) => {
  7. return (
  8. <>
  9. <PanelBody
  10. title={__("Media URL", "textdomain")}
  11. icon="format-video"
  12. intialOpen={ true }
  13. >
  14. <TextControl
  15. value={props.text_metafield}
  16. label={__("meta property og:video meta", "textdomain")}
  17. help="postmeta:media absolute url to video"
  18. onChange={(value) => props.onMetaFieldChange(value)}
  19. />
  20. </PanelBody>
  21. </>
  22. )
  23. }
  24. let PluginMetaFields_desc = (props) => {
  25. return (
  26. <>
  27. <PanelBody
  28. title={__("Meta Excerpt", "textdomain")}
  29. icon="format-aside"
  30. intialOpen={ true }
  31. >
  32. <TextareaControl
  33. value={props.text_metafield_desc}
  34. label={__("meta name=description", "textdomain")}
  35. help="postmeta:meta-desc alternative to post excerpt from the function dw_good_excerpt"
  36. onChange={(value) => props.onMetaFieldChange_desc(value)}
  37. />
  38. </PanelBody>
  39. </>
  40. )
  41. }
  42. PluginMetaFields = withSelect(
  43. (select) => {
  44. return {
  45. text_metafield: select('core/editor').getEditedPostAttribute('meta')['media']
  46. }
  47. }
  48. )(PluginMetaFields);
  49. PluginMetaFields_desc = withSelect(
  50. (select) => {
  51. return {
  52. text_metafield_desc: select('core/editor').getEditedPostAttribute('meta')['meta_desc']
  53. }
  54. }
  55. )(PluginMetaFields_desc);
  56. PluginMetaFields = withDispatch(
  57. (dispatch) => {
  58. return {
  59. onMetaFieldChange: (value) => {
  60. dispatch('core/editor').editPost({meta: {media: value}})
  61. }
  62. }
  63. }
  64. )(PluginMetaFields);
  65. PluginMetaFields_desc = withDispatch(
  66. (dispatch) => {
  67. return {
  68. onMetaFieldChange_desc: (value) => {
  69. dispatch('core/editor').editPost({meta: {meta_desc: value}})
  70. }
  71. }
  72. }
  73. )(PluginMetaFields_desc);
  74. registerPlugin( 'dw-sidebar', {
  75. icon: 'welcome-widgets-menus',
  76. render: () => {
  77. return (
  78. <>
  79. <PluginSidebarMoreMenuItem
  80. target="dw-sidebar"
  81. >
  82. {__('Meta Options', 'textdomain')}
  83. </PluginSidebarMoreMenuItem>
  84. <PluginSidebar
  85. name="dw-sidebar"
  86. title={__('Post Meta', 'textdomain')}
  87. >
  88. <PluginMetaFields />
  89. <PluginMetaFields_desc />
  90. </PluginSidebar>
  91. </>
  92. )
  93. }
  94. })