Cover Files no-match filter feedback
This commit is contained in:
parent
74c627f706
commit
a540da707d
|
|
@ -199,6 +199,25 @@ test.describe('G: Files Plugin', () => {
|
|||
await expect(page.locator('.files-empty')).toHaveCount(0);
|
||||
});
|
||||
|
||||
test('files explorer shows no-match feedback while filtering', async ({ page }) => {
|
||||
await page.locator('.wt-label').filter({ hasText: 'Project' }).click();
|
||||
await openFilesTool(page);
|
||||
await expect(page.locator('.files-breadcrumb')).toContainText('Project', { timeout: 10000 });
|
||||
|
||||
await page.locator('[data-files-filter]').fill('zzzz-no-matches');
|
||||
|
||||
const emptyState = page.locator('.files-empty');
|
||||
await expect(emptyState).toBeVisible();
|
||||
await expect(emptyState).toContainText('No matches');
|
||||
await expect(emptyState.locator('[data-files-empty-action="clear-filter"]')).toBeVisible();
|
||||
await expect(page.locator('[data-file-name="project-only.txt"]')).toHaveCount(0);
|
||||
|
||||
await emptyState.locator('[data-files-empty-action="clear-filter"]').click();
|
||||
await expect(page.locator('[data-files-filter]')).toHaveValue('');
|
||||
await expect(page.locator('.files-empty')).toHaveCount(0);
|
||||
await expect(page.locator('[data-file-name="project-only.txt"]')).toBeVisible();
|
||||
});
|
||||
|
||||
test('files explorer restores an item from trash metadata', async ({ page }) => {
|
||||
await page.locator('.wt-label').filter({ hasText: 'Project' }).click();
|
||||
await openFilesTool(page);
|
||||
|
|
|
|||
|
|
@ -823,6 +823,27 @@
|
|||
])
|
||||
]);
|
||||
}
|
||||
function noMatchesState() {
|
||||
return e('div', { className: 'files-empty' }, [
|
||||
e('div', {}, ['No matches']),
|
||||
e('div', { className: 'files-empty-actions' }, [
|
||||
e('button', {
|
||||
className: 'files-empty-btn',
|
||||
'data-files-empty-action': 'clear-filter',
|
||||
'data-files-icon': 'refresh',
|
||||
title: 'Clear filter',
|
||||
'aria-label': 'Clear filter',
|
||||
innerHTML: actionSvg('refresh') + '<span>Clear filter</span>',
|
||||
onClick: function () {
|
||||
filter = '';
|
||||
filterInput.value = '';
|
||||
render();
|
||||
list.focus();
|
||||
}
|
||||
}, [])
|
||||
])
|
||||
]);
|
||||
}
|
||||
var backButton = btn('Back', 'back', goBack, 'back');
|
||||
var forwardButton = btn('Forward', 'forward', goForward, 'forward');
|
||||
var upButton = btn('Up', 'up', function () { if (current) nav(parent(current)); }, 'up');
|
||||
|
|
@ -923,7 +944,7 @@
|
|||
list.appendChild(e('div', { className: 'files-header' }, [e('span', {}, ['Name']), e('span', {}, ['Type']), e('span', {}, ['Size']), e('span', {}, ['Modified']), e('span', {}, ['Actions'])]));
|
||||
var shown = visible();
|
||||
if (!shown.length) {
|
||||
list.appendChild(filter ? e('div', { className: 'files-empty' }, ['No matches']) : emptyFolderState());
|
||||
list.appendChild(filter ? noMatchesState() : emptyFolderState());
|
||||
return;
|
||||
}
|
||||
shown.forEach(function (item) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue