恢复资源排列胶囊分段按钮
Project CI / Repository checks (pull_request) Successful in 3m0s
Project CI / Frontend tests (pull_request) Successful in 3m39s
Project CI / Backend tests (pull_request) Successful in 4m51s
Project CI / Native shell tests (pull_request) Successful in 19m37s

将依赖与类型恢复为同一胶囊内的左右分段按钮。

保留按依赖与按类型的无障碍名称并恢复可见短文案。

新增真实 DOM 结构回归,防止后续合并再次拆散按钮组。
This commit is contained in:
2026-08-24 21:51:25 +08:00
parent 3d8e0211db
commit 84f993260a
2 changed files with 36 additions and 17 deletions
@@ -3984,15 +3984,6 @@ export default function ProjectDevelopmentView({
: `管理未完成编辑 (${pendingResourceEdits.length})`}
</button>
) : null}
<button
type="button"
className={sortMode === 'dependency' ? 'is-active' : ''}
aria-pressed={sortMode === 'dependency'}
onClick={() => showResourceSortMode('dependency')}
>
<FolderTree size={15} aria-hidden="true" />
</button>
<span
className="game-resource-reorder-status"
role="status"
@@ -4000,15 +3991,32 @@ export default function ProjectDevelopmentView({
>
{resourceLayoutSaving ? '保存中' : resourceLayoutNotice}
</span>
<button
type="button"
className={sortMode === 'type' ? 'is-active' : ''}
aria-pressed={sortMode === 'type'}
onClick={() => showResourceSortMode('type')}
<div
className="game-workbench-tabs game-resource-sort-tabs"
role="group"
aria-label="资源排列方式"
>
<ListFilter size={15} aria-hidden="true" />
</button>
<button
type="button"
className={sortMode === 'dependency' ? 'is-active' : ''}
aria-label="按依赖"
aria-pressed={sortMode === 'dependency'}
onClick={() => showResourceSortMode('dependency')}
>
<FolderTree size={15} aria-hidden="true" />
</button>
<button
type="button"
className={sortMode === 'type' ? 'is-active' : ''}
aria-label="按类型"
aria-pressed={sortMode === 'type'}
onClick={() => showResourceSortMode('type')}
>
<ListFilter size={15} aria-hidden="true" />
</button>
</div>
</>
) : null}
</div>
@@ -2123,6 +2123,17 @@ export function registerProjectWorkbenchFoundationTests() {
expect(screen.queryByText('不应显示的项目标题')).toBeNull();
expect(screen.queryByRole('button', { name: '回首页' })).toBeNull();
expect(screen.queryByRole('button', { name: '项目组' })).toBeNull();
const resourceSortControl = screen.getByRole('group', {
name: '资源排列方式',
});
expect(
Array.from(resourceSortControl.children).map((child) => child.tagName),
).toEqual(['BUTTON', 'BUTTON']);
expect(
within(resourceSortControl)
.getAllByRole('button')
.map((button) => button.textContent?.trim()),
).toEqual(['依赖', '类型']);
expect(screen.getByText('仅完成计划')).not.toBeNull();
expect(
screen.getByText('美术资源计划已完成,尚未生成或登记图片'),