🎉 Initial commit
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
interface colorScheme {
|
||||
DarkMuted: {
|
||||
hex: string,
|
||||
rgb: Number[],
|
||||
bodyTextColor: string
|
||||
},
|
||||
Vibrant: {
|
||||
hex: string,
|
||||
rgb: Number[],
|
||||
bodyTextColor: string
|
||||
}
|
||||
}
|
||||
|
||||
let colorsCache: { [key: string]: colorScheme } = {};
|
||||
|
||||
if (localStorage.hasOwnProperty('colorsCache')) {
|
||||
try {
|
||||
colorsCache = JSON.parse(localStorage.getItem('colorsCache'));
|
||||
}
|
||||
catch (e) {
|
||||
colorsCache = {};
|
||||
}
|
||||
}
|
||||
|
||||
async function getColor(imageURL: string) {
|
||||
if (!colorsCache.hasOwnProperty(imageURL)) {
|
||||
const palette = await Vibrant.from(imageURL).getPalette();
|
||||
|
||||
colorsCache[imageURL] = {
|
||||
Vibrant: {
|
||||
hex: palette.Vibrant.hex,
|
||||
rgb: palette.Vibrant.rgb,
|
||||
bodyTextColor: palette.Vibrant.bodyTextColor
|
||||
},
|
||||
DarkMuted: {
|
||||
hex: palette.DarkMuted.hex,
|
||||
rgb: palette.DarkMuted.rgb,
|
||||
bodyTextColor: palette.DarkMuted.bodyTextColor
|
||||
}
|
||||
}
|
||||
|
||||
localStorage.setItem('colorsCache', JSON.stringify(colorsCache));
|
||||
}
|
||||
return colorsCache[imageURL];
|
||||
}
|
||||
|
||||
export {
|
||||
getColor
|
||||
}
|
||||
Reference in New Issue
Block a user