//チェックボックスのJS
(function (wp) {
	var el = wp.element.createElement;
	var registerPlugin = wp.plugins.registerPlugin;
	var PluginDocumentSettingPanel = wp.editor.PluginDocumentSettingPanel || wp.editPost.PluginDocumentSettingPanel;
	var CheckboxControl = wp.components.CheckboxControl;
	var useSelect = wp.data.useSelect;
	var useDispatch = wp.data.useDispatch;
	var useSelect = wp.data.useSelect; // 投稿タイプ取得

	//文字列
	const T =HaupLocalizeTextFimage;

	var HaupMetaPanel  = function () {
			//指定した投稿タイプで出力
			//現在の投稿タイプを取得
			var postType = useSelect(function (select) {
				return select('core/editor').getCurrentPostType();
			}, []);

			// 表示を許可する投稿タイプのリスト（配列）
			//var allowedPostTypes = ['post','page']; // 投稿タイプを配列指定
			// PHPで指定した配列をwp_localize_scriptで渡す
			var allowedPostTypes = T.post_types; // 投稿タイプを配列指定

				// リストに含まれていない場合は表示しない
				if (!allowedPostTypes.includes(postType)) {
					return null;
				}

		// 現在のメタデータを取得
		var meta = useSelect(function (select) {
			return select('core/editor').getEditedPostAttribute('meta') || {};
		}, []);

		// 2.メタキーが定義されていない投稿タイプならフォームを非表示にする
		// register_post_metaの第二引数で指定したメタキーを指定
		if (meta['hide_fimage'] === undefined) {
			return null; 
		}

		var { editPost } = useDispatch('core/editor');

		return el(
			PluginDocumentSettingPanel,
			{
				name: 'haup-editor-panel-hide-featured-image',
				title: T.title,
				icon: 'hidden',
				initialOpen: false, //パネルを閉じておく
			},
			el(CheckboxControl, {
				label: T.label,
				help: T.help,
				//register_post_metaの第二引数で指定したメタキーを指定
				checked: !!meta['hide_fimage'], // 二重否定(!!)で確実に boolean 型に変換
				__nextHasNoMarginBottom: true,
				onChange: function (newValue) {
					editPost({
						meta: {
							// newValue には true/false が入る（register_post_metaのtypeはbooleanにする）
							//'hide_ad_info': newValue 
							//newValue には 1/空文字 が入る（register_post_metaのtypeはstringにする）
							'hide_fimage': newValue ? '1' : ''
						}
					});
				}
			})
		);
	};

	registerPlugin('haup-editor-panel-hide-featured-image-plugin', { render: HaupMetaPanel });

})(window.wp);