mirror of
https://github.com/ankitects/anki.git
synced 2025-09-25 01:06:35 -04:00
Allow correctly adding tags
+ Make taginput unfocusable via Tab => prefer Ctrl+Shift+T
This commit is contained in:
parent
ef8c46045e
commit
50519ea5c8
3 changed files with 15 additions and 6 deletions
|
@ -38,7 +38,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
bind:name
|
bind:name
|
||||||
bind:input
|
bind:input
|
||||||
on:focusout={() => (active = false)}
|
on:focusout={() => (active = false)}
|
||||||
on:update={updateTag}
|
on:tagupdate={updateTag}
|
||||||
on:mount={(event) => event.detail.input.focus()}
|
on:mount={(event) => event.detail.input.focus()}
|
||||||
/>
|
/>
|
||||||
{:else}
|
{:else}
|
||||||
|
|
|
@ -21,6 +21,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
tags.splice(tags.indexOf(detail.name), 1);
|
tags.splice(tags.indexOf(detail.name), 1);
|
||||||
tags = tags;
|
tags = tags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function addTag({ detail }: CustomEvent) {
|
||||||
|
if (!tags.includes(detail.name) && detail.name.length > 0) {
|
||||||
|
tags.push(detail.name);
|
||||||
|
}
|
||||||
|
tags = tags;
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<StickyBottom>
|
<StickyBottom>
|
||||||
|
@ -31,7 +38,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<Tag name={tag} on:tagdelete={deleteTag} />
|
<Tag name={tag} on:tagdelete={deleteTag} />
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
<TagInput bind:input={tagInputNew} name={newName} />
|
<TagInput bind:input={tagInputNew} name={newName} on:tagupdate={addTag} />
|
||||||
</div>
|
</div>
|
||||||
</StickyBottom>
|
</StickyBottom>
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,8 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
}
|
}
|
||||||
|
|
||||||
function onAccept(event: Event): void {
|
function onAccept(event: Event): void {
|
||||||
dispatch("update", { tagname: normalizeTagname(name) });
|
dispatch("tagupdate", { name: normalizeTagname(name) });
|
||||||
|
input.value = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
function dropdownBlur(event: Event, dropdown: Dropdown): void {
|
function dropdownBlur(event: Event, dropdown: Dropdown): void {
|
||||||
|
@ -46,9 +47,9 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
const splitted = pasted.split(" ");
|
const splitted = pasted.split(" ");
|
||||||
const last = splitted.pop();
|
const last = splitted.pop();
|
||||||
for (const token of splitted) {
|
for (const token of splitted) {
|
||||||
const tagname = normalizeTagname(token);
|
const name = normalizeTagname(token);
|
||||||
if (tagname) {
|
if (name) {
|
||||||
dispatch("add", { tagname });
|
dispatch("tagadd", { name });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
name = last!;
|
name = last!;
|
||||||
|
@ -73,6 +74,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
|
||||||
<input
|
<input
|
||||||
bind:this={input}
|
bind:this={input}
|
||||||
type="text"
|
type="text"
|
||||||
|
tabindex="-1"
|
||||||
size="1"
|
size="1"
|
||||||
bind:value={name}
|
bind:value={name}
|
||||||
on:focus={(event) => onFocus(event, dropdown)}
|
on:focus={(event) => onFocus(event, dropdown)}
|
||||||
|
|
Loading…
Reference in a new issue