From 5cd54ee4c422015e8b5e727941e06ffd1fa2f29c Mon Sep 17 00:00:00 2001 From: "adamlui@protonmail.com" Date: Fri, 17 May 2024 00:00:17 -0700 Subject: [PATCH] Added `chatgpt.sidebar.isLoaded()` --- chatgpt.js | 10 +++++++++- docs/USERGUIDE.md | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/chatgpt.js b/chatgpt.js index 61dfbdb6c..b2bea30cc 100644 --- a/chatgpt.js +++ b/chatgpt.js @@ -1767,7 +1767,15 @@ const chatgpt = { // eslint-disable-line no-redeclare .some(child => child.style.transform.includes('translateY')); for (const btn of document.querySelectorAll(navBtnSelector)) if (isToggleBtn(btn)) { btn.click(); return; } - } + }, + + isloaded: function() { + return new Promise(resolve => { + (function checkIsLoaded() { + if (document.querySelector('nav a[href="/"]')) resolve(true); + else setTimeout(checkIsLoaded, 100); + })(); + });} }, startNewChat: function() { try { this.getNewChatButton().click(); } catch (err) { console.error(err.message); }}, diff --git a/docs/USERGUIDE.md b/docs/USERGUIDE.md index 58260a9e0..2bf79e9f8 100644 --- a/docs/USERGUIDE.md +++ b/docs/USERGUIDE.md @@ -137,6 +137,7 @@ - [hide](#hide) - [show](#show) - [toggle](#toggle-2) + - [isloaded](#isloaded-async-2) # Importing the library @@ -1838,6 +1839,19 @@ Example code: chatgpt.sidebar.toggle(); ``` +### isLoaded `async` + +Resolves a promise when the ChatGPT sidebar has finished loading. + +Example code: + +```js +(async () => { + await chatgpt.sidebar.isLoaded(); + console.log('ChatGPT sidebar has finished loading.'); +})(); +``` +