mirror of
https://github.com/nextcloud/server.git
synced 2026-05-17 02:49:55 -04:00
Merge pull request #54515 from nextcloud/fix/theming-parsing
fix(theming): correctly parse CSS colors for user primary color picker
This commit is contained in:
commit
9fd80b2aa2
3 changed files with 15 additions and 5 deletions
|
|
@ -76,13 +76,23 @@ export default defineComponent({
|
|||
methods: {
|
||||
t,
|
||||
|
||||
numberToHex(numeric: string) {
|
||||
const parsed = Number.parseInt(numeric)
|
||||
return parsed.toString(16).padStart(2, '0')
|
||||
},
|
||||
|
||||
/**
|
||||
* Global styles are reloaded so we might need to update the current value
|
||||
*/
|
||||
reload() {
|
||||
const trigger = this.$refs.trigger as HTMLButtonElement
|
||||
const newColor = window.getComputedStyle(trigger).backgroundColor
|
||||
if (newColor.toLowerCase() !== this.primaryColor) {
|
||||
let newColor = window.getComputedStyle(trigger).backgroundColor
|
||||
// sometimes the browser returns the color in the "rgb(255, 132, 234)" format
|
||||
const rgbMatch = newColor.replaceAll(/\s/g, '').match(/^rgba?\((\d+),(\d+),(\d+)/)
|
||||
if (rgbMatch) {
|
||||
newColor = `#${this.numberToHex(rgbMatch[1])}${this.numberToHex(rgbMatch[2])}${this.numberToHex(rgbMatch[3])}`
|
||||
}
|
||||
if (newColor.toLowerCase() !== this.primaryColor.toLowerCase()) {
|
||||
this.primaryColor = newColor
|
||||
}
|
||||
},
|
||||
|
|
|
|||
4
dist/theming-personal-theming.js
vendored
4
dist/theming-personal-theming.js
vendored
File diff suppressed because one or more lines are too long
2
dist/theming-personal-theming.js.map
vendored
2
dist/theming-personal-theming.js.map
vendored
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue