Habits

date-nav.jsx 35 lines

Files · 10
1234567891011121314151617181920212223242526272829303132333435import React from "react";
import { Button, Input } from "../../shared/ui.jsx";
export function DateNav({ date, setDate, today }) {
  return (
    <div className="ui-actions date-nav">
      <Button
        aria-label="Previous day"
        onClick={() => setDate(previous(date, -1))}
      >
        ←
      </Button>
      <Input
        aria-label="Browse date"
        type="date"
        value={date}
        onChange={(e) => e.target.value && setDate(e.target.value)}
      />
      <Button
        aria-label="Next day"
        disabled={date >= today}
        onClick={() => setDate(previous(date, 1))}
      >
        →
      </Button>
      <Button variant="ghost" onClick={() => setDate(today)}>
        Today
      </Button>
    </div>
  );
}
function previous(date, n) {
  const d = new Date(date + "T12:00:00Z");
  d.setUTCDate(d.getUTCDate() + n);
  return d.toISOString().slice(0, 10);
}