Skip to content
This repository was archived by the owner on May 4, 2023. It is now read-only.

Commit 1018083

Browse files
fix: updated favoriting refetch logic
1 parent 422684f commit 1018083

File tree

2 files changed

+56
-49
lines changed

2 files changed

+56
-49
lines changed

src/renderer/components/Favorite/FavoriteCookbook.tsx

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { useMutation } from '@apollo/client';
22
import { useToast } from '@codiga/components';
3+
import useQueryVariables from '../../hooks/useQueryVariables';
34
import {
45
SUBSCRIBE_TO_COOKBOOK,
56
UNSUBSCRIBE_TO_COOKBOOK,
@@ -9,32 +10,12 @@ import {
910
GET_USER_COOKBOOKS,
1011
GET_USER_SUBSCRIBED_COOKBOOKS,
1112
} from '../../graphql/queries';
12-
import {
13-
GET_SHARED_COOKBOOKS_VARIABLES,
14-
GET_USER_COOKBOOKS_VARIABLES,
15-
GET_USER_SUBSCRIBED_COOKBOOKS_VARIABLES,
16-
} from '../../graphql/variables';
1713
import Favorite, { FavoriteProps } from './Favorite';
1814

1915
type FavoriteCookbookProps = Pick<FavoriteProps, 'isSubscribed'> & {
2016
cookbookId: number;
2117
};
2218

23-
const cookbookRefetches = [
24-
{
25-
query: GET_USER_COOKBOOKS,
26-
variables: GET_USER_COOKBOOKS_VARIABLES,
27-
},
28-
{
29-
query: GET_USER_SUBSCRIBED_COOKBOOKS,
30-
variables: GET_USER_SUBSCRIBED_COOKBOOKS_VARIABLES,
31-
},
32-
{
33-
query: GET_SHARED_COOKBOOKS,
34-
variables: GET_SHARED_COOKBOOKS_VARIABLES,
35-
},
36-
];
37-
3819
export default function FavoriteCookbook({
3920
isSubscribed,
4021
cookbookId,
@@ -44,14 +25,35 @@ export default function FavoriteCookbook({
4425
const [favoriteCookbook] = useMutation(SUBSCRIBE_TO_COOKBOOK);
4526
const [unfavoriteCookbook] = useMutation(UNSUBSCRIBE_TO_COOKBOOK);
4627

28+
const myVariables = useQueryVariables('my-cookbooks');
29+
const favoriteVariables = useQueryVariables('favorite-cookbooks');
30+
const teamVariables = useQueryVariables('team-cookbooks');
31+
32+
const refetchQueries = [
33+
{
34+
query: GET_USER_SUBSCRIBED_COOKBOOKS,
35+
variables: favoriteVariables,
36+
context: { debounceKey: 'favorite-cookbooks' },
37+
},
38+
{
39+
query: GET_USER_COOKBOOKS,
40+
variables: myVariables,
41+
context: { debounceKey: 'my-cookbooks' },
42+
},
43+
{
44+
query: GET_SHARED_COOKBOOKS,
45+
variables: teamVariables,
46+
context: { debounceKey: 'team-cookbooks' },
47+
},
48+
];
49+
4750
const onFavoriteCookbook = async () => {
4851
try {
4952
await favoriteCookbook({
5053
variables: {
5154
id: cookbookId,
5255
},
53-
awaitRefetchQueries: true,
54-
refetchQueries: cookbookRefetches,
56+
refetchQueries,
5557
});
5658
} catch (err) {
5759
toast({
@@ -67,8 +69,7 @@ export default function FavoriteCookbook({
6769
variables: {
6870
id: cookbookId,
6971
},
70-
awaitRefetchQueries: true,
71-
refetchQueries: cookbookRefetches,
72+
refetchQueries,
7273
});
7374
} catch (err) {
7475
toast({

src/renderer/components/Favorite/FavoriteSnippet.tsx

Lines changed: 31 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { useMutation } from '@apollo/client';
22
import { useToast } from '@codiga/components';
3+
import useQueryVariables from '../../hooks/useQueryVariables';
34
import {
45
SUBSCRIBE_TO_RECIPE,
56
UNSUBSCRIBE_TO_RECIPE,
@@ -10,33 +11,12 @@ import {
1011
GET_USER_RECIPES,
1112
GET_USER_SUBSCRIBED_RECIPES,
1213
} from '../../graphql/queries';
13-
import {
14-
GET_SHARED_RECIPES_VARIABLES,
15-
GET_USER_RECIPES_VARIABLES,
16-
GET_USER_SUBSCRIBED_RECIPES_VARIABLES,
17-
} from '../../graphql/variables';
1814
import Favorite, { FavoriteProps } from './Favorite';
1915

2016
type FavoriteRecipeProps = Pick<FavoriteProps, 'isSubscribed'> & {
2117
recipeId: number;
2218
};
2319

24-
const recipeRefetches = [
25-
{
26-
query: GET_USER_RECIPES,
27-
variables: GET_USER_RECIPES_VARIABLES,
28-
},
29-
{
30-
query: GET_USER_SUBSCRIBED_RECIPES,
31-
variables: GET_USER_SUBSCRIBED_RECIPES_VARIABLES,
32-
},
33-
{
34-
query: GET_SHARED_RECIPES,
35-
variables: GET_SHARED_RECIPES_VARIABLES,
36-
},
37-
GET_RECIPES_SEMANTICALLY,
38-
];
39-
4020
export default function FavoriteSnippet({
4121
isSubscribed,
4222
recipeId,
@@ -46,14 +26,41 @@ export default function FavoriteSnippet({
4626
const [favoriteRecipe] = useMutation(SUBSCRIBE_TO_RECIPE);
4727
const [unfavoriteRecipe] = useMutation(UNSUBSCRIBE_TO_RECIPE);
4828

29+
const myVariables = useQueryVariables('my-snippets');
30+
const favoriteVariables = useQueryVariables('favorite-snippets');
31+
const teamVariables = useQueryVariables('team-snippets');
32+
const searchVariables = useQueryVariables('home');
33+
34+
const refetchQueries = [
35+
{
36+
query: GET_USER_SUBSCRIBED_RECIPES,
37+
variables: favoriteVariables,
38+
context: { debounceKey: 'favorite-snippets' },
39+
},
40+
{
41+
query: GET_USER_RECIPES,
42+
variables: myVariables,
43+
context: { debounceKey: 'my-snippets' },
44+
},
45+
{
46+
query: GET_SHARED_RECIPES,
47+
variables: teamVariables,
48+
context: { debounceKey: 'team-snippets' },
49+
},
50+
{
51+
query: GET_RECIPES_SEMANTICALLY,
52+
variables: searchVariables,
53+
context: { debounceKey: 'search' },
54+
},
55+
];
56+
4957
const onFavoriteRecipe = async () => {
5058
try {
5159
await favoriteRecipe({
5260
variables: {
5361
id: recipeId,
5462
},
55-
awaitRefetchQueries: true,
56-
refetchQueries: recipeRefetches,
63+
refetchQueries,
5764
});
5865
} catch (err) {
5966
toast({
@@ -69,8 +76,7 @@ export default function FavoriteSnippet({
6976
variables: {
7077
id: recipeId,
7178
},
72-
awaitRefetchQueries: true,
73-
refetchQueries: recipeRefetches,
79+
refetchQueries,
7480
});
7581
} catch (err) {
7682
toast({

0 commit comments

Comments
 (0)