fix: only tanstack usage in optimistic updates
This commit is contained in:
@ -59,7 +59,7 @@ const DealsTable = () => {
|
||||
} as MRT_TableOptions<DealSchema>
|
||||
}
|
||||
/>
|
||||
{paginationInfo.totalPages > 1 && (
|
||||
{paginationInfo && paginationInfo.totalPages > 1 && (
|
||||
<Group justify={"flex-end"}>
|
||||
<Pagination
|
||||
withEdges
|
||||
|
||||
@ -9,7 +9,7 @@ import makeContext from "@/lib/contextFactory/contextFactory";
|
||||
|
||||
type BoardsContextState = {
|
||||
boards: BoardSchema[];
|
||||
setBoards: React.Dispatch<React.SetStateAction<BoardSchema[]>>;
|
||||
setBoards: (boards: BoardSchema[]) => void;
|
||||
selectedBoard: BoardSchema | null;
|
||||
setSelectedBoardId: React.Dispatch<React.SetStateAction<number | null>>;
|
||||
refetchBoards: () => void;
|
||||
@ -22,6 +22,7 @@ const useBoardsContextState = (): BoardsContextState => {
|
||||
boards,
|
||||
setBoards,
|
||||
refetch: refetchBoards,
|
||||
queryKey,
|
||||
} = useBoardsList({ projectId: project?.id });
|
||||
|
||||
const [selectedBoardId, setSelectedBoardId] = useState<number | null>(null);
|
||||
@ -34,8 +35,7 @@ const useBoardsContextState = (): BoardsContextState => {
|
||||
|
||||
const boardsCrud = useBoardsCrud({
|
||||
boards,
|
||||
setBoards,
|
||||
refetchBoards,
|
||||
queryKey,
|
||||
projectId: project?.id,
|
||||
});
|
||||
|
||||
|
||||
@ -9,10 +9,10 @@ import makeContext from "@/lib/contextFactory/contextFactory";
|
||||
|
||||
type DealsContextState = {
|
||||
deals: DealSchema[];
|
||||
setDeals: React.Dispatch<React.SetStateAction<DealSchema[]>>;
|
||||
setDeals: (deals: DealSchema[]) => void;
|
||||
refetchDeals: () => void;
|
||||
dealsCrud: DealsCrud;
|
||||
paginationInfo: PaginationInfoSchema;
|
||||
paginationInfo?: PaginationInfoSchema;
|
||||
page: number;
|
||||
setPage: React.Dispatch<React.SetStateAction<number>>;
|
||||
};
|
||||
|
||||
@ -9,17 +9,13 @@ import makeContext from "@/lib/contextFactory/contextFactory";
|
||||
type ProjectsContextState = {
|
||||
selectedProject: ProjectSchema | null;
|
||||
setSelectedProjectId: React.Dispatch<React.SetStateAction<number | null>>;
|
||||
refetchProjects: () => Promise<void>;
|
||||
refetchProjects: () => void;
|
||||
projects: ProjectSchema[];
|
||||
projectsCrud: ProjectsCrud;
|
||||
};
|
||||
|
||||
const useProjectsContextState = (): ProjectsContextState => {
|
||||
const {
|
||||
projects,
|
||||
setProjects,
|
||||
refetch: refetchProjects,
|
||||
} = useProjectsList();
|
||||
const { projects, refetch: refetchProjects, queryKey } = useProjectsList();
|
||||
|
||||
const [selectedProjectId, setSelectedProjectId] = useState<number | null>(
|
||||
null
|
||||
@ -31,11 +27,7 @@ const useProjectsContextState = (): ProjectsContextState => {
|
||||
setSelectedProjectId(projects[0].id);
|
||||
}
|
||||
|
||||
const projectsCrud = useProjectsCrud({
|
||||
projects,
|
||||
setProjects,
|
||||
refetchProjects,
|
||||
});
|
||||
const projectsCrud = useProjectsCrud({ queryKey });
|
||||
|
||||
return {
|
||||
projects,
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import { useBoardsContext } from "@/app/deals/contexts/BoardsContext";
|
||||
import { StatusesCrud, useStatusesCrud } from "@/hooks/cruds/useStatusesCrud";
|
||||
import useStatusesList from "@/hooks/lists/useStatusesList";
|
||||
@ -9,7 +8,7 @@ import makeContext from "@/lib/contextFactory/contextFactory";
|
||||
|
||||
type StatusesContextState = {
|
||||
statuses: StatusSchema[];
|
||||
setStatuses: React.Dispatch<React.SetStateAction<StatusSchema[]>>;
|
||||
setStatuses: (statuses: StatusSchema[]) => void;
|
||||
refetchStatuses: () => void;
|
||||
statusesCrud: StatusesCrud;
|
||||
};
|
||||
@ -20,14 +19,14 @@ const useStatusesContextState = (): StatusesContextState => {
|
||||
statuses,
|
||||
setStatuses,
|
||||
refetch: refetchStatuses,
|
||||
queryKey,
|
||||
} = useStatusesList({
|
||||
boardId: selectedBoard?.id,
|
||||
});
|
||||
|
||||
const statusesCrud = useStatusesCrud({
|
||||
statuses,
|
||||
setStatuses,
|
||||
refetchStatuses,
|
||||
queryKey,
|
||||
boardId: selectedBoard?.id,
|
||||
});
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import { StatusesCrud, useStatusesCrud } from "@/hooks/cruds/useStatusesCrud";
|
||||
import useStatusesList from "@/hooks/lists/useStatusesList";
|
||||
import { BoardSchema, StatusSchema } from "@/lib/client";
|
||||
@ -9,7 +8,7 @@ import makeContext from "@/lib/contextFactory/contextFactory";
|
||||
type BoardStatusesContextState = {
|
||||
board: BoardSchema;
|
||||
statuses: StatusSchema[];
|
||||
setStatuses: React.Dispatch<React.SetStateAction<StatusSchema[]>>;
|
||||
setStatuses: (statuses: StatusSchema[]) => void;
|
||||
refetchStatuses: () => void;
|
||||
statusesCrud: StatusesCrud;
|
||||
};
|
||||
@ -25,15 +24,15 @@ const useBoardStatusesContextState = ({
|
||||
statuses,
|
||||
setStatuses,
|
||||
refetch: refetchStatuses,
|
||||
queryKey,
|
||||
} = useStatusesList({
|
||||
boardId: board.id,
|
||||
});
|
||||
|
||||
const statusesCrud = useStatusesCrud({
|
||||
statuses,
|
||||
setStatuses,
|
||||
refetchStatuses,
|
||||
boardId: board.id,
|
||||
queryKey,
|
||||
});
|
||||
|
||||
return {
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
"use client";
|
||||
|
||||
import React from "react";
|
||||
import { BoardsCrud, useBoardsCrud } from "@/hooks/cruds/useBoardsCrud";
|
||||
import useBoardsList from "@/hooks/lists/useBoardsList";
|
||||
import { BoardSchema, ProjectSchema } from "@/lib/client";
|
||||
@ -8,7 +7,7 @@ import makeContext from "@/lib/contextFactory/contextFactory";
|
||||
|
||||
type ProjectBoardsContextState = {
|
||||
boards: BoardSchema[];
|
||||
setBoards: React.Dispatch<React.SetStateAction<BoardSchema[]>>;
|
||||
setBoards: (boards: BoardSchema[]) => void;
|
||||
project: ProjectSchema;
|
||||
refetchBoards: () => void;
|
||||
boardsCrud: BoardsCrud;
|
||||
@ -23,12 +22,12 @@ const useProjectBoardsContextState = ({ project }: Props) => {
|
||||
boards,
|
||||
setBoards,
|
||||
refetch: refetchBoards,
|
||||
queryKey,
|
||||
} = useBoardsList({ projectId: project?.id });
|
||||
|
||||
const boardsCrud = useBoardsCrud({
|
||||
boards,
|
||||
setBoards,
|
||||
refetchBoards,
|
||||
queryKey,
|
||||
projectId: project?.id,
|
||||
});
|
||||
|
||||
|
||||
@ -112,7 +112,7 @@ const useDealsAndStatusesDnd = (): ReturnType => {
|
||||
);
|
||||
if (!overStatusId) return;
|
||||
|
||||
debouncedSetDeals(deals =>
|
||||
debouncedSetDeals(
|
||||
deals.map(deal =>
|
||||
deal.id === activeDealId
|
||||
? {
|
||||
@ -142,7 +142,7 @@ const useDealsAndStatusesDnd = (): ReturnType => {
|
||||
const newRank = getNewStatusRank(activeStatusId, overStatusId);
|
||||
if (!newRank) return;
|
||||
|
||||
debouncedSetStatuses(statuses =>
|
||||
debouncedSetStatuses(
|
||||
statuses.map(status =>
|
||||
status.id === activeStatusId
|
||||
? { ...status, lexorank: newRank }
|
||||
|
||||
Reference in New Issue
Block a user