1- import allScripts from "../../scripts/_allScripts.js" ;
2-
31const createVariableSaver = ( key , defaultValue = null ) => ( {
42 set : ( data ) => {
53 localStorage . setItem ( key , JSON . stringify ( data ) ) ;
@@ -13,51 +11,11 @@ const createVariableSaver = (key, defaultValue = null) => ({
1311 } ,
1412} ) ;
1513
16- const createScriptsSaver = ( key , addToHead = true ) => {
17- const getIds = ( ) =>
18- JSON . parse ( localStorage . getItem ( key ) ?? "[]" ) . filter (
19- ( savedScriptId ) => savedScriptId in allScripts
20- ) ;
21- const has = ( script ) => {
22- let current = getIds ( ) ;
23- let exist = current . findIndex ( ( id ) => id === script . id ) >= 0 ;
24- return exist ;
25- } ;
26- const add = ( script ) => {
27- let current = getIds ( ) ;
28- let newList = current . filter ( ( id ) => id != script . id ) ; // remove duplicate
29- if ( addToHead ) newList . unshift ( script . id ) ; // only save script id
30- else newList . push ( script . id ) ;
31- localStorage . setItem ( key , JSON . stringify ( newList ) ) ;
32- } ;
33- const remove = ( script ) => {
34- let current = getIds ( ) ;
35- let newList = current . filter ( ( id ) => id !== script . id ) ;
36- localStorage . setItem ( key , JSON . stringify ( newList ) ) ;
37- console . log ( "removed " , script ) ;
38- } ;
39- const toggle = ( script ) => {
40- let exist = has ( script ) ;
41- if ( exist ) remove ( script ) ;
42- else add ( script ) ;
43- } ;
44- const clear = ( ) => {
45- localStorage . setItem ( key , "[]" ) ;
46- } ;
47- const get = ( ) => getIds ( ) . map ( ( savedScriptId ) => allScripts [ savedScriptId ] ) ;
48-
49- return { add, remove, has, toggle, clear, getIds, get } ;
50- } ;
51-
5214export const themeSaver = createVariableSaver ( "useful-scripts-theme" ) ;
5315export const langSaver = createVariableSaver ( "useful-scripts-lang" ) ;
5416export const activeTabIdSaver = createVariableSaver (
5517 "useful-scripts-activeTabId"
5618) ;
57- export const recentScriptsSaver = createScriptsSaver ( "useful-scripts-recently" ) ;
58- export const favoriteScriptsSaver = createScriptsSaver (
59- "useful-scripts-favorite"
60- ) ;
6119
6220// default is false => enabled; true => disabled
6321export const disableSmoothScrollSaver = createVariableSaver (
0 commit comments