diff --git a/src/components/deck-card-bullet-list.vue b/src/components/deck-card-bullet-list.vue index c4a2506..cbb7157 100644 --- a/src/components/deck-card-bullet-list.vue +++ b/src/components/deck-card-bullet-list.vue @@ -1,6 +1,11 @@ @@ -10,6 +15,30 @@ import { Component, Prop, Vue } from 'vue-property-decorator' @Component export default class DeckCardBulletList extends Vue { @Prop() public readonly params!: string[] + @Prop() public readonly editable!: boolean + + private addEntry (index: number) { + const newParams = [...this.params] + newParams.splice(index + 1, 0, '') + this.$emit('replace', newParams) + } + + private removeEntry (index: number) { + const newParams = [...this.params] + newParams.splice(index, 1) + this.$emit('replace', newParams) + } + + private handleKey (index: number, event: KeyboardEvent) { + const { key, shiftKey } = event + if (key === 'Enter' && shiftKey) { + event.preventDefault() + this.addEntry(index) + } else if (key === 'Backspace') { + const text = (event.target as HTMLElement).innerText + if (text.trim() === '') this.removeEntry(index) + } + } } diff --git a/src/components/deck-card.vue b/src/components/deck-card.vue index 1a44fe8..0ceb424 100644 --- a/src/components/deck-card.vue +++ b/src/components/deck-card.vue @@ -15,12 +15,13 @@