mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-09-23 20:18:42 +08:00
fix: mobile mult-select tag delete (#14172)
fix #14167 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## New Features * Added Backspace key support to delete the last selected tag when the input field is empty * Added delete icon buttons next to each tag for quick removal * Features available on both mobile and desktop tag pickers <sub>✏️ Tip: You can customize this high-level summary in your review settings.</sub> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -484,6 +484,18 @@ const popMobileTagSelect = (target: PopupTarget, ops: TagSelectOptions) => {
|
|||||||
const onInput = (e: InputEvent) => {
|
const onInput = (e: InputEvent) => {
|
||||||
tagManager.text$.value = (e.target as HTMLInputElement).value;
|
tagManager.text$.value = (e.target as HTMLInputElement).value;
|
||||||
};
|
};
|
||||||
|
const onKeydown = (e: KeyboardEvent) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
const inputValue = (e.target as HTMLInputElement).value.trim();
|
||||||
|
if (e.key === 'Backspace' && inputValue === '') {
|
||||||
|
const values = tagManager.value$.value;
|
||||||
|
const lastId = values[values.length - 1];
|
||||||
|
if (lastId) {
|
||||||
|
e.preventDefault();
|
||||||
|
tagManager.deleteTag(lastId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
return popMenu(target, {
|
return popMenu(target, {
|
||||||
options: {
|
options: {
|
||||||
onClose: () => {
|
onClose: () => {
|
||||||
@@ -511,11 +523,21 @@ const popMobileTagSelect = (target: PopupTarget, ops: TagSelectOptions) => {
|
|||||||
});
|
});
|
||||||
return html` <div class="${tagContainerStyle}" style=${style}>
|
return html` <div class="${tagContainerStyle}" style=${style}>
|
||||||
<div class="${tagTextStyle}">${option.value}</div>
|
<div class="${tagTextStyle}">${option.value}</div>
|
||||||
|
<div
|
||||||
|
class="${tagDeleteIconStyle}"
|
||||||
|
@click="${(e: MouseEvent) => {
|
||||||
|
e.stopPropagation();
|
||||||
|
tagManager.deleteTag(id);
|
||||||
|
}}"
|
||||||
|
>
|
||||||
|
${CloseIcon()}
|
||||||
|
</div>
|
||||||
</div>`;
|
</div>`;
|
||||||
})}
|
})}
|
||||||
<input
|
<input
|
||||||
.value="${tagManager.text$.value}"
|
.value="${tagManager.text$.value}"
|
||||||
@input="${onInput}"
|
@input="${onInput}"
|
||||||
|
@keydown="${onKeydown}"
|
||||||
placeholder="Type here..."
|
placeholder="Type here..."
|
||||||
type="text"
|
type="text"
|
||||||
style="outline: none;border: none;flex:1;min-width: 10px"
|
style="outline: none;border: none;flex:1;min-width: 10px"
|
||||||
|
|||||||
Reference in New Issue
Block a user