mirror of
https://github.com/OFFIS-ESC/constellation-analyzer
synced 2026-01-27 07:43:41 +00:00
fix: convert HSL color generation to hex format in label selector
Update generateRandomColor to return hex codes instead of HSL strings to ensure proper color storage in database. Changes: - Add hslToHex conversion function - Maintain same pastel color generation (random hue, 70% saturation, 65% lightness) - Return hex format (#rrggbb) instead of HSL string 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
bc8ab6c9c7
commit
c1cd2d3114
1 changed files with 15 additions and 1 deletions
|
|
@ -21,10 +21,24 @@ interface Props {
|
||||||
scope: 'actors' | 'relations';
|
scope: 'actors' | 'relations';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Convert HSL to Hex
|
||||||
|
const hslToHex = (h: number, s: number, l: number): string => {
|
||||||
|
l /= 100;
|
||||||
|
const a = (s * Math.min(l, 1 - l)) / 100;
|
||||||
|
const f = (n: number) => {
|
||||||
|
const k = (n + h / 30) % 12;
|
||||||
|
const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
|
||||||
|
return Math.round(255 * color)
|
||||||
|
.toString(16)
|
||||||
|
.padStart(2, '0');
|
||||||
|
};
|
||||||
|
return `#${f(0)}${f(8)}${f(4)}`;
|
||||||
|
};
|
||||||
|
|
||||||
// Generate random pastel color for new labels
|
// Generate random pastel color for new labels
|
||||||
const generateRandomColor = () => {
|
const generateRandomColor = () => {
|
||||||
const hue = Math.floor(Math.random() * 360);
|
const hue = Math.floor(Math.random() * 360);
|
||||||
return `hsl(${hue}, 70%, 65%)`;
|
return hslToHex(hue, 70, 65);
|
||||||
};
|
};
|
||||||
|
|
||||||
const AutocompleteLabelSelector = ({ value, onChange, scope }: Props) => {
|
const AutocompleteLabelSelector = ({ value, onChange, scope }: Props) => {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue