From 9126842808bc994a011a73f58d99986a677ae4a0 Mon Sep 17 00:00:00 2001
From: "adamlui@protonmail.com" <adamlui@protonmail.com>
Date: Wed, 1 May 2024 00:19:12 -0700
Subject: [PATCH] Updated DOM routine in `chatgpt.clearChats()` to work w/ new
 UI

---
 chatgpt.js | 19 +++++++------------
 1 file changed, 7 insertions(+), 12 deletions(-)

diff --git a/chatgpt.js b/chatgpt.js
index 1c3459f00..6457c70c5 100644
--- a/chatgpt.js
+++ b/chatgpt.js
@@ -428,21 +428,16 @@ const chatgpt = { // eslint-disable-line no-redeclare
             try { await chatgpt.getChatData(); } catch { return; } // check if chat history exists
             chatgpt.menu.open();
             setTimeout(() => {
-                const menuItems = document.querySelectorAll('a[role="menuitem"]') || [];
-                for (const menuItem of menuItems)
-                    if (/settings/i.test(menuItem.text)) { menuItem.click(); break; }
+                const settingsBtn = document.querySelector(
+                    'a[role="menuitem"] svg path[d*="M11.6439 3C10.9352"]').parentNode.parentNode
+                if (settingsBtn) settingsBtn.click()
                 setTimeout(() => { // clear chats
-                    const settingsBtns = document.querySelectorAll('[id*=radix] button');
-                    for (const settingsBtn of settingsBtns)
-                        if (/^clear/i.test(settingsBtn.textContent)) { settingsBtn.click(); break; }
+                    const settingsBtns = document.querySelectorAll('[id*=radix] button'),
+                          deleteBtn = settingsBtns[settingsBtns.length - 1];
+                    if (deleteBtn) deleteBtn.click()
                     setTimeout(() => { // confirm clear
-                        document.querySelector('[id*=radix] button').click();
-                        setTimeout(() => {
-                            exitMenu();
-                            try { document.querySelector('#prompt-textarea').focus(); } catch (err) {}
-                        }, 10);
+                        document.querySelector('button[class*="danger"').click();
             }, 10); }, 333); }, 10);
-            const exitMenu = () => { document.querySelector('div[id*=radix] button').click(); };
 
         } else { // API method
         // NOTE: DOM is not updated to reflect new empty chat list (until session refresh)