FPSMS-frontend
Não pode escolher mais do que 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 

33 linhas
991 B

  1. import { useCallback, useMemo, useState } from "react";
  2. import dayjs from "dayjs";
  3. import { dayjsToDateString } from "@/app/utils/formatUtil";
  4. import {
  5. JoCreatePlanStartPrefs,
  6. loadJoCreatePlanStartPrefs,
  7. saveJoCreatePlanStartPrefs,
  8. } from "@/utils/joCreatePlanStartPrefs";
  9. export function useJoCreatePlanStartPrefs() {
  10. const [prefs, setPrefs] = useState<JoCreatePlanStartPrefs>(loadJoCreatePlanStartPrefs);
  11. const defaultPlanStartForCreate = useMemo(
  12. () => prefs.planStart ?? dayjsToDateString(dayjs(), "input"),
  13. [prefs.planStart],
  14. );
  15. const handleRememberPlanStartChange = useCallback((checked: boolean, selectedDate: string | null) => {
  16. const next: JoCreatePlanStartPrefs = {
  17. enabled: checked,
  18. planStart: checked && selectedDate ? selectedDate : null,
  19. };
  20. setPrefs(next);
  21. saveJoCreatePlanStartPrefs(next);
  22. }, []);
  23. return {
  24. rememberPlanStart: prefs.enabled,
  25. defaultPlanStartForCreate,
  26. handleRememberPlanStartChange,
  27. };
  28. }