Skip to content
Snippets Groups Projects
ProgressIndicator.tsx 1.87 KiB
Newer Older
  • Learn to ignore specific revisions
  • import classNames from "../../../util/classNames";
    
    
    type ProgressIndicatorProps = {
      first?: boolean,
      id: string,
      name: string,
      arrival: Date,
    
      delay?: number,
      cancelled: boolean
    
    export default function ProgressIndicator(props: Readonly<ProgressIndicatorProps>) {
    
          <li className={`relative ${!(props.first ?? false) ? "-mt-3.5" : "-mt-2"} text-sm text-zinc-300`} key={props.id}>
    
            <div className={"flex flex-row gap-4"}>
    
              <div className={"w-20 flex flex-row justify-center"}>
                <div className="w-[.25rem] h-6 -mb-5 bg-zinc-400" aria-hidden="true" />
    
              </div>
              <div className={"flex-1"}></div>
            </div>
    
    
            <div className={classNames("relative flex flex-row items-center gap-4", props.cancelled ? "text-red-400" : "")}
            style={{
              textDecoration: props.cancelled ? "line-through" : "inherit"
            }}>
    
              <div className={"w-20 flex flex-row justify-center"}>
                <span className="h-[2.6rem] flex items-center" aria-hidden="true">
                  <span className="relative z-10 w-[1.5rem] h-[1.5rem] flex items-center justify-center bg-zinc-400 rounded-full">
                    <span className="h-[1rem] w-[1rem] bg-zinc-900 rounded-full" />
    
                  </span>
                </span>
              </div>
    
              <div className={"flex-1"}>
                {props.name}
              </div>
    
    
              <div className={classNames("tabular-nums", (props.delay || props.cancelled) ? "text-red-400" : "text-zinc-300")}>
    
                {props.delay ? (
    
                  <span className={"text-red-400"}>
    
                    (+{props.delay})&nbsp;&nbsp;
    
                {renderTime(props.arrival)}
    
    
    const renderTime = (date: Date) => {
    
      return `${date.getHours().toString().padStart(2, "0")}:${date.getMinutes().toString().padStart(2, "0")}`