themesberg/flowbite

Update Value on DatePicker

dlopesa opened this issue · 1 comments

Date does not change inside datepicker even if the date variable is changed

Steps to reproduce

give datepicker a date, then trying to change outside of the datepicker

Current behavior

Even though the variable date changes, the value inside the datepicker does not change

Expected behavior

Datepicker should show the date that is setted as the current date on the variable

Context

When clicking on the arrows it should go a dar forward or back
image
I deleted parts of the code that are not relevant so divs might be broken

import { useState } from "react";
import { Datepicker } from "flowbite-react";

const Component= () => {
  const [date, setDate] = useState(new Date());

  const goBackOneDay = () => {
    setDate((prevDate) => {
      const newDate = new Date(prevDate);
      newDate.setDate(newDate.getDate() - 1);
      return newDate;
    });
  };

  const goForwardOneDay = () => {
    setDate((prevDate) => {
      const newDate = new Date(prevDate);
      newDate.setDate(newDate.getDate() + 1);
      return newDate;
    });
  };
  const testDate = () => {
    console.log(date);
  };
  return (
    <div className="trading-tool grid grid-cols-3 grid-rows-[auto_3fr_1fr] gap-2.5 h-screen bg-gray-800 text-white p-2.5">
      {/* Header row for the title and date picker */}
      <div className="col-span-3 flex items-center p-2.5 text-lg border-b border-gray-600">
        <span>Component</span>
        <div className="flex-grow flex justify-center items-center">
          <button onClick={goBackOneDay}>&lt;</button>
          <Datepicker date={date} title="Flowbite Datepicker" />
          <button onClick={goForwardOneDay}>&gt;</button>
        </div>
        <button onClick={testDate}>Test</button>
      </div>

    </div>
  );
};

export default Component;

Hey @dlopesa,

Since the new v2.4.1 release you can now use the getDate() and setDate() methods:

https://flowbite.com/docs/components/datepicker/index.html#methods

Please check the docs on the Flowbite API and get the instance via the Instance Manager.

Cheers,
Zoltan