From beb898b1abad628bf4e331770ec2898a24a0257e Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 9 Nov 2026 18:10:19 +0800 Subject: [PATCH] fix(creator-studio): caret overlap in toolbar and hidden sub-categories MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 工具条下拉触发器的下三角原本绝对定位在按钮右下角,按钮宽度不够时会压到 居中的文字上。改为文字 + 三角同行排版(.jio-creator__tool-meta),宽度不足 时只压缩文字。 分类只查询 parent=0,导致二级 / 三级分类在投稿页完全不可选。新增 SubmitCategories 统一解析: - 取全部分类并按父子关系深度优先展平,带上 depth / path; - 白名单按"选了上级即包含其全部子级"展开,未配置白名单时不做额外过滤; - 创作者工作台、经典投稿表单、保存校验与审核应用共用同一份结果。 选择器按 depth 缩进,搜索同时匹配完整路径。 同时把 assets/creator-studio/build 与 assets/admin/build 统一为整目录忽略 (不再跟踪 .gitkeep),避免构建产物反复被误提交。 Co-Authored-By: Claude Opus 5 (1M context) --- .gitignore | 6 +- assets/creator-studio/build/.gitkeep | 0 .../src/components/category-select.tsx | 11 +- .../src/components/tool-menu.tsx | 7 +- assets/creator-studio/src/styles/studio.scss | 22 +- src/Core/CreatorRest.php | 24 +-- src/Core/FrontSubmitSave.php | 7 +- src/Core/SubmissionVersion.php | 5 +- src/Core/SubmitCategories.php | 197 ++++++++++++++++++ templates/parts/submit/context.php | 19 +- .../creator-studio-contract.test.cjs | 25 ++- .../front-submit-pending-harness.php | 21 +- 12 files changed, 291 insertions(+), 53 deletions(-) delete mode 100644 assets/creator-studio/build/.gitkeep create mode 100644 src/Core/SubmitCategories.php diff --git a/.gitignore b/.gitignore index 5a4e6ecc..720eb26b 100644 --- a/.gitignore +++ b/.gitignore @@ -28,13 +28,11 @@ assets/css/routes/docs/* # cd assets/admin && npm ci && npm run build # cd assets/creator-studio && npm ci && npm run build /assets/admin/node_modules/ -/assets/admin/build/* -!/assets/admin/build/.gitkeep +/assets/admin/build/ assets/admin/.vite-temp/ /assets/creator-studio/node_modules/ -/assets/creator-studio/build/* -!/assets/creator-studio/build/.gitkeep +/assets/creator-studio/build/ # PHP installed dependencies /vendor/* diff --git a/assets/creator-studio/build/.gitkeep b/assets/creator-studio/build/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/assets/creator-studio/src/components/category-select.tsx b/assets/creator-studio/src/components/category-select.tsx index 47690b5c..8cebc69b 100644 --- a/assets/creator-studio/src/components/category-select.tsx +++ b/assets/creator-studio/src/components/category-select.tsx @@ -13,7 +13,7 @@ import { __, sprintf } from '@wordpress/i18n'; import { useAnchoredPanel } from '../hooks/use-anchored-panel'; -export type CategoryOption = { id: number; name: string }; +export type CategoryOption = { id: number; name: string; depth?: number; path?: string }; type Props = { options: CategoryOption[]; @@ -42,7 +42,8 @@ export function CategorySelect({ options, value, onChange }: Props) { if (keyword === '') { return options; } - return options.filter((option) => option.name.toLowerCase().includes(keyword)); + // 同时匹配完整路径:搜上级分类名也能把它的子分类带出来。 + return options.filter((option) => (option.path || option.name).toLowerCase().includes(keyword)); }, [options, query]); // 每次打开都从干净的搜索词开始,避免上次的过滤条件把列表藏起来。 @@ -87,6 +88,8 @@ export function CategorySelect({ options, value, onChange }: Props) {