mirror of
https://github.com/neon-mmd/websurfx.git
synced 2024-11-24 06:58:22 -05:00
✨ feat: add code to handle the parsing and storing of the new settings option (#424)
This commit is contained in:
parent
19081b72c0
commit
0bc96b167c
@ -50,6 +50,9 @@ function setClientSettings() {
|
|||||||
case 'colorschemes':
|
case 'colorschemes':
|
||||||
cookie_dictionary['colorscheme'] = select_tag.value
|
cookie_dictionary['colorscheme'] = select_tag.value
|
||||||
break
|
break
|
||||||
|
case 'animations':
|
||||||
|
cookie_dictionary['animation'] = select_tag.value || null
|
||||||
|
break
|
||||||
case 'safe_search_levels':
|
case 'safe_search_levels':
|
||||||
cookie_dictionary['safe_search_level'] = Number(select_tag.value)
|
cookie_dictionary['safe_search_level'] = Number(select_tag.value)
|
||||||
break
|
break
|
||||||
@ -103,13 +106,50 @@ function getClientSettings() {
|
|||||||
.map((item) => item.split('='))
|
.map((item) => item.split('='))
|
||||||
.reduce((acc, [_, v]) => (acc = JSON.parse(v)) && acc, {})
|
.reduce((acc, [_, v]) => (acc = JSON.parse(v)) && acc, {})
|
||||||
|
|
||||||
|
let links = Array.from(document.querySelectorAll('link'))
|
||||||
|
|
||||||
|
// A check to determine whether the animation link exists under the head tag or not.
|
||||||
|
// If it does not exists then create and add a new animation link under the head tag
|
||||||
|
// and update the other link tags href according to the settings provided by the user
|
||||||
|
// via the UI. On the other hand if it does exist then just update all the link tags
|
||||||
|
// href according to the settings provided by the user via the UI.
|
||||||
|
if (!links.some((item) => item.href.includes('static/animations'))) {
|
||||||
|
if (cookie_value['animation']) {
|
||||||
|
let animation_link = document.createElement('link')
|
||||||
|
animation_link.href = `static/animations/${cookie_value['animation']}.css`
|
||||||
|
animation_link.rel = 'stylesheet'
|
||||||
|
animation_link.type = 'text/css'
|
||||||
|
document.querySelector('head').appendChild(animation_link)
|
||||||
|
}
|
||||||
// Loop through all link tags and update their href values to match the user's preferences
|
// Loop through all link tags and update their href values to match the user's preferences
|
||||||
Array.from(document.querySelectorAll('link')).forEach((item) => {
|
links.forEach((item) => {
|
||||||
if (item.href.includes('static/themes')) {
|
if (item.href.includes('static/themes')) {
|
||||||
item.href = `static/themes/${cookie_value['theme']}.css`
|
item.href = `static/themes/${cookie_value['theme']}.css`
|
||||||
} else if (item.href.includes('static/colorschemes')) {
|
} else if (item.href.includes('static/colorschemes')) {
|
||||||
item.href = `static/colorschemes/${cookie_value['colorscheme']}.css`
|
item.href = `static/colorschemes/${cookie_value['colorscheme']}.css`
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
// Loop through all link tags and update their href values to match the user's preferences
|
||||||
|
links.forEach((item) => {
|
||||||
|
if (item.href.includes('static/themes')) {
|
||||||
|
item.href = `static/themes/${cookie_value['theme']}.css`
|
||||||
|
} else if (item.href.includes('static/colorschemes')) {
|
||||||
|
item.href = `static/colorschemes/${cookie_value['colorscheme']}.css`
|
||||||
|
} else if (
|
||||||
|
item.href.includes('static/animations') &&
|
||||||
|
cookie_value['animation']
|
||||||
|
) {
|
||||||
|
item.href = `static/colorschemes/${cookie_value['animation']}.css`
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if (!cookie_value['animation']) {
|
||||||
|
document
|
||||||
|
.querySelector('head')
|
||||||
|
.removeChild(
|
||||||
|
links.filter((item) => item.href.includes('static/animations')),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user