[verified] redesign compact list editor
This commit is contained in:
+22
-34
@@ -1596,39 +1596,31 @@ describe('sidebar information hierarchy', () => {
|
||||
expect(css).toContain('width:3px;')
|
||||
})
|
||||
|
||||
it('groups folder and list editing actions into a clear compact hierarchy', () => {
|
||||
it('uses the selected compact editor for list name, folder, and archive actions', () => {
|
||||
expect(app).toContain('aria-label="打开文件夹操作"')
|
||||
expect(app).toContain('aria-label="打开清单操作"')
|
||||
expect(app).toContain('panel-class="sidebar-action-sheet"')
|
||||
expect(app).toContain(':label="sidebarAction ? `${sidebarAction.item.name}操作` : undefined"')
|
||||
expect(app).toContain('class="sidebar-action-kind"')
|
||||
expect(app).toContain('class="sidebar-action-group"')
|
||||
expect(app).toContain('class="sidebar-action-group-title"')
|
||||
expect(app).toContain('class="sidebar-action-danger"')
|
||||
expect(app).toContain("sidebarAction.kind==='folders'?'文件夹':'清单'")
|
||||
expect(app).toContain("sidebarAction.kind==='folders' ? `删除后,其中 ${sidebarActionFolderListCount} 个清单会移到“我的清单”` : '任务会保留,可从“已归档”恢复'")
|
||||
const deleteEntityBlock = app.slice(app.indexOf('async function deleteEntity'), app.indexOf('async function loadArchivedLists'))
|
||||
expect(deleteEntityBlock).toContain("confirmAction(`归档清单「${item.name}」?`, '任务会保留,可从“已归档”恢复')")
|
||||
expect(deleteEntityBlock).not.toContain("askText(`归档清单")
|
||||
expect(css).toContain('.sidebar-action-sheet{width:min(320px,calc(100vw - 24px));')
|
||||
expect(css).toContain('.sidebar-action-group{display:grid;gap:2px;')
|
||||
expect(css).toContain('.sidebar-action-danger{border-top:1px solid')
|
||||
expect(app).toContain('panel-class="list-editor-sheet"')
|
||||
expect(app).toContain('id="list-editor-title"')
|
||||
expect(app).toContain('v-model="listEditorName"')
|
||||
expect(app).toContain('v-model="listEditorFolderId"')
|
||||
expect(app).toContain('>所在文件夹<')
|
||||
expect(app).toContain("{{listEditorBusy?'正在保存…':'保存更改'}}")
|
||||
expect(app).toContain('任务会保留,可从“已归档”恢复')
|
||||
expect(app).not.toContain('class="list-editor-position"')
|
||||
expect(app).not.toContain('aria-label="上移清单"')
|
||||
expect(app).not.toContain('aria-label="下移清单"')
|
||||
const archiveListBlock = app.slice(app.indexOf('async function archiveListFromEditor'), app.indexOf('function toggleFolder'))
|
||||
expect(archiveListBlock).toContain("confirmAction(`归档清单「${item.name}」?`, '任务会保留,可从“已归档”恢复')")
|
||||
expect(archiveListBlock).not.toContain("askText(`归档清单")
|
||||
expect(css).toContain('.list-editor-sheet{width:min(460px,calc(100vw - 24px));')
|
||||
expect(css).toContain('.list-editor-form{display:grid;gap:17px;padding:18px 20px}')
|
||||
expect(css).toContain('.list-editor-danger{border-top:1px solid var(--border-cream);')
|
||||
expect(app).toContain('@keydown.esc="sidebarCreateOpen=false;closeArchivedListAction();closeSidebarAction()"')
|
||||
expect(app).toContain('sidebarCreateOpen.value = false; sidebarAction.value = null')
|
||||
expect(app).not.toContain('aria-label="重命名文件夹" @click="renameEntity')
|
||||
expect(app).not.toContain('aria-label="重命名清单" @click="renameEntity')
|
||||
})
|
||||
|
||||
it('uses a dedicated second step for choosing a list destination', () => {
|
||||
expect(app).toContain('<template v-if="listMoveMenuOpen">')
|
||||
expect(app).toContain('aria-label="返回清单操作"')
|
||||
expect(app).toContain('class="sidebar-action-move-title"')
|
||||
expect(app).toContain('选择目标位置')
|
||||
expect(app).toContain('role="menu" aria-label="选择目标文件夹"')
|
||||
expect(app).toContain("'list-move-current':")
|
||||
expect(css).toContain('.sidebar-action-move-back{min-height:44px;')
|
||||
expect(css).toContain('.list-move-menu{display:grid;gap:2px;padding:0}')
|
||||
})
|
||||
})
|
||||
|
||||
describe('quiet index sidebar parity', () => {
|
||||
@@ -1727,7 +1719,7 @@ describe('sidebar layout', () => {
|
||||
expect(app).not.toContain('list.is_inbox" class="list-drag-handle"')
|
||||
})
|
||||
|
||||
it('uses the handle-only touch contract and exposes same-scope move controls', () => {
|
||||
it('uses the handle-only touch contract while keeping drag organization available', () => {
|
||||
expect(app).not.toContain('@pointerdown="startListLongPress(list, $event)"')
|
||||
expect(app).not.toContain('function startListLongPress')
|
||||
expect(app).not.toContain('listLongPressTimer')
|
||||
@@ -1742,14 +1734,10 @@ describe('sidebar layout', () => {
|
||||
expect(app).toContain('@pointerup.stop="finishListDrag(list,$event)"')
|
||||
expect(app).toContain('@pointercancel.stop="cancelListDrag"')
|
||||
expect(app).toContain('listHandlePending = undefined')
|
||||
expect(app).toContain('aria-label="上移清单"')
|
||||
expect(app).toContain('aria-label="下移清单"')
|
||||
expect(app).toContain("moveListWithinScope(sidebarAction.item as TaskList, 'up')")
|
||||
expect(app).toContain("moveListWithinScope(sidebarAction.item as TaskList, 'down')")
|
||||
expect(app).toContain('aria-label="移动到文件夹"')
|
||||
expect(app).toContain('role="menu"')
|
||||
expect(app).toContain('role="menuitem"')
|
||||
expect(app).toContain('移出文件夹')
|
||||
expect(app).not.toContain('aria-label="上移清单"')
|
||||
expect(app).not.toContain('aria-label="下移清单"')
|
||||
expect(app).not.toContain('class="list-editor-position"')
|
||||
expect(app).toContain('v-model="listEditorFolderId"')
|
||||
})
|
||||
|
||||
it('shows drag lift, folder highlighting, and insertion targets', () => {
|
||||
|
||||
Reference in New Issue
Block a user