feat: client tab in deal editor
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
"use client";
|
||||
|
||||
import React, { useState } from "react";
|
||||
import React, { useMemo, useState } from "react";
|
||||
import { ProjectsCrud, useProjectsCrud } from "@/hooks/cruds/useProjectsCrud";
|
||||
import useProjectsList from "@/hooks/lists/useProjectsList";
|
||||
import { ProjectSchema } from "@/lib/client";
|
||||
@ -12,6 +12,7 @@ type ProjectsContextState = {
|
||||
refetchProjects: () => void;
|
||||
projects: ProjectSchema[];
|
||||
projectsCrud: ProjectsCrud;
|
||||
modulesSet: Set<string>;
|
||||
};
|
||||
|
||||
const useProjectsContextState = (): ProjectsContextState => {
|
||||
@ -20,8 +21,16 @@ const useProjectsContextState = (): ProjectsContextState => {
|
||||
const [selectedProjectId, setSelectedProjectId] = useState<number | null>(
|
||||
null
|
||||
);
|
||||
const selectedProject =
|
||||
projects.find(project => project.id === selectedProjectId) ?? null;
|
||||
const selectedProject = useMemo(
|
||||
() =>
|
||||
projects.find(project => project.id === selectedProjectId) ?? null,
|
||||
[projects, selectedProjectId]
|
||||
);
|
||||
|
||||
const modulesSet = useMemo(
|
||||
() => new Set(selectedProject?.builtInModules.map(m => m.key)),
|
||||
[selectedProject]
|
||||
);
|
||||
|
||||
if (selectedProject === null && projects.length > 0) {
|
||||
setSelectedProjectId(projects[0].id);
|
||||
@ -35,6 +44,7 @@ const useProjectsContextState = (): ProjectsContextState => {
|
||||
refetchProjects,
|
||||
setSelectedProjectId,
|
||||
projectsCrud,
|
||||
modulesSet,
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user