恢复资源排列胶囊分段按钮 #190

Merged
kdletters merged 1 commits from codex/restore-resource-sort-segmented-control into master 2026-08-24 21:56:54 +08:00
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('美术资源计划已完成,尚未生成或登记图片'),