import { useEffect, useRef, useState } from "react"; import * as colorlib from "colorlib"; import { useContrastToken } from "@/hooks/contrast"; import { onResize } from "@/hooks/window"; import type { CartesianSpace } from "@/types"; import { formatCssRgb, setMeasurements, valueToPosition } from "@/util"; import styles from "./ColorPicker.module.css"; export function SquareCrosshair({ hue, luminance, hex, parentDimensions, }: { hue: number; luminance: number; hex: colorlib.Hex; parentDimensions: CartesianSpace; }) { const [, setOrigin] = useState({ x: 0, y: 0 }); const [dimensions, setDimensions] = useState({ x: 0, y: 0 }); const crosshairColor = { dark: "black", light: "white" }; const token = useContrastToken(() => luminance); const containerRef = useRef(null); const lumRange = { min: 0, max: 1 }; const hueRange = { min: 0, max: 359 }; useEffect(() => { setMeasurements(containerRef, setOrigin, setDimensions); return onResize(() => setMeasurements(containerRef, setOrigin, setDimensions), ); }, [containerRef, parentDimensions]); return (
); } export function BarCrosshair({ chroma, luminance, hex, parentDimensions, }: { chroma: number; luminance: number; hex: colorlib.Hex; parentDimensions: CartesianSpace; }) { const [, setOrigin] = useState({ x: 0, y: 0 }); const [dimensions, setDimensions] = useState({ x: 0, y: 0 }); const crosshairColor = { dark: "black", light: "white" }; const token = useContrastToken(() => luminance); const containerRef = useRef(null); const chromaRange = { min: 0, max: 1 }; useEffect(() => { setMeasurements(containerRef, setOrigin, setDimensions); return onResize(() => setMeasurements(containerRef, setOrigin, setDimensions), ); }, [containerRef, parentDimensions]); return (
); }