diff --git a/.changeset/eleven-pugs-help.md b/.changeset/eleven-pugs-help.md new file mode 100644 index 000000000000..61acd79f600b --- /dev/null +++ b/.changeset/eleven-pugs-help.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/meteor": patch +--- + +Fixes an issue where losing connection could break app's action buttons diff --git a/apps/meteor/client/hooks/useAppActionButtons.ts b/apps/meteor/client/hooks/useAppActionButtons.ts index 566baf69b37c..58173987308a 100644 --- a/apps/meteor/client/hooks/useAppActionButtons.ts +++ b/apps/meteor/client/hooks/useAppActionButtons.ts @@ -1,6 +1,6 @@ import { type IUIActionButton, type UIActionButtonContext } from '@rocket.chat/apps-engine/definition/ui'; import { useDebouncedCallback } from '@rocket.chat/fuselage-hooks'; -import { useEndpoint, useStream, useUserId } from '@rocket.chat/ui-contexts'; +import { useConnectionStatus, useEndpoint, useStream, useUserId } from '@rocket.chat/ui-contexts'; import { useQuery, useQueryClient } from '@tanstack/react-query'; import { useEffect } from 'react'; @@ -8,14 +8,15 @@ export const getIdForActionButton = ({ appId, actionId }: IUIActionButton): stri export const useAppActionButtons = (context?: TContext) => { const queryClient = useQueryClient(); - const apps = useStream('apps'); const uid = useUserId(); + const { status } = useConnectionStatus(); const getActionButtons = useEndpoint('GET', '/apps/actionButtons'); const result = useQuery({ - queryKey: ['apps', 'actionButtons'], + queryKey: ['apps', 'actionButtons', status], + enabled: status === 'connected', queryFn: () => getActionButtons(), ...(context && {