themesberg / flowbite

Open-source UI component library and front-end development framework based on Tailwind CSS
https://flowbite.com
MIT License
7.29k stars 708 forks source link

Update Value on DatePicker #876

Closed dlopesa closed 5 days ago

dlopesa commented 1 month ago

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;
zoltanszogyenyi commented 5 days ago

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