diff --git a/TableturfBattleClient/src/Pages/DeckEditPage.ts b/TableturfBattleClient/src/Pages/DeckEditPage.ts index d555860..fa6b644 100644 --- a/TableturfBattleClient/src/Pages/DeckEditPage.ts +++ b/TableturfBattleClient/src/Pages/DeckEditPage.ts @@ -113,7 +113,6 @@ function editDeck() { function createDeckEditCardButton(cardNumber: number) { const button = new CardButton(cardDatabase.get(cardNumber)); - button.buttonElement.draggable = true; button.buttonElement.addEventListener('click', () => { for (const button2 of cardList.cardButtons) { button2.checked = button2.card.number == cardNumber; @@ -140,6 +139,15 @@ function createDeckEditCardButton(cardNumber: number) { button.buttonElement.addEventListener('dragover', deckEditCardButton_dragover); button.buttonElement.addEventListener('drop', deckEditCardButton_drop); + const handle = document.createElement('div'); + handle.className = 'handle'; + button.buttonElement.insertBefore(handle, button.buttonElement.firstChild); + if (deckListTouchMode) { + handle.draggable = true; + (button.buttonElement.getElementsByClassName('cardHeader')[0] as HTMLElement).draggable = true; + } else + button.buttonElement.draggable = true; + return button; } diff --git a/TableturfBattleClient/src/Pages/DeckListPage.ts b/TableturfBattleClient/src/Pages/DeckListPage.ts index e661ce2..3ffec1d 100644 --- a/TableturfBattleClient/src/Pages/DeckListPage.ts +++ b/TableturfBattleClient/src/Pages/DeckListPage.ts @@ -113,7 +113,6 @@ function saveDecks() { function createDeckButton(deck: Deck) { const buttonElement = document.createElement('button'); buttonElement.type = 'button'; - buttonElement.draggable = true; const button = new CheckButton(buttonElement); deckButtons.add(button, deck); buttonElement.addEventListener('click', () => { @@ -145,6 +144,7 @@ function createDeckButton(deck: Deck) { handle.className = 'handle'; buttonElement.appendChild(handle); buttonElement.appendChild(document.createTextNode(deck.name)); + (deckListTouchMode ? handle : buttonElement).draggable = true; return button; } @@ -329,7 +329,7 @@ deckRenameButton.addEventListener('click', () => { if (name) { selectedDeck.name = name; deckNameLabel.innerText = name; - deckButtons.entries[decks.indexOf(selectedDeck)].button.buttonElement.innerText = name; + deckButtons.entries[decks.indexOf(selectedDeck)].button.buttonElement.lastChild!.nodeValue = name; saveDecks(); } }); diff --git a/TableturfBattleClient/tableturf.css b/TableturfBattleClient/tableturf.css index 97bd7da..38d8ae5 100644 --- a/TableturfBattleClient/tableturf.css +++ b/TableturfBattleClient/tableturf.css @@ -1374,17 +1374,23 @@ button.dragging { #addDeckControls > button:focus-within { outline: 2px solid var(--special-accent-colour-2); } #addDeckControls > button:is(:active, .checked) { border-color: var(--special-accent-colour-2); } +.handle { + width: 2em; + background: url('assets/grip-horizontal.svg') 0.5em center/1em no-repeat; +} .deckList .handle { position: absolute; - background: url('assets/grip-horizontal.svg') 0.5em center/1em no-repeat; left: 0; right: 0; top: 0; bottom: 0; } - -.touchmode .handle { - width: 2em; +.card .handle { + position: absolute; + left: 0; + right: 0; + top: 0; + height: 3em; } .card.emptySlot {