|
220 | 220 | // @description:zu *NGOKUPHEPHA* susa ukusetha kabusha ingxoxo yemizuzu eyi-10 + amaphutha enethiwekhi ahlala njalo + Ukuhlolwa kwe-Cloudflare ku-ChatGPT. |
221 | 221 | // @author Adam Lui |
222 | 222 | // @namespace https://github.com/adamlui |
223 | | -// @version 2025.4.28.1 |
| 223 | +// @version 2025.4.28.2 |
224 | 224 | // @license MIT |
225 | 225 | // @icon https://assets.chatgptautorefresh.com/images/icons/openai/black/icon48.png?v=f11a0a8 |
226 | 226 | // @icon64 https://assets.chatgptautorefresh.com/images/icons/openai/black/icon64.png?v=f11a0a8 |
|
791 | 791 | class: `${app.slug}-sidebar-toggle`, |
792 | 792 |
|
793 | 793 | create() { |
| 794 | + const firstLink = chatgpt.getNewChatLink() |
794 | 795 |
|
795 | 796 | // Init toggle elems |
796 | 797 | this.div = dom.create.elem('div', { class: this.class }) |
|
806 | 807 |
|
807 | 808 | // Stylize elems |
808 | 809 | this.stylize() // create/append stylesheet |
809 | | - if (env.ui.firstLink) { // borrow/assign classes from sidebar elems |
810 | | - const firstIcon = env.ui.firstLink.querySelector('div:first-child'), |
811 | | - firstLabel = env.ui.firstLink.querySelector('div:nth-child(2)') |
| 810 | + if (firstLink) { // borrow/assign classes from sidebar elems |
| 811 | + const firstIcon = firstLink.querySelector('div:first-child'), |
| 812 | + firstLabel = firstLink.querySelector('div:nth-child(2)') |
812 | 813 | this.div.classList.add( |
813 | | - ...env.ui.firstLink.classList, ...(firstLabel?.classList || [])) |
| 814 | + ...firstLink.classList, ...(firstLabel?.classList || [])) |
814 | 815 | this.div.querySelector('img')?.classList.add(...(firstIcon?.classList || [])) |
815 | 816 | } |
816 | 817 |
|
|
828 | 829 | }, |
829 | 830 |
|
830 | 831 | stylize() { |
| 832 | + const firstLink = chatgpt.getNewChatLink() |
831 | 833 | document.head.append(this.styles = dom.create.style( |
832 | 834 | `:root { /* vars */ |
833 | 835 | --switch-enabled-bg-color: #ad68ff ; --switch-disabled-bg-color: #ccc ; |
|
840 | 842 | + `.${this.class} { /* parent div */ |
841 | 843 | max-height: 37px ; margin: 2px 0 ; user-select: none ; cursor: pointer ; |
842 | 844 | opacity: 1 !important ; /* overcome OpenAI click-dim */ |
| 845 | + justify-content: unset ; /* overcome OpenAI .justify-center */ |
843 | 846 | flex-grow: unset } /* overcome OpenAI .grow */ |
844 | 847 | .${this.class} > img { /* navicon */ |
845 | 848 | width: 1.25rem ; height: 1.25rem ; margin-left: 2px ; margin-right: 4px } |
846 | 849 | .${this.class} > input { display: none } /* hide checkbox */ |
847 | 850 | .${this.class} > span { /* switch span */ |
848 | 851 | position: relative ; width: 30px ; height: 15px ; border-radius: 28px ; |
849 | 852 | background-color: var(--switch-disabled-bg-color) ; |
850 | | - bottom: ${ env.ui.firstLink ? 0 : -0.15 }em ; |
851 | | - left: ${ env.browser.isMobile ? 169 : env.ui.firstLink ? 154 : 160 }px ; |
| 853 | + bottom: ${ firstLink ? '0.5px' : '-0.15em' } ; |
| 854 | + left: ${ env.browser.isMobile || firstLink ? 169 : 160 }px ; |
852 | 855 | transition: 0.4s ; -webkit-transition: 0.4s ; -moz-transition: 0.4s ; |
853 | 856 | -o-transition: 0.4s ; -ms-transition: 0.4s } |
854 | 857 | .${this.class} > span.enabled { /* switch on */ |
|
872 | 875 | transition: 0.4s ; -webkit-transition: 0.4s ; -moz-transition: 0.4s ; |
873 | 876 | -o-transition: 0.4s ; -ms-transition: 0.4s } |
874 | 877 | .${this.class} > label { /* toggle label */ |
875 | | - cursor: pointer ; overflow: hidden ; text-overflow: ellipsis ; |
876 | | - width: ${ env.browser.isMobile ? 201 : 148 }px ; |
877 | | - margin-left: -${ env.ui.firstLink ? 41 : 23 }px ; /* left-shift to navicon */ |
878 | | - ${ env.ui.firstLink ? '' : 'font-size: 0.875rem ; font-weight: 600' }}` |
| 878 | + cursor: pointer ; overflow: hidden ; text-overflow: ellipsis ; white-space: nowrap ; |
| 879 | + color: black ; width: 153px ; margin-left: -22px ; |
| 880 | + ${ firstLink ? 'font-size: var(--text-sm)' : 'font-size: 0.875rem ; font-weight: 600' }}` |
879 | 881 |
|
880 | 882 | // Dark scheme mods |
881 | 883 | + `.${this.class}.dark > span.enabled { /* switch on */ |
|
890 | 892 | .${this.class}.dark > span > span { /* knob span */ |
891 | 893 | box-shadow: var(--knob-box-shadow-dark) ; /* make 3D-er */ |
892 | 894 | -webkit-box-shadow: var(--knob-box-shadow-dark) ; |
893 | | - -moz-box-shadow: var(--knob-box-shadow-dark) }` |
| 895 | + -moz-box-shadow: var(--knob-box-shadow-dark) } |
| 896 | + .${this.class}.dark > label { color: white } /* toggle label */` |
894 | 897 | )) |
895 | 898 | }, |
896 | 899 |
|
897 | 900 | insert() { |
898 | | - if (this.status?.startsWith('insert') || document.querySelector(`.${this.class}`)) return |
899 | | - const sidebar = document.querySelectorAll('nav')[+env.browser.isMobile] ; if (!sidebar) return |
| 901 | + const sidebar = document.querySelector(chatgpt.selectors.sidebar) |
| 902 | + if (!sidebar || this.status?.startsWith('insert') || document.querySelector(`.${this.class}`)) return |
900 | 903 | this.status = 'inserting' ; if (!this.div) this.create() |
901 | | - sidebar.children[1].before(this.div) ; this.status = 'inserted' |
| 904 | + sidebar.querySelector('div#sidebar-header').after(this.div) ; this.status = 'inserted' |
902 | 905 | }, |
903 | 906 |
|
904 | 907 | update: { |
|
951 | 954 | toggles.sidebar.update.navicon({ preload: true }) // preload sidebar NAVICON variants |
952 | 955 |
|
953 | 956 | // Init UI props |
954 | | - await Promise.race([chatgpt.isLoaded(), new Promise(resolve => setTimeout(resolve, 5000))]) // initial UI loaded |
955 | | - await chatgpt.sidebar.isLoaded() |
956 | | - env.ui.firstLink = chatgpt.getNewChatLink(); |
| 957 | + await Promise.race([chatgpt.isLoaded(), new Promise(resolve => setTimeout(resolve, 5000))]); // initial UI loaded |
957 | 958 |
|
958 | 959 | // Add RISING PARTICLES styles |
959 | 960 | ['rpg', 'rpw'].forEach(cssType => document.head.append(dom.create.style(GM_getResourceText(`${cssType}CSS`)))) |
|
984 | 985 |
|
985 | 986 | // Monitor NODE CHANGES to maintain sidebar toggle visibility |
986 | 987 | new MutationObserver(() => { |
987 | | - if (!config.toggleHidden && !document.querySelector(`.${toggles.sidebar.class}`) |
988 | | - && toggles.sidebar.status != 'inserting') { |
989 | | - toggles.sidebar.status = 'missing' ; toggles.sidebar.insert() } |
| 988 | + if (!config.toggleHidden && document.querySelector(chatgpt.selectors.sidebar) |
| 989 | + && !document.querySelector(`.${toggles.sidebar.class}`) |
| 990 | + && toggles.sidebar.status != 'inserting' |
| 991 | + ) { toggles.sidebar.status = 'missing' ; toggles.sidebar.insert() } |
990 | 992 | }).observe(document.body, { attributes: true, subtree: true }) |
991 | 993 |
|
992 | 994 | // Monitor SCHEME PREF changes to update sidebar toggle + modal colors |
|
0 commit comments