import { useMemo } from "react"; import Icon from "./icon"; import styles from "./ClockTimeline.module.css"; import { ACTION_PRESETS } from "./types"; import TimelineRow from "./components/TimelineRow"; import { useClockStore } from "../store/useClockStore"; type Props = {}; export const defaultActivationSignal = { type: "virtual-signal", name: "signal-check", subgroup: "virtual-signal", icon: "virtual-signal/signal-check.png", order: "a[checked]", }; export default function ClockTimeline({}: Props) { const { duration, rowOrder, alignmentTick, addRow } = useClockStore(); const majorTicks = useMemo(() => { const step = Math.max(1, Math.round(duration / 10)); const out: number[] = []; for (let t = 0; t <= duration; t += step) out.push(t); return out; }, [duration]); const onPaletteDragStart = (e: React.DragEvent, presetId: string) => { e.dataTransfer.setData("text/plain", presetId); e.dataTransfer.effectAllowed = "copy"; }; const handleAddRow = () => { addRow({ id: `row-${Date.now()}`, name: `Row ${rowOrder.length + 1}`, signals: [defaultActivationSignal], stackSize: 16, inserterCount: 1, }); }; return (