diff --git a/src/apps/dashboard/static/apps/scripts/game-kit.js b/src/apps/dashboard/static/apps/scripts/game-kit.js index 748b0e6..8a0571f 100644 --- a/src/apps/dashboard/static/apps/scripts/game-kit.js +++ b/src/apps/dashboard/static/apps/scripts/game-kit.js @@ -3,13 +3,8 @@ var dialog = document.getElementById('id_kit_bag_dialog'); if (!btn || !dialog) return; - dialog.addEventListener('close', function () { - btn.classList.remove('active'); - clearSelection(); - }); - btn.addEventListener('click', function () { - if (btn.classList.contains('active')) { + if (dialog.hasAttribute('open')) { dialog.removeAttribute('open'); btn.classList.remove('active'); clearSelection(); @@ -32,18 +27,22 @@ // Escape key document.addEventListener('keydown', function (e) { - if (e.key === 'Escape' && dialog.open) { - dialog.close(); + if (e.key === 'Escape' && dialog.hasAttribute('open')) { + dialog.removeAttribute('open'); + btn.classList.remove('active'); + clearSelection(); } }); // Click outside (but not on the rails button — let that flow through) document.addEventListener('click', function (e) { - if (!dialog.open) return; + if (!dialog.hasAttribute('open')) return; if (dialog.contains(e.target)) return; if (e.target === btn || btn.contains(e.target)) return; if (e.target.closest('button.token-rails')) return; - dialog.close(); + dialog.removeAttribute('open'); + btn.classList.remove('active'); + clearSelection(); }); // Inject token_id before token-rails form submits @@ -59,7 +58,7 @@ hidden.name = 'token_id'; hidden.value = window._kitTokenId; form.appendChild(hidden); - if (dialog.open) dialog.close(); + if (dialog.hasAttribute('open')) dialog.removeAttribute('open'); }); function attachCardListeners() { diff --git a/src/apps/dashboard/tests/integrated/test_wallet_views.py b/src/apps/dashboard/tests/integrated/test_wallet_views.py index a503bd7..c2a0771 100644 --- a/src/apps/dashboard/tests/integrated/test_wallet_views.py +++ b/src/apps/dashboard/tests/integrated/test_wallet_views.py @@ -32,7 +32,7 @@ class WalletViewTest(TestCase): [_] = self.parsed.cssselect("#id_coin_on_a_string") def test_wallet_page_shows_free_token(self): - [_] = self.parsed.cssselect("#id_free_token_0") + [_] = self.parsed.cssselect("#id_free_token") def test_wallet_page_shows_payment_methods_section(self): [_] = self.parsed.cssselect("#id_add_payment_method") diff --git a/src/apps/gameboard/tests/integrated/test_views.py b/src/apps/gameboard/tests/integrated/test_views.py index ffdcc5f..35e5355 100644 --- a/src/apps/gameboard/tests/integrated/test_views.py +++ b/src/apps/gameboard/tests/integrated/test_views.py @@ -48,7 +48,7 @@ class GameboardViewTest(TestCase): [_] = self.parsed.cssselect("#id_game_kit #id_kit_coin_on_a_string") def test_game_kit_has_free_token(self): - [_] = self.parsed.cssselect("#id_game_kit #id_kit_free_token_0") + [_] = self.parsed.cssselect("#id_game_kit #id_kit_free_token") def test_game_kit_has_card_deck_placeholder(self): [_] = self.parsed.cssselect("#id_game_kit #id_kit_card_deck") diff --git a/src/functional_tests/test_gameboard.py b/src/functional_tests/test_gameboard.py index 8b8635c..4fd5e75 100644 --- a/src/functional_tests/test_gameboard.py +++ b/src/functional_tests/test_gameboard.py @@ -69,7 +69,7 @@ class GameboardNavigationTest(FunctionalTest): self.assertIn("Admit 1 Entry", coin_tooltip) self.assertIn("and another after that", coin_tooltip) # 7. Assert 1× Free Token (complimentary) present in kit - free_token = self.browser.find_element(By.ID, "id_kit_free_token_0") + free_token = self.browser.find_element(By.ID, "id_kit_free_token") # 8. Hover over it; assert tooltip shows name, entry text & expiry date ActionChains(self.browser).move_to_element(free_token).perform() self.wait_for( diff --git a/src/functional_tests/test_wallet.py b/src/functional_tests/test_wallet.py index b1cdb07..70dfa3c 100644 --- a/src/functional_tests/test_wallet.py +++ b/src/functional_tests/test_wallet.py @@ -62,7 +62,7 @@ class WalletDisplayTest(FunctionalTest): self.assertIn("Admit 1 Entry", coin_tooltip) self.assertIn("no expiry", coin_tooltip) # 10. Assert ×1 Free Token present (complimentary on signup) - free_token = self.browser.find_element(By.ID, "id_free_token_0") + free_token = self.browser.find_element(By.ID, "id_free_token") # 11. Hover over it; assert tooltip shows name, entry text, expiry date ActionChains(self.browser).move_to_element(free_token).perform() self.wait_for( diff --git a/src/static_src/scss/_game-kit.scss b/src/static_src/scss/_game-kit.scss index b49ba08..8435580 100644 --- a/src/static_src/scss/_game-kit.scss +++ b/src/static_src/scss/_game-kit.scss @@ -15,7 +15,6 @@ background-color: rgba(var(--priUser), 1); border: 0.15rem solid rgba(var(--secUser), 1); - &:hover, &.active { color: rgba(var(--quaUser), 1); border-color: rgba(var(--quaUser), 1);