@@ -8,19 +8,46 @@ function showStatus(message, type) {
88 } , 3000 ) ;
99}
1010
11- document . addEventListener ( 'DOMContentLoaded' , async ( ) => {
12- const darkMode = await browser . storage . local . get ( 'darkMode' ) ;
13- const darkModeCheckbox = document . getElementById ( 'dark-mode' ) ;
14- darkModeCheckbox . checked = darkMode . darkMode || false ;
15- darkModeCheckbox . addEventListener ( 'change' , async ( ) => {
16- await browser . storage . local . set ( { darkMode : darkModeCheckbox . checked } ) ;
17- showStatus ( 'Settings saved' , 'success' ) ;
11+ async function getStorageData ( key ) {
12+ return new Promise ( ( resolve ) => {
13+ if ( typeof browser !== 'undefined' ) {
14+ browser . storage . local . get ( key ) . then ( resolve ) ;
15+ } else if ( typeof chrome !== 'undefined' ) {
16+ chrome . storage . local . get ( key , resolve ) ;
17+ }
1818 } ) ;
19+ }
1920
20- const saveButton = document . getElementById ( 'save' ) ;
21- saveButton . addEventListener ( 'click' , async ( ) => {
22- const darkMode = darkModeCheckbox . checked ;
23- await browser . storage . local . set ( { darkMode } ) ;
24- showStatus ( 'Settings saved' , 'success' ) ;
21+ async function setStorageData ( data ) {
22+ return new Promise ( ( resolve ) => {
23+ if ( typeof browser !== 'undefined' ) {
24+ browser . storage . local . set ( data ) . then ( resolve ) ;
25+ } else if ( typeof chrome !== 'undefined' ) {
26+ chrome . storage . local . set ( data , resolve ) ;
27+ }
2528 } ) ;
29+ }
30+
31+ document . addEventListener ( 'DOMContentLoaded' , async ( ) => {
32+ try {
33+ const darkModeData = await getStorageData ( 'darkMode' ) ;
34+ const darkModeCheckbox = document . getElementById ( 'dark-mode' ) ;
35+ darkModeCheckbox . checked = darkModeData . darkMode || false ;
36+
37+ darkModeCheckbox . addEventListener ( 'change' , async ( ) => {
38+ await setStorageData ( { darkMode : darkModeCheckbox . checked } ) ;
39+ showStatus ( 'Settings saved' , 'success' ) ;
40+ } ) ;
41+
42+ const saveButton = document . getElementById ( 'save' ) ;
43+ saveButton . addEventListener ( 'click' , async ( event ) => {
44+ event . preventDefault ( ) ;
45+ const darkMode = darkModeCheckbox . checked ;
46+ await setStorageData ( { darkMode } ) ;
47+ showStatus ( 'Settings saved' , 'success' ) ;
48+ } ) ;
49+ } catch ( error ) {
50+ console . error ( 'Error loading options:' , error ) ;
51+ showStatus ( 'Error loading settings' , 'error' ) ;
52+ }
2653} ) ;
0 commit comments