mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2026-06-22 04:11:55 +10:00
fix: issue with color format handling, resolves #3104
This commit is contained in:
@@ -21,6 +21,11 @@ describe("rgbaStringToHex", () => {
|
||||
it("converts arbitrary mid-range color", () => {
|
||||
expect(rgbaStringToHex("rgb(128, 64, 200)")).toBe("#8040c8");
|
||||
});
|
||||
|
||||
it("preserves 6-digit hex colors", () => {
|
||||
expect(rgbaStringToHex("#F1F5F9")).toBe("#f1f5f9");
|
||||
expect(rgbaStringToHex("#0F172A")).toBe("#0f172a");
|
||||
});
|
||||
});
|
||||
|
||||
describe("parseColorString", () => {
|
||||
|
||||
@@ -2,10 +2,17 @@ import type { ColorResult } from "@uiw/color-convert";
|
||||
import { hsvaToHex, rgbaStringToHsva } from "@uiw/color-convert";
|
||||
|
||||
export function rgbaStringToHex(rgba: string): string {
|
||||
const color = parseColorString(rgba);
|
||||
if (color) return `#${toHexComponent(color.r)}${toHexComponent(color.g)}${toHexComponent(color.b)}`;
|
||||
|
||||
const hsva = rgbaStringToHsva(rgba);
|
||||
return hsvaToHex(hsva);
|
||||
}
|
||||
|
||||
function toHexComponent(value: number): string {
|
||||
return Math.max(0, Math.min(255, value)).toString(16).padStart(2, "0");
|
||||
}
|
||||
|
||||
export function parseColorString(value: string): ColorResult["rgba"] | null {
|
||||
const trimmed = value.trim();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user