Skip to content

Commit 9e992ae

Browse files
authored
feat(ui5-search-item): add delete search item functionality
1 parent 524e986 commit 9e992ae

File tree

5 files changed

+32
-11
lines changed

5 files changed

+32
-11
lines changed

packages/fiori/cypress/specs/Search.cy.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -390,10 +390,10 @@ describe("Properties", () => {
390390
.should("be.visible");
391391
});
392392

393-
it("displays item's delete button on hover", () => {
393+
it("displays item's delete button on hover if deletable is true", () => {
394394
cy.mount(
395395
<Search>
396-
<SearchItem text="Item 1"/>
396+
<SearchItem text="Item 1" deletable/>
397397
<SearchItem text="Item 2"/>
398398
</Search>
399399
);
@@ -404,16 +404,26 @@ describe("Properties", () => {
404404
.realClick();
405405

406406
cy.realPress("I");
407+
408+
cy.get("[ui5-search-item]")
409+
.eq(0)
410+
.realHover();
407411

408412
cy.get("[ui5-search-item]")
413+
.eq(0)
414+
.shadow()
415+
.find(".ui5-search-item-selected-delete")
416+
.should("be.visible");
417+
418+
cy.get("[ui5-search-item]")
409419
.eq(1)
410420
.realHover();
411421

412422
cy.get("[ui5-search-item]")
413423
.eq(1)
414424
.shadow()
415425
.find(".ui5-search-item-selected-delete")
416-
.should("be.visible");
426+
.should("not.exist");
417427
});
418428
});
419429

@@ -811,7 +821,7 @@ describe("Events", () => {
811821
}
812822
cy.mount(
813823
<Search>
814-
<SearchItem text="Item 1" icon={history} onDelete={onDelete}/>
824+
<SearchItem text="Item 1" icon={history} deletable onDelete={onDelete}/>
815825
</Search>
816826
);
817827

packages/fiori/src/SearchItem.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ class SearchItem extends ListItemBase {
8181
@property({ type: Boolean })
8282
selected = false;
8383

84+
/**
85+
* Defines whether the search item is deletable.
86+
* @default false
87+
* @public
88+
*/
89+
@property({ type: Boolean })
90+
deletable = false;
91+
8492
/**
8593
* Defines the scope of the search item
8694
* @default undefined

packages/fiori/src/SearchItemTemplate.tsx

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ export default function SearchFieldTemplate(this: SearchItem) {
4343

4444
<span part="subtitle" class="ui5-search-item-description">{this.description}</span>
4545
</div>
46-
<Button class="ui5-search-item-selected-delete" design={ButtonDesign.Transparent} icon={decline} onClick={this._onDeleteButtonClick}></Button>
46+
47+
{this.deletable &&
48+
<Button class="ui5-search-item-selected-delete" design={ButtonDesign.Transparent} icon={decline} onClick={this._onDeleteButtonClick}></Button>
49+
}
4750
</div>
4851
</div>
4952
</li >

packages/fiori/src/themes/SearchItem.css

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,12 @@
2424
flex: 1;
2525
}
2626

27-
.ui5-search-item-selected-delete {
27+
:host([desktop]) .ui5-search-item-selected-delete {
2828
display: none;
2929
}
3030

31-
:host([selected]:hover),
32-
:host(:focus-within),
33-
:host(:hover) {
31+
:host(:hover),
32+
:host(:focus-within) {
3433
.ui5-search-item-selected-delete {
3534
display: inline-block;
3635
}

packages/fiori/test/pages/Search.html

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@
3333
<ui5-search show-clear-icon>
3434
<ui5-search-message-area slot="messageArea" description="You can try the following" text="Oh, there are no results"></ui5-search-message-area>
3535

36+
<ui5-search-item text="List Item Deletable" icon="history" deletable></ui5-search-item>
3637
<ui5-search-item text="List Item" icon="history" ></ui5-search-item>
37-
<ui5-search-item text="List Item" icon="history" ></ui5-search-item>
38-
<ui5-search-item text="List Item" icon="history" ></ui5-search-item>
38+
<ui5-search-item text="List Item Deletable" icon="history" deletable></ui5-search-item>
3939
<ui5-search-item text="List Item" icon="history" ></ui5-search-item>
4040
<ui5-search-item text="List Item" icon="globe" ></ui5-search-item>
4141
<ui5-search-item text="List Item" icon="globe" ></ui5-search-item>
@@ -296,6 +296,7 @@
296296
const searchItem = document.createElement('ui5-search-item');
297297
searchItem.text = item.name;
298298
searchItem.icon = 'search';
299+
searchItem.deletable = true;
299300
searchItem.addEventListener('ui5-delete', onDelete);
300301
parent.appendChild(searchItem);
301302
});

0 commit comments

Comments
 (0)