refactor: rewrite useNotifications with RQ

This commit is contained in:
kasia.oczkowska
2024-03-21 09:59:51 +00:00
committed by kattoczko
parent b68aff76a1
commit d808afd21b
9 changed files with 22 additions and 52 deletions

View File

@@ -1,11 +0,0 @@
import { gql } from '@apollo/client';
export const GET_NOTIFICATIONS = gql`
query GetNotifications {
getNotifications {
name
createdAt
documentationUrl
description
}
}
`;

View File

@@ -0,0 +1,16 @@
import { useQuery } from '@tanstack/react-query';
import api from 'helpers/api';
export default function useAutomatischNotifications() {
const query = useQuery({
queryKey: ['automatisch', 'notifications'],
queryFn: async ({ signal }) => {
const { data } = await api.get(`/v1/automatisch/notifications`, {
signal,
});
return data;
},
});
return query;
}

View File

@@ -1,10 +0,0 @@
import { useQuery } from '@apollo/client';
import { GET_NOTIFICATIONS } from 'graphql/queries/get-notifications';
export default function useNotifications() {
const { data, loading } = useQuery(GET_NOTIFICATIONS);
const notifications = data?.getNotifications || [];
return {
loading,
notifications,
};
}

View File

@@ -1,11 +1,11 @@
import { compare } from 'compare-versions';
import { useQuery } from '@tanstack/react-query';
import useNotifications from 'hooks/useNotifications';
import useAutomatischNotifications from 'hooks/useAutomatischNotifications';
import api from 'helpers/api';
export default function useVersion() {
const { notifications } = useNotifications();
const { data: notificationsData } = useAutomatischNotifications();
const { data } = useQuery({
queryKey: ['automatischVersion'],
queryFn: async ({ signal }) => {
@@ -17,6 +17,7 @@ export default function useVersion() {
},
});
const version = data?.data?.version;
const notifications = notificationsData?.data || [];
const newVersionCount = notifications.reduce((count, notification) => {
if (!version) return 0;

View File

@@ -9,14 +9,15 @@ import PageTitle from 'components/PageTitle';
import * as URLS from 'config/urls';
import useAutomatischInfo from 'hooks/useAutomatischInfo';
import useFormatMessage from 'hooks/useFormatMessage';
import useNotifications from 'hooks/useNotifications';
import useAutomatischNotifications from 'hooks/useAutomatischNotifications';
export default function Updates() {
const navigate = useNavigate();
const formatMessage = useFormatMessage();
const { notifications } = useNotifications();
const { data: notificationsData } = useAutomatischNotifications();
const { data: automatischInfo, isPending } = useAutomatischInfo();
const isMation = automatischInfo?.data.isMation;
const notifications = notificationsData?.data || [];
React.useEffect(
function redirectToHomepageInMation() {