Twitch Game to Steam Search

Opens a new tab with a Steam search while navigating to the game page on Twitch.tv

// ==UserScript==
// @name         Twitch Game to Steam Search
// @namespace    http://tampermonkey.net/
// @version      1.1
// @description  Opens a new tab with a Steam search while navigating to the game page on Twitch.tv
// @author       SuperRyan14
// @match        https://www.twitch.tv/*
// @grant        none
// @run-at       document-end
// @license MIT
// ==/UserScript==

(function() {
    'use strict';

    function handleGameClick(event) {
        const gameName = event.currentTarget.querySelector('span').textContent.trim();
        const encodedGameName = encodeURIComponent(gameName);
        const steamSearchURL = `https://store.steampowered.com/search/?term=${encodedGameName}`;
        window.open(steamSearchURL, '_blank');
    }

    function addEventListenersToGameTitles() {
        const gameTitleElements = document.querySelectorAll('a[data-a-target="stream-game-link"]');
        gameTitleElements.forEach(element => {
            element.removeEventListener('click', handleGameClick);
            element.addEventListener('click', handleGameClick);
        });
    }

    function observeDOMChanges() {
        const observer = new MutationObserver(() => {
            addEventListenersToGameTitles();
        });

        observer.observe(document.body, {
            childList: true,
            subtree: true
        });
    }

    addEventListenersToGameTitles();
    observeDOMChanges();
})();