diff --git a/client/src/modules/front_end_components/Toast.js b/client/src/modules/front_end_components/Toast.js
index 7e4c897..2d77213 100644
--- a/client/src/modules/front_end_components/Toast.js
+++ b/client/src/modules/front_end_components/Toast.js
@@ -3,16 +3,16 @@ export const toast = (
type, positionAtTop = true,
dispelAutomatically = true,
duration = null,
- domChild = false
+ elementBuilder = null // this is meant to be a function that returns a DOM Node
) => {
if (message && type) {
- buildAndInsertMessageElement(message, type, positionAtTop, dispelAutomatically, duration, domChild);
+ buildAndInsertMessageElement(message, type, positionAtTop, dispelAutomatically, duration, elementBuilder);
}
};
-function buildAndInsertMessageElement (message, type, positionAtTop, dispelAutomatically, duration, domChild) {
+function buildAndInsertMessageElement (message, type, positionAtTop, dispelAutomatically, duration, elementBuilder) {
cancelCurrentToast();
- const messageEl = document.createElement('div');
+ const messageEl = elementBuilder ? elementBuilder() : buildDefaultMessageElement();
messageEl.classList.add('info-message');
const positionClass = positionAtTop ? 'toast-top' : 'toast-bottom';
messageEl.classList.add(positionClass);
@@ -56,15 +56,21 @@ function buildAndInsertMessageElement (message, type, positionAtTop, dispelAutom
}
messageEl.setAttribute('id', 'current-info-message');
- if (domChild) {
- messageEl.appendChild(message);
- } else {
- messageEl.innerText = message;
- }
+
+ messageEl.querySelector('#toast-content').innerText = message;
document.body.prepend(messageEl);
}
+function buildDefaultMessageElement () {
+ const messageEl = document.createElement('div');
+ const content = document.createElement('span');
+ content.setAttribute('id', 'toast-content');
+ messageEl.appendChild(content);
+
+ return messageEl;
+}
+
export function cancelCurrentToast () {
const currentMessage = document.getElementById('current-info-message');
if (currentMessage !== null) {
diff --git a/client/src/modules/game_creation/DeckStateManager.js b/client/src/modules/game_creation/DeckStateManager.js
index 018bac2..0cdc68e 100644
--- a/client/src/modules/game_creation/DeckStateManager.js
+++ b/client/src/modules/game_creation/DeckStateManager.js
@@ -197,15 +197,16 @@ export class DeckStateManager {
const minusOneHandler = (e) => {
if (e.type === 'click' || e.code === 'Enter') {
e.preventDefault();
- const toastContent = document.createElement('span');
- toastContent.innerHTML =
- `-1
-
- ()`;
- toastContent.querySelector('#toast-minus-one-name').innerText = sortedDeck[i].role;
- toastContent.querySelector('.toast-minus-role-quantity').innerText = sortedDeck[i].quantity - 1;
+ toast(sortedDeck[i].role + ' ', 'neutral', true, true, 'short', () => {
+ const toastEl = document.createElement('span');
+ toastEl.innerHTML =
+ `-1
+
+ `;
+ toastEl.querySelector('.toast-minus-role-quantity').innerText = '(' + (sortedDeck[i].quantity - 1) + ')';
- toast(toastContent, 'neutral', true, true, 'short', true);
+ return toastEl;
+ });
this.removeCopyOfCard(sortedDeck[i].role);
this.updateDeckStatus();
diff --git a/client/src/modules/game_creation/RoleBox.js b/client/src/modules/game_creation/RoleBox.js
index de9aacd..0e1e290 100644
--- a/client/src/modules/game_creation/RoleBox.js
+++ b/client/src/modules/game_creation/RoleBox.js
@@ -204,15 +204,17 @@ export class RoleBox {
} else {
this.deckManager.addCopyOfCard(name);
}
- const toastContent = document.createElement('span');
- toastContent.innerHTML =
- `+1
-
- ()`;
- toastContent.querySelector('#toast-plus-one-name').innerText = name;
- toastContent.querySelector('.toast-plus-role-quantity').innerText = this.deckManager.getQuantityOfRole(name);
- toast(toastContent, 'neutral', true, true, 'short', true);
+ toast(name + ' ', 'neutral', true, true, 'short', () => {
+ const toastEl = document.createElement('span');
+ toastEl.innerHTML =
+ `+1
+
+ `;
+ toastEl.querySelector('.toast-plus-role-quantity').innerText = ' (' + this.deckManager.getQuantityOfRole(name) + ')';
+
+ return toastEl;
+ });
this.deckManager.updateDeckStatus();
}
diff --git a/client/src/styles/GLOBAL.css b/client/src/styles/GLOBAL.css
index 2b9b2f3..61da69d 100644
--- a/client/src/styles/GLOBAL.css
+++ b/client/src/styles/GLOBAL.css
@@ -133,11 +133,13 @@ textarea {
.toast-plus-role-quantity {
color: #1c8a36;
font-weight: bold;
+ margin-left: 10px;
}
.toast-minus-role-quantity {
color: #e73333;
font-weight: bold;
+ margin-left: 10px;
}
#footer {