Skip to content

Commit

Permalink
Slimmed down the audio wave; (#212)
Browse files Browse the repository at this point in the history
* Slimmed down the audio wave;

* Optimistic updates on connections;
  • Loading branch information
stef-coenen authored Aug 28, 2024
1 parent c52e378 commit 56b5692
Show file tree
Hide file tree
Showing 15 changed files with 184 additions and 148 deletions.
6 changes: 3 additions & 3 deletions packages/common-app/src/hooks/circles/useCircle.ts
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ export const useCircle = ({ circleId }: { circleId?: string }) => {
queryClient.invalidateQueries({ queryKey: ['circleMembers', circleId] });
await Promise.all(
param.domains.map(async (domain) => {
await queryClient.invalidateQueries({ queryKey: ['domainInfo', domain] });
await queryClient.invalidateQueries({ queryKey: ['domain-info', domain] });
})
);
},
Expand Down Expand Up @@ -262,7 +262,7 @@ export const useCircle = ({ circleId }: { circleId?: string }) => {
queryClient.invalidateQueries({ queryKey: ['circles'] });
queryClient.invalidateQueries({ queryKey: ['circle', circleId] });
queryClient.invalidateQueries({ queryKey: ['circleMembers', circleId] });
queryClient.invalidateQueries({ queryKey: ['domainInfo', param.domain] });
queryClient.invalidateQueries({ queryKey: ['domain-info', param.domain] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -275,7 +275,7 @@ export const useCircle = ({ circleId }: { circleId?: string }) => {
queryClient.invalidateQueries({ queryKey: ['circles'] });
queryClient.invalidateQueries({ queryKey: ['circle', circleId] });
queryClient.invalidateQueries({ queryKey: ['circleMembers', circleId] });
queryClient.invalidateQueries({ queryKey: ['domainInfo', param.domain] });
queryClient.invalidateQueries({ queryKey: ['domain-info', param.domain] });
},
onError: (ex) => {
console.error(ex);
Expand Down
19 changes: 12 additions & 7 deletions packages/common-app/src/hooks/connections/useConnections.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
import { useInfiniteQuery, useQuery } from '@tanstack/react-query';
import { PagingOptions } from '@homebase-id/js-lib/core';
import { getConnections, getPendingRequests, getSentRequests } from '@homebase-id/js-lib/network';
import { NumberCursoredResult, PagingOptions } from '@homebase-id/js-lib/core';
import {
DotYouProfile,
getConnections,
getPendingRequests,
getSentRequests,
} from '@homebase-id/js-lib/network';

import { useDotYouClient } from '../auth/useDotYouClient';

Expand Down Expand Up @@ -28,7 +33,7 @@ export const usePendingConnections = ({

return {
fetch: useQuery({
queryKey: ['pendingConnections', pendingPageSize, pendingPage],
queryKey: ['pending-connections', pendingPageSize, pendingPage],
queryFn: () =>
fetchPendingConnections({ pageSize: pendingPageSize, pageNumber: pendingPage }),

Expand Down Expand Up @@ -56,7 +61,7 @@ export const useSentConnections = ({

return {
fetch: useQuery({
queryKey: ['sentRequests', sentPageSize, sentPage],
queryKey: ['sent-requests', sentPageSize, sentPage],
queryFn: () => fetchSentRequests({ pageSize: sentPageSize, pageNumber: sentPage }),
refetchOnWindowFocus: false,
enabled: !!sentPage,
Expand Down Expand Up @@ -88,15 +93,15 @@ export const useActiveConnections = (
});
} catch (ex) {
return {
cursor: undefined,
cursor: 0,
results: [],
};
} as NumberCursoredResult<DotYouProfile>;
}
};

return {
fetch: useInfiniteQuery({
queryKey: ['activeConnections', activePageSize, activePage],
queryKey: ['active-connections', activePageSize, activePage],
initialPageParam: undefined as number | undefined,
queryFn: ({ pageParam }) => fetchConnections({ pageSize: activePageSize, cursor: pageParam }),
getNextPageParam: (lastPage) =>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,12 @@ export const useNotifications = () => {
]);

if (wsNotification.notificationType === 'connectionRequestReceived') {
queryClient.invalidateQueries({ queryKey: ['pendingConnections'] });
queryClient.invalidateQueries({ queryKey: ['pendingConnection'] });
queryClient.invalidateQueries({ queryKey: ['pending-connections'] });
queryClient.invalidateQueries({ queryKey: ['pending-connection'] });
} else {
// Accepted
queryClient.invalidateQueries({ queryKey: ['sentRequests'] });
queryClient.invalidateQueries({ queryKey: ['activeConnections'] });
queryClient.invalidateQueries({ queryKey: ['sent-requests'] });
queryClient.invalidateQueries({ queryKey: ['active-connections'] });
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export const getConnections = async (
count: number;
cursor?: number;
}
): Promise<NumberCursoredResult<{ odinId: string } | DotYouProfile>> => {
): Promise<NumberCursoredResult<DotYouProfile>> => {
const client = dotYouClient.createAxiosClient();
const url = root + '/connected?' + stringifyToQueryParams(data);

Expand Down
14 changes: 7 additions & 7 deletions packages/owner-app/src/hooks/apps/useApp.ts
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export const useApp = ({ appId }: { appId?: string }) => {
mutationFn: registerNewApp,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['app', param.appId] });
queryClient.invalidateQueries({ queryKey: ['registeredApps'] });
queryClient.invalidateQueries({ queryKey: ['apps'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -141,7 +141,7 @@ export const useApp = ({ appId }: { appId?: string }) => {
mutationFn: revokeAppInternal,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['app', param.appId] });
queryClient.invalidateQueries({ queryKey: ['registeredApps'] });
queryClient.invalidateQueries({ queryKey: ['apps'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -151,7 +151,7 @@ export const useApp = ({ appId }: { appId?: string }) => {
mutationFn: allowAppInternal,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['app', param.appId] });
queryClient.invalidateQueries({ queryKey: ['registeredApps'] });
queryClient.invalidateQueries({ queryKey: ['apps'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -161,7 +161,7 @@ export const useApp = ({ appId }: { appId?: string }) => {
mutationFn: removeAppInternal,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['app', param.appId] });
queryClient.invalidateQueries({ queryKey: ['registeredApps'] });
queryClient.invalidateQueries({ queryKey: ['apps'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -171,7 +171,7 @@ export const useApp = ({ appId }: { appId?: string }) => {
mutationFn: updateAuthorizedCircles,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['app', param.appId] });
queryClient.invalidateQueries({ queryKey: ['registeredApps'] });
queryClient.invalidateQueries({ queryKey: ['apps'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -181,7 +181,7 @@ export const useApp = ({ appId }: { appId?: string }) => {
mutationFn: updatePermissions,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['app', param.appId] });
queryClient.invalidateQueries({ queryKey: ['registeredApps'] });
queryClient.invalidateQueries({ queryKey: ['apps'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -191,7 +191,7 @@ export const useApp = ({ appId }: { appId?: string }) => {
mutationFn: extendPermissions,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['app', param.appId] });
queryClient.invalidateQueries({ queryKey: ['registeredApps'] });
queryClient.invalidateQueries({ queryKey: ['apps'] });
},
onError: (ex) => {
console.error(ex);
Expand Down
16 changes: 8 additions & 8 deletions packages/owner-app/src/hooks/apps/useAppClients.ts
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ export const useAppClients = ({ appId }: { appId?: string }) => {

return {
fetch: useQuery({
queryKey: ['appClients', appId],
queryKey: ['app-clients', appId],
queryFn: () => fetch({ appId: appId as string }),
refetchOnWindowFocus: false,
retry: false,
Expand All @@ -76,7 +76,7 @@ export const useAppClients = ({ appId }: { appId?: string }) => {
registerClient: useMutation({
mutationFn: registerClient,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['appClients', param.appId] });
queryClient.invalidateQueries({ queryKey: ['app-clients', param.appId] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -85,8 +85,8 @@ export const useAppClients = ({ appId }: { appId?: string }) => {
removeClient: useMutation({
mutationFn: removeClient,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['appClients', param.appId] });
queryClient.invalidateQueries({ queryKey: ['appClients'] });
queryClient.invalidateQueries({ queryKey: ['app-clients', param.appId] });
queryClient.invalidateQueries({ queryKey: ['app-clients'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -95,8 +95,8 @@ export const useAppClients = ({ appId }: { appId?: string }) => {
revokeClient: useMutation({
mutationFn: revokeClient,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['appClients', param.appId] });
queryClient.invalidateQueries({ queryKey: ['appClients'] });
queryClient.invalidateQueries({ queryKey: ['app-clients', param.appId] });
queryClient.invalidateQueries({ queryKey: ['app-clients'] });
},
onError: (ex) => {
console.error(ex);
Expand All @@ -105,8 +105,8 @@ export const useAppClients = ({ appId }: { appId?: string }) => {
allowClient: useMutation({
mutationFn: allowClient,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['appClients', param.appId] });
queryClient.invalidateQueries({ queryKey: ['appClients'] });
queryClient.invalidateQueries({ queryKey: ['app-clients', param.appId] });
queryClient.invalidateQueries({ queryKey: ['app-clients'] });
},
onError: (ex) => {
console.error(ex);
Expand Down
2 changes: 1 addition & 1 deletion packages/owner-app/src/hooks/apps/useApps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ export const useApps = () => {

return {
fetchRegistered: useQuery({
queryKey: ['registeredApps'],
queryKey: ['apps'],
queryFn: () => fetchRegistered(),
refetchOnWindowFocus: false,
}),
Expand Down
13 changes: 0 additions & 13 deletions packages/owner-app/src/hooks/auth/useYouAuth.ts

This file was deleted.

48 changes: 27 additions & 21 deletions packages/owner-app/src/hooks/connections/useConnectionActions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ import {
import { saveContact } from '../../provider/contact/ContactProvider';
import { fetchConnectionInfo } from '../../provider/contact/ContactSourceProvider';
import { useAuth } from '../auth/useAuth';
import { SecurityGroupType } from '@homebase-id/js-lib/core';
import { PagedResult, SecurityGroupType } from '@homebase-id/js-lib/core';
import { getNewId } from '@homebase-id/js-lib/helpers';

export const useConnectionActions = () => {
const queryClient = useQueryClient();
Expand Down Expand Up @@ -57,7 +58,7 @@ export const useConnectionActions = () => {
disconnect: useMutation({
mutationFn: disconnect,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['activeConnections'] });
queryClient.invalidateQueries({ queryKey: ['active-connections'] });
queryClient.invalidateQueries({ queryKey: ['connection-info', param.connectionOdinId] });
},
onError: (ex) => {
Expand All @@ -67,38 +68,43 @@ export const useConnectionActions = () => {

sendConnectionRequest: useMutation({
mutationFn: sendConnectionRequest,
onMutate: async (newRequest) => {
await queryClient.cancelQueries({ queryKey: ['sentRequests'] });
onMutate: async ({ targetOdinId, message }) => {
await queryClient.cancelQueries({ queryKey: ['sent-requests'] });

const previousRequests: ConnectionRequest[] | undefined = queryClient.getQueryData([
'sentRequests',
const previousRequests = queryClient.getQueryData<PagedResult<ConnectionRequest>>([
'sent-requests',
]);
const newRequests = [
{
status: 'sent',
recipient: newRequest.targetOdinId,
},
...(previousRequests ?? []),
];

queryClient.setQueryData(['sentRequests'], newRequests);
const newRequest: ConnectionRequest = {
status: 'sent',
recipient: targetOdinId,
id: getNewId(),
message: message,
senderOdinId: dotYouClient.getIdentity(),
receivedTimestampMilliseconds: Date.now(),
};
queryClient.setQueryData<PagedResult<ConnectionRequest>>(['sent-requests'], {
totalPages: 0,
...previousRequests,
results: [newRequest, ...(previousRequests?.results || [])],
});

return { previousRequests, newRequest };
},
onError: (err, newData, context) => {
console.error(err);

queryClient.setQueryData(['sentRequests'], context?.previousRequests);
queryClient.setQueryData(['sent-requests'], context?.previousRequests);
},
onSettled: (data) => {
queryClient.invalidateQueries({ queryKey: ['sentRequests'] });
queryClient.invalidateQueries({ queryKey: ['sent-requests'] });
queryClient.invalidateQueries({ queryKey: ['connection-info', data?.targetOdinId] });
},
}),
revokeConnectionRequest: useMutation({
mutationFn: revokeConnectionRequest,
onSuccess: (data, param) => {
queryClient.invalidateQueries({ queryKey: ['sentRequests'] });
queryClient.invalidateQueries({ queryKey: ['sent-requests'] });
queryClient.invalidateQueries({ queryKey: ['connection-info', param.targetOdinId] });
},
onError: (ex) => {
Expand All @@ -108,16 +114,16 @@ export const useConnectionActions = () => {
block: useMutation({
mutationFn: block,
onSettled: (_data, _err, odinId) => {
queryClient.invalidateQueries({ queryKey: ['pendingConnections'] });
queryClient.invalidateQueries({ queryKey: ['activeConnections'] });
queryClient.invalidateQueries({ queryKey: ['pending-connections'] });
queryClient.invalidateQueries({ queryKey: ['active-connections'] });
queryClient.invalidateQueries({ queryKey: ['connection-info', odinId] });
},
}),
unblock: useMutation({
mutationFn: unblock,
onSettled: (_data, _err, odinId) => {
queryClient.invalidateQueries({ queryKey: ['pendingConnections'] });
queryClient.invalidateQueries({ queryKey: ['activeConnections'] });
queryClient.invalidateQueries({ queryKey: ['pending-connections'] });
queryClient.invalidateQueries({ queryKey: ['active-connections'] });
queryClient.invalidateQueries({ queryKey: ['connection-info', odinId] });
},
}),
Expand Down
Loading

0 comments on commit 56b5692

Please sign in to comment.