Skip to content

Commit ab798a7

Browse files
committed
Updated sidebar toggle logic/styles to work w/ UI update + mobile again ↞ [auto-sync from https://github.com/adamlui/ai-web-extensions/tree/main/chatgpt-auto-talk]
1 parent 9ad32cb commit ab798a7

File tree

1 file changed

+23
-21
lines changed

1 file changed

+23
-21
lines changed

chatgpt/chatgpt-auto-talk/chatgpt-auto-talk.user.js

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@
225225
// @description:zu Dlala izimpendulo ze-ChatGPT ngokuzenzakalela
226226
// @author Adam Lui
227227
// @namespace https://github.com/adamlui
228-
// @version 2025.4.28.1
228+
// @version 2025.4.28.2
229229
// @license MIT
230230
// @icon https://assets.chatgptautotalk.com/images/icons/openai/black/icon48.png?v=9f1ed3c
231231
// @icon64 https://assets.chatgptautotalk.com/images/icons/openai/black/icon64.png?v=9f1ed3c
@@ -745,6 +745,7 @@
745745
class: `${app.slug}-sidebar-toggle`,
746746

747747
create() {
748+
const firstLink = chatgpt.getNewChatLink()
748749

749750
// Init toggle elems
750751
this.div = dom.create.elem('div', { class: this.class })
@@ -760,11 +761,11 @@
760761

761762
// Stylize elems
762763
this.stylize() // create/append stylesheet
763-
if (env.ui.firstLink) { // borrow/assign classes from sidebar elems
764-
const firstIcon = env.ui.firstLink.querySelector('div:first-child'),
765-
firstLabel = env.ui.firstLink.querySelector('div:nth-child(2)')
764+
if (firstLink) { // borrow/assign classes from sidebar elems
765+
const firstIcon = firstLink.querySelector('div:first-child'),
766+
firstLabel = firstLink.querySelector('div:nth-child(2)')
766767
this.div.classList.add(
767-
...env.ui.firstLink.classList, ...(firstLabel?.classList || []))
768+
...firstLink.classList, ...(firstLabel?.classList || []))
768769
this.div.querySelector('img')?.classList.add(...(firstIcon?.classList || []))
769770
}
770771

@@ -783,6 +784,7 @@
783784
},
784785

785786
stylize() {
787+
const firstLink = chatgpt.getNewChatLink()
786788
document.head.append(this.styles = dom.create.style(
787789
`:root { /* vars */
788790
--switch-enabled-bg-color: #ad68ff ; --switch-disabled-bg-color: #ccc ;
@@ -795,15 +797,16 @@
795797
+ `.${this.class} { /* parent div */
796798
max-height: 37px ; margin: 2px 0 ; user-select: none ; cursor: pointer ;
797799
opacity: 1 !important ; /* overcome OpenAI click-dim */
800+
justify-content: unset ; /* overcome OpenAI .justify-center */
798801
flex-grow: unset } /* overcome OpenAI .grow */
799802
.${this.class} > img { /* navicon */
800803
width: 1.25rem ; height: 1.25rem ; margin-left: 2px ; margin-right: 4px }
801804
.${this.class} > input { display: none } /* hide checkbox */
802805
.${this.class} > span { /* switch span */
803806
position: relative ; width: 30px ; height: 15px ; border-radius: 28px ;
804807
background-color: var(--switch-disabled-bg-color) ;
805-
bottom: ${ env.ui.firstLink ? 0 : -0.15 }em ;
806-
left: ${ env.browser.isMobile ? 169 : env.ui.firstLink ? 154 : 160 }px ;
808+
bottom: ${ firstLink ? '0.5px' : '-0.15em' } ;
809+
left: ${ env.browser.isMobile ? 169 : firstLink ? 154 : 160 }px ;
807810
transition: 0.4s ; -webkit-transition: 0.4s ; -moz-transition: 0.4s ;
808811
-o-transition: 0.4s ; -ms-transition: 0.4s }
809812
.${this.class} > span.enabled { /* switch on */
@@ -827,10 +830,9 @@
827830
transition: 0.4s ; -webkit-transition: 0.4s ; -moz-transition: 0.4s ;
828831
-o-transition: 0.4s ; -ms-transition: 0.4s }
829832
.${this.class} > label { /* toggle label */
830-
cursor: pointer ; overflow: hidden ; text-overflow: ellipsis ;
831-
width: ${ env.browser.isMobile ? 201 : 148 }px ;
832-
margin-left: -${ env.ui.firstLink ? 41 : 23 }px ; /* left-shift to navicon */
833-
${ env.ui.firstLink ? '' : 'font-size: 0.875rem ; font-weight: 600' }}`
833+
cursor: pointer ; overflow: hidden ; text-overflow: ellipsis ; white-space: nowrap ;
834+
color: black ; width: 153px ; margin-left: -22px ;
835+
${ firstLink ? 'font-size: var(--text-sm)' : 'font-size: 0.875rem ; font-weight: 600' }}`
834836

835837
// Dark scheme mods
836838
+ `.${this.class}.dark > span.enabled { /* switch on */
@@ -845,15 +847,16 @@
845847
.${this.class}.dark > span > span { /* knob span */
846848
box-shadow: var(--knob-box-shadow-dark) ; /* make 3D-er */
847849
-webkit-box-shadow: var(--knob-box-shadow-dark) ;
848-
-moz-box-shadow: var(--knob-box-shadow-dark) }`
850+
-moz-box-shadow: var(--knob-box-shadow-dark) }
851+
.${this.class}.dark > label { color: white } /* toggle label */`
849852
))
850853
},
851854

852855
insert() {
853-
if (this.status?.startsWith('insert') || document.querySelector(`.${this.class}`)) return
854-
const sidebar = document.querySelectorAll('nav')[+env.browser.isMobile] ; if (!sidebar) return
856+
const sidebar = document.querySelector(chatgpt.selectors.sidebar)
857+
if (!sidebar || this.status?.startsWith('insert') || document.querySelector(`.${this.class}`)) return
855858
this.status = 'inserting' ; if (!this.div) this.create()
856-
sidebar.children[1].before(this.div) ; this.status = 'inserted'
859+
sidebar.querySelector('div#sidebar-header').after(this.div) ; this.status = 'inserted'
857860
},
858861

859862
update: {
@@ -901,9 +904,7 @@
901904
toggles.sidebar.update.navicon({ preload: true }) // preload sidebar NAVICON variants
902905

903906
// Init BROWSER/UI props
904-
await Promise.race([chatgpt.isLoaded(), new Promise(resolve => setTimeout(resolve, 5000))]) // initial UI loaded
905-
await chatgpt.sidebar.isLoaded()
906-
env.ui.firstLink = chatgpt.getNewChatLink();
907+
await Promise.race([chatgpt.isLoaded(), new Promise(resolve => setTimeout(resolve, 5000))]); // initial UI loaded
907908

908909
// Add RISING PARTICLES styles
909910
['rpg', 'rpw'].forEach(cssType => document.head.append(dom.create.style(GM_getResourceText(`${cssType}CSS`))))
@@ -924,9 +925,10 @@
924925

925926
// Monitor NODE CHANGES to maintain sidebar toggle visibility
926927
new MutationObserver(() => {
927-
if (!config.toggleHidden && !document.querySelector(`.${toggles.sidebar.class}`)
928-
&& toggles.sidebar.status != 'inserting') {
929-
toggles.sidebar.status = 'missing' ; toggles.sidebar.insert() }
928+
if (!config.toggleHidden && document.querySelector(chatgpt.selectors.sidebar)
929+
&& !document.querySelector(`.${toggles.sidebar.class}`)
930+
&& toggles.sidebar.status != 'inserting'
931+
) { toggles.sidebar.status = 'missing' ; toggles.sidebar.insert() }
930932
}).observe(document.body, { attributes: true, subtree: true })
931933

932934
// Monitor SCHEME PREF changes to update sidebar toggle + modal colors

0 commit comments

Comments
 (0)