feat: modules dependencies
This commit is contained in:
@@ -6,8 +6,9 @@ import { IconGripHorizontal } from "@tabler/icons-react";
|
||||
import { useDebouncedValue } from "@mantine/hooks";
|
||||
import { notifications } from "../../../../shared/lib/notifications.ts";
|
||||
import { useProjectsContext } from "../../../../contexts/ProjectsContext.tsx";
|
||||
import isModuleInProject, { Modules } from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import isModuleInProject from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import CardTags from "../CardTags/CardTags.tsx";
|
||||
import { ModuleNames } from "../../../../modules/modules.tsx";
|
||||
|
||||
type Props = {
|
||||
cards: CardSummary[];
|
||||
@@ -19,7 +20,7 @@ export const CardGroupView: FC<Props> = ({ cards, group }) => {
|
||||
const [name, setName] = useState<string>(group.name || "");
|
||||
const [debouncedName] = useDebouncedValue(name, 200);
|
||||
const { selectedProject } = useProjectsContext();
|
||||
const isServicesAndProductsIncluded = isModuleInProject(Modules.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isServicesAndProductsIncluded = isModuleInProject(ModuleNames.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
|
||||
const totalPrice = useMemo(() => cards.reduce((acc, card) => acc + card.totalPrice, 0), [cards]);
|
||||
const totalProducts = useMemo(() => cards.reduce((acc, card) => acc + card.totalProducts, 0), [cards]);
|
||||
|
||||
@@ -9,10 +9,11 @@ import { faCheck } from "@fortawesome/free-solid-svg-icons";
|
||||
import { IconCheck, IconLayoutGridRemove, IconTrash } from "@tabler/icons-react";
|
||||
import { useContextMenu } from "mantine-contextmenu";
|
||||
import useCardSummaryState from "./useCardSummaryState.tsx";
|
||||
import isModuleInProject, { Modules } from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import isModuleInProject from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import { useProjectsContext } from "../../../../contexts/ProjectsContext.tsx";
|
||||
import CardTags from "../CardTags/CardTags.tsx";
|
||||
import CardAttributesInSummaryItem from "../CardAttributesInSummaryItem/CardAttributesInSummaryItem.tsx";
|
||||
import { ModuleNames } from "../../../../modules/modules.tsx";
|
||||
|
||||
type Props = {
|
||||
cardSummary: CardSummary;
|
||||
@@ -25,8 +26,8 @@ const CardSummaryItem: FC<Props> = ({ cardSummary, color }) => {
|
||||
const { setSelectedCard } = useCardPageContext();
|
||||
const { onDelete, onComplete, onDeleteFromGroup } = useCardSummaryState();
|
||||
|
||||
const isServicesAndProductsIncluded = isModuleInProject(Modules.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isClientIncluded = isModuleInProject(Modules.CLIENTS, selectedProject);
|
||||
const isServicesAndProductsIncluded = isModuleInProject(ModuleNames.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isClientIncluded = isModuleInProject(ModuleNames.CLIENTS, selectedProject);
|
||||
|
||||
const onCardSummaryClick = () => {
|
||||
CardService.getCardById({ cardId: cardSummary.id }).then(card => {
|
||||
|
||||
@@ -9,8 +9,9 @@ import { groupBy, has, uniq } from "lodash";
|
||||
import { CardGroupView } from "../CardGroupView/CardGroupView.tsx";
|
||||
import CreateDealsFromFileButton from "../CreateCardsFromFileButton/CreateDealsFromFileButton.tsx";
|
||||
import DragState from "../../../../pages/CardsPage/enums/DragState.ts";
|
||||
import isModuleInProject, { Modules } from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import isModuleInProject from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import { useProjectsContext } from "../../../../contexts/ProjectsContext.tsx";
|
||||
import { ModuleNames } from "../../../../modules/modules.tsx";
|
||||
|
||||
type Props = {
|
||||
status: StatusSchema;
|
||||
@@ -28,7 +29,7 @@ export const CardsDndColumn: FC<Props> = ({
|
||||
withCreateButton = false,
|
||||
}) => {
|
||||
const { selectedProject } = useProjectsContext();
|
||||
const isCreatingDealFromFileEnabled = isModuleInProject(Modules.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isCreatingDealFromFileEnabled = isModuleInProject(ModuleNames.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isDropDisabled = dragState !== DragState.DRAG_CARD;
|
||||
const droppableId = status.id.toString();
|
||||
|
||||
|
||||
@@ -7,8 +7,9 @@ import { CardService, StatusSchema } from "../../../../client";
|
||||
import { useQueryClient } from "@tanstack/react-query";
|
||||
import { dateWithoutTimezone } from "../../../../shared/lib/date.ts";
|
||||
import { usePrefillCardContext } from "../../../../pages/CardsPage/contexts/PrefillCardContext.tsx";
|
||||
import isModuleInProject, { Modules } from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import isModuleInProject from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import { useProjectsContext } from "../../../../contexts/ProjectsContext.tsx";
|
||||
import { ModuleNames } from "../../../../modules/modules.tsx";
|
||||
|
||||
type Props = {
|
||||
status: StatusSchema;
|
||||
@@ -21,7 +22,7 @@ const CreateCardButton = ({ status }: Props) => {
|
||||
const { prefillCard, setPrefillCard } = usePrefillCardContext();
|
||||
|
||||
const { selectedProject } = useProjectsContext();
|
||||
const isPrefillingDealEnabled = isModuleInProject(Modules.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isPrefillingDealEnabled = isModuleInProject(ModuleNames.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
|
||||
return (
|
||||
<div
|
||||
|
||||
@@ -9,8 +9,9 @@ import ShippingWarehouseAutocomplete
|
||||
from "../../../Selects/ShippingWarehouseAutocomplete/ShippingWarehouseAutocomplete.tsx";
|
||||
import BaseMarketplaceSelect from "../../../Selects/BaseMarketplaceSelect/BaseMarketplaceSelect.tsx";
|
||||
import { usePrefillCardContext } from "../../../../pages/CardsPage/contexts/PrefillCardContext.tsx";
|
||||
import isModuleInProject, { Modules } from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import isModuleInProject from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import { useProjectsContext } from "../../../../contexts/ProjectsContext.tsx";
|
||||
import { ModuleNames } from "../../../../modules/modules.tsx";
|
||||
|
||||
type Props = {
|
||||
onSubmit: (quickDeal: QuickCard) => void;
|
||||
@@ -19,11 +20,11 @@ type Props = {
|
||||
|
||||
const CreateCardForm: FC<Props> = ({ onSubmit, onCancel }) => {
|
||||
const { selectedProject } = useProjectsContext();
|
||||
const isPrefillingEnabled = isModuleInProject(Modules.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isPrefillingEnabled = isModuleInProject(ModuleNames.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const { prefillOnOpen, prefillCard } = usePrefillCardContext();
|
||||
|
||||
const isServicesAndProductsIncluded = isModuleInProject(Modules.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isClientsIncluded = isModuleInProject(Modules.CLIENTS, selectedProject);
|
||||
const isServicesAndProductsIncluded = isModuleInProject(ModuleNames.SERVICES_AND_PRODUCTS, selectedProject);
|
||||
const isClientsIncluded = isModuleInProject(ModuleNames.CLIENTS, selectedProject);
|
||||
|
||||
const form = useForm<QuickCard>({
|
||||
initialValues: {
|
||||
|
||||
@@ -9,9 +9,10 @@ import DragState from "../../../../pages/CardsPage/enums/DragState.ts";
|
||||
import { useContextMenu } from "mantine-contextmenu";
|
||||
import { IconEdit, IconTrash } from "@tabler/icons-react";
|
||||
import useStatus from "./hooks/useStatus.tsx";
|
||||
import isModuleInProject, { Modules } from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import isModuleInProject from "../../../../modules/utils/isModuleInProject.ts";
|
||||
import { useEqualHeightsContext } from "./contexts/EqualHeightContext.tsx";
|
||||
import { useBoardsContext } from "../../../../contexts/BoardsContext.tsx";
|
||||
import { ModuleNames } from "../../../../modules/modules.tsx";
|
||||
|
||||
|
||||
type Props = {
|
||||
@@ -27,7 +28,7 @@ const Status = ({ summaries, status, dragState, index }: Props) => {
|
||||
} = useBoardsContext();
|
||||
|
||||
const isDropDisabled = dragState !== DragState.DRAG_STATUS;
|
||||
const isServicesAndProductsIncluded = isModuleInProject(Modules.SERVICES_AND_PRODUCTS, selectedBoard?.project);
|
||||
const isServicesAndProductsIncluded = isModuleInProject(ModuleNames.SERVICES_AND_PRODUCTS, selectedBoard?.project);
|
||||
|
||||
const {
|
||||
divRefs,
|
||||
|
||||
Reference in New Issue
Block a user