diff --git a/js/admin-media.js b/js/admin-media.js index c50a27e..fe5d831 100644 --- a/js/admin-media.js +++ b/js/admin-media.js @@ -19,6 +19,7 @@ var emojiSuggestBox = document.getElementById('yooneSnowEmojiSuggest'); var shapeListContainer = document.getElementById('yooneSnowShapeList'); var shapeAddSelect = document.getElementById('yooneSnowAddShapeSelect'); + var shapeLabelPreviewHost = document.getElementById('yooneSnowAddShapeLabelPreview'); var shapeAddButton = null; var emojiSelect = document.getElementById('yooneSnowEmojiSelect'); var typeSelect = document.getElementById('yooneSnowAddTypeSelect'); @@ -530,11 +531,30 @@ } if (shapeAddSelect){ + // 监听默认形状下拉变化 用于更新左侧图像预览并添加卡片 shapeAddSelect.addEventListener('change', function(){ var val = shapeAddSelect.value; if (String(val).trim() !== ''){ + // 更新左侧预览 显示当前选择形状的图像或渲染预览 + if (shapeLabelPreviewHost){ + while (shapeLabelPreviewHost.firstChild){ shapeLabelPreviewHost.removeChild(shapeLabelPreviewHost.firstChild); } + var previewEl = createShapePreviewElement(val); + if (previewEl){ + try { previewEl.style.backgroundColor = 'transparent'; } catch(e){} + try { previewEl.style.border = 'none'; } catch(e){} + try { previewEl.style.borderRadius = '0'; } catch(e){} + shapeLabelPreviewHost.style.display = 'flex'; + shapeLabelPreviewHost.appendChild(previewEl); + } + } + // 添加形状卡片到列表 addShapeBox(val); + // 重置下拉并清空预览 保持与未选中状态一致 shapeAddSelect.value = ''; + if (shapeLabelPreviewHost){ + while (shapeLabelPreviewHost.firstChild){ shapeLabelPreviewHost.removeChild(shapeLabelPreviewHost.firstChild); } + shapeLabelPreviewHost.style.display = 'none'; + } } }); } @@ -549,6 +569,11 @@ paneEmoji.style.display = (t === 'emoji') ? 'flex' : 'none'; paneMedia.style.display = (t === 'media') ? 'flex' : 'none'; paneText.style.display = (t === 'text') ? 'flex' : 'none'; + if (shapeLabelPreviewHost){ + // 切換類型時預覽容器默認隱藏 僅在選中形狀時顯示 + shapeLabelPreviewHost.style.display = 'none'; + while (shapeLabelPreviewHost.firstChild){ shapeLabelPreviewHost.removeChild(shapeLabelPreviewHost.firstChild); } + } } if (typeSelect){ typeSelect.value = 'default'; diff --git a/yoone-snow.php b/yoone-snow.php index c0e7534..002e6b0 100644 --- a/yoone-snow.php +++ b/yoone-snow.php @@ -468,6 +468,7 @@ function yoone_snow_register_settings() { echo ''; echo ''; echo '