Duffer Derek

Current Path : /var/www/api-mk-planner.bitkit.dk/httpdocs/Frontend/src/hooks/
Upload File :
Current File : /var/www/api-mk-planner.bitkit.dk/httpdocs/Frontend/src/hooks/useSubTaskView.js

import { useEffect, useState } from "react";
import { useDataContext } from "./useDataContext";

export const useSubTaskView = (
  subTask,
  handleSubTaskFieldChange,
  taskPartner
) => {
  const [toggleDropdown, setToggleDropdown] = useState();

  const { filterOptions, leaves, popUpStatus } = useDataContext();

  // avoid task partner And leaved partners from partner dropdown
  const filteredPartnerArray = filterOptions.partners.filter(
    (item) => item.name !== taskPartner.name
  );

  //Retrieve users available on a specific date from the leaves data.
  const usersOnDate =
    leaves.find((item) => item.startDate === subTask.date)?.users || [];

  // Filter the partner array to exclude users already assigned to a subtask on the given date.
  const filteredPartnerArrayWithDate = filteredPartnerArray.filter(
    (partner) => !usersOnDate.some((user) => user.name === partner.name)
  );

  useEffect(() => {
    setToggleDropdown(
      subTask?.user?.name == null || subTask?.user?.name == undefined
        ? false
        : true
    );
  }, [popUpStatus, subTask.user]);

  /**
   * Delete a shared task.
   * Toggles the dropdown and invokes handleSubTaskFieldChange to mark the subtask for deletion.
   */
  const deleteSharedTask = () => {
    setToggleDropdown((toggle) => !toggle);
    handleSubTaskFieldChange(true, "delete", subTask.date);
  };

  return {
    deleteSharedTask,
    toggleDropdown,
    setToggleDropdown,
    filteredPartnerArrayWithDate,
  };
};

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists