@@ -7,7 +7,7 @@ import getBoardQuery from "@/graphql/queries/board.query.gql";
7
7
import boardsQuery from " @/graphql/queries/boards.query.gql" ;
8
8
import deleteBoardMutation from " @/graphql/mutations/deleteBoard.mutation.gql" ;
9
9
import updateBoardMutation from " @/graphql/mutations/updateBoard.mutation.gql" ;
10
- import { v4 as uuidv4 } from " uuid " ;
10
+ import addTaskToBoardMutation from " @/graphql/mutations/addTaskToBoard.mutation.gql " ;
11
11
import { useRouter } from " vue-router" ;
12
12
13
13
const alerts = useAlerts ();
@@ -24,7 +24,13 @@ const {
24
24
result : boardData,
25
25
loading : loadingBoard,
26
26
onError : onBoardError,
27
- } = useQuery (getBoardQuery , { id: boardId .value });
27
+ } = useQuery (
28
+ getBoardQuery ,
29
+ { id: boardId .value },
30
+ {
31
+ fetchPolicy: " cache-and-network" ,
32
+ }
33
+ );
28
34
onBoardError (() => alerts .error (" Error loading board" ));
29
35
const board = computed (() => boardData .value ?.board || null );
30
36
const tasks = computed (() => board .value ?.tasks ?.items );
@@ -36,8 +42,7 @@ const { mutate: updateBoard } = useMutation(updateBoardMutation);
36
42
const { mutate : deleteBoard, onError : onErrorDeletingBoard } = useMutation (
37
43
deleteBoardMutation ,
38
44
{
39
- update(cache , { data : { boardDelete } }) {
40
- console .log (boardDelete );
45
+ update(cache ) {
41
46
cache .updateQuery ({ query: boardsQuery }, (res ) => ({
42
47
boardsList: {
43
48
items: res .boardsList .items .filter (
@@ -58,16 +63,38 @@ async function deleteBoardIfConfirmed() {
58
63
}
59
64
}
60
65
66
+ // handle create task
67
+ const {
68
+ mutate : addTaskToBoard,
69
+ onError : onErrorCreatingTask,
70
+ onDone : onDoneCreatingTask,
71
+ } = useMutation (addTaskToBoardMutation );
72
+
73
+ // eslint-disable-next-line
74
+ let taskResolve = (task : Task ) => {};
75
+ // eslint-disable-next-line
76
+ let taskReject = (message : Error ) => {};
77
+
61
78
function addTask(task : Task ) {
62
79
return new Promise ((resolve , reject ) => {
63
- const taskWithId = {
80
+ taskResolve = resolve ;
81
+ taskReject = reject ;
82
+ addTaskToBoard ({
83
+ boardId: boardId .value ,
64
84
... task ,
65
- id: uuidv4 (),
66
- };
67
- tasks .value .push (taskWithId );
68
- resolve (taskWithId );
85
+ });
69
86
});
70
87
}
88
+
89
+ onErrorCreatingTask ((error ) => {
90
+ console .log (error );
91
+ taskReject (error );
92
+ alerts .error (" Error creating task" );
93
+ });
94
+ onDoneCreatingTask ((res ) => {
95
+ taskResolve (res .data .boardUpdate .tasks .items [0 ]);
96
+ alerts .success (" New task created!" );
97
+ });
71
98
</script >
72
99
<template >
73
100
<div v-if =" board" >
0 commit comments