fix: design

This commit is contained in:
Fredrik Burmester
2024-08-27 22:32:09 +02:00
parent b550d6302f
commit 0d07f7216c
22 changed files with 303 additions and 162 deletions

42
hooks/useImageColors.ts Normal file
View File

@@ -0,0 +1,42 @@
import { useState, useEffect } from "react";
import { getColors } from "react-native-image-colors";
import { itemThemeColorAtom } from "@/utils/atoms/primaryColor";
import { useAtom } from "jotai";
export const useImageColors = (uri: string | undefined | null) => {
const [, setPrimaryColor] = useAtom(itemThemeColorAtom);
useEffect(() => {
if (uri) {
getColors(uri, {
fallback: "#fff",
cache: true,
key: uri,
})
.then((colors) => {
let primary: string = "#fff";
let average: string = "#fff";
let secondary: string = "#fff";
if (colors.platform === "android") {
primary = colors.dominant;
average = colors.average;
secondary = colors.muted;
} else if (colors.platform === "ios") {
primary = colors.primary;
secondary = colors.detail;
average = colors.background;
}
setPrimaryColor({
primary,
secondary,
average,
});
})
.catch((error) => {
console.error("Error getting colors", error);
});
}
}, [uri, setPrimaryColor]);
};