@planningcenter/chat-react-native 3.42.2-qa-staging.4 → 3.42.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/build/components/conversation/messages_disabled_banners.d.ts +1 -5
  2. package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
  3. package/build/components/conversation/messages_disabled_banners.js +4 -8
  4. package/build/components/conversation/messages_disabled_banners.js.map +1 -1
  5. package/build/hooks/direct_messages/use_find_or_create_direct_message_conversation.d.ts.map +1 -1
  6. package/build/hooks/direct_messages/use_find_or_create_direct_message_conversation.js +8 -1
  7. package/build/hooks/direct_messages/use_find_or_create_direct_message_conversation.js.map +1 -1
  8. package/build/hooks/use_conversation.d.ts.map +1 -1
  9. package/build/hooks/use_conversation.js +0 -1
  10. package/build/hooks/use_conversation.js.map +1 -1
  11. package/build/hooks/use_conversation_jolt_events.d.ts.map +1 -1
  12. package/build/hooks/use_conversation_jolt_events.js +9 -1
  13. package/build/hooks/use_conversation_jolt_events.js.map +1 -1
  14. package/build/hooks/use_conversation_messages.d.ts +1 -0
  15. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  16. package/build/hooks/use_conversation_messages.js +2 -2
  17. package/build/hooks/use_conversation_messages.js.map +1 -1
  18. package/build/hooks/use_conversations_actions.d.ts.map +1 -1
  19. package/build/hooks/use_conversations_actions.js +12 -1
  20. package/build/hooks/use_conversations_actions.js.map +1 -1
  21. package/build/screens/conversation_screen.d.ts.map +1 -1
  22. package/build/screens/conversation_screen.js +3 -5
  23. package/build/screens/conversation_screen.js.map +1 -1
  24. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts +1 -1
  25. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts.map +1 -1
  26. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js +2 -13
  27. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js.map +1 -1
  28. package/build/screens/conversation_select_recipients/types/screen_props.d.ts +0 -2
  29. package/build/screens/conversation_select_recipients/types/screen_props.d.ts.map +1 -1
  30. package/build/screens/conversation_select_recipients/types/screen_props.js.map +1 -1
  31. package/build/screens/conversations/components/list_header_component.js +1 -1
  32. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  33. package/build/types/jolt_events/reaction_events.d.ts +1 -0
  34. package/build/types/jolt_events/reaction_events.d.ts.map +1 -1
  35. package/build/types/jolt_events/reaction_events.js.map +1 -1
  36. package/build/types/resources/direct_message_candidate.d.ts +0 -1
  37. package/build/types/resources/direct_message_candidate.d.ts.map +1 -1
  38. package/build/types/resources/direct_message_candidate.js.map +1 -1
  39. package/build/types/resources/member.d.ts +0 -1
  40. package/build/types/resources/member.d.ts.map +1 -1
  41. package/build/types/resources/member.js.map +1 -1
  42. package/build/types/resources/member_ability.d.ts +0 -1
  43. package/build/types/resources/member_ability.d.ts.map +1 -1
  44. package/build/types/resources/member_ability.js.map +1 -1
  45. package/package.json +3 -3
  46. package/src/components/conversation/messages_disabled_banners.tsx +4 -31
  47. package/src/hooks/direct_messages/use_find_or_create_direct_message_conversation.ts +11 -2
  48. package/src/hooks/use_conversation.ts +0 -1
  49. package/src/hooks/use_conversation_jolt_events.ts +6 -1
  50. package/src/hooks/use_conversation_messages.ts +6 -5
  51. package/src/hooks/use_conversations_actions.ts +13 -1
  52. package/src/screens/conversation_screen.tsx +5 -11
  53. package/src/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.tsx +4 -18
  54. package/src/screens/conversation_select_recipients/types/screen_props.tsx +0 -2
  55. package/src/screens/conversations/components/list_header_component.tsx +6 -6
  56. package/src/types/jolt_events/reaction_events.ts +1 -0
  57. package/src/types/resources/direct_message_candidate.ts +0 -5
  58. package/src/types/resources/member.ts +0 -1
  59. package/src/types/resources/member_ability.ts +0 -1
  60. package/build/hooks/direct_messages/find_direct_message_conversation.d.ts +0 -14
  61. package/build/hooks/direct_messages/find_direct_message_conversation.d.ts.map +0 -1
  62. package/build/hooks/direct_messages/find_direct_message_conversation.js +0 -10
  63. package/build/hooks/direct_messages/find_direct_message_conversation.js.map +0 -1
  64. package/build/hooks/direct_messages/resolve_message_available_members_link.d.ts +0 -16
  65. package/build/hooks/direct_messages/resolve_message_available_members_link.d.ts.map +0 -1
  66. package/build/hooks/direct_messages/resolve_message_available_members_link.js +0 -24
  67. package/build/hooks/direct_messages/resolve_message_available_members_link.js.map +0 -1
  68. package/build/hooks/direct_messages/use_message_available_members.d.ts +0 -6
  69. package/build/hooks/direct_messages/use_message_available_members.d.ts.map +0 -1
  70. package/build/hooks/direct_messages/use_message_available_members.js +0 -40
  71. package/build/hooks/direct_messages/use_message_available_members.js.map +0 -1
  72. package/build/hooks/direct_messages/use_message_available_members_action.d.ts +0 -6
  73. package/build/hooks/direct_messages/use_message_available_members_action.d.ts.map +0 -1
  74. package/build/hooks/direct_messages/use_message_available_members_action.js +0 -30
  75. package/build/hooks/direct_messages/use_message_available_members_action.js.map +0 -1
  76. package/src/__tests__/hooks/resolve_message_available_members_link.test.ts +0 -72
  77. package/src/hooks/direct_messages/find_direct_message_conversation.ts +0 -16
  78. package/src/hooks/direct_messages/resolve_message_available_members_link.ts +0 -42
  79. package/src/hooks/direct_messages/use_message_available_members.ts +0 -65
  80. package/src/hooks/direct_messages/use_message_available_members_action.ts +0 -34
@@ -1,42 +0,0 @@
1
- import { ConversationResource } from '../../types'
2
- import { PreselectedDirectMessagePerson } from '../../types/resources/direct_message_candidate'
3
- import { MemberResource } from '../../types/resources/member'
4
-
5
- export type MessageAvailableMembersLink =
6
- | { label: string; existingConversationId: number }
7
- | { label: string; recipients: PreselectedDirectMessagePerson[] }
8
-
9
- export function resolveMessageAvailableMembersLink({
10
- availableMembers,
11
- existingConversations,
12
- canCreateDirectMessages,
13
- }: {
14
- availableMembers: Pick<MemberResource, 'id' | 'name' | 'avatar'>[]
15
- existingConversations: Pick<ConversationResource, 'id' | 'disabled'>[] | undefined
16
- canCreateDirectMessages: boolean
17
- }): MessageAvailableMembersLink | undefined {
18
- if (availableMembers.length === 0 || !existingConversations) return undefined
19
-
20
- const label =
21
- availableMembers.length === 1
22
- ? `Message ${availableMembers[0].name.split(' ')[0]}`
23
- : `Message the remaining ${availableMembers.length} people`
24
-
25
- const existingConversation = existingConversations[0]
26
- if (existingConversation) {
27
- return existingConversation.disabled
28
- ? undefined
29
- : { label, existingConversationId: Number(existingConversation.id) }
30
- }
31
-
32
- if (!canCreateDirectMessages) return undefined
33
-
34
- return {
35
- label,
36
- recipients: availableMembers.map(m => ({
37
- id: m.id.toString(),
38
- name: m.name,
39
- avatar: m.avatar,
40
- })),
41
- }
42
- }
@@ -1,65 +0,0 @@
1
- import { useQuery } from '@tanstack/react-query'
2
- import { useMemo } from 'react'
3
- import { ConversationResource } from '../../types'
4
- import { MemberResource } from '../../types/resources/member'
5
- import { useApiGet } from '../use_api'
6
- import { useApiClient } from '../use_api_client'
7
- import { useCurrentPerson } from '../use_current_person'
8
- import { getRequestQueryKey } from '../use_suspense_api'
9
- import {
10
- findDirectMessageConversation,
11
- getFindDirectMessageConversationRequestArgs,
12
- } from './find_direct_message_conversation'
13
- import {
14
- MessageAvailableMembersLink,
15
- resolveMessageAvailableMembersLink,
16
- } from './resolve_message_available_members_link'
17
-
18
- export function useMessageAvailableMembers(
19
- conversation: ConversationResource,
20
- { enabled }: { enabled: boolean }
21
- ): MessageAvailableMembersLink | undefined {
22
- const apiClient = useApiClient()
23
- const currentPerson = useCurrentPerson()
24
-
25
- const { data: members } = useApiGet<MemberResource[]>(
26
- {
27
- url: `/me/conversations/${conversation.id}/members`,
28
- data: { fields: { Member: ['name', 'avatar', 'direct_messages_disabled'] } },
29
- },
30
- { enabled }
31
- )
32
-
33
- const availableMembers = useMemo(() => {
34
- if (!enabled || !members) return []
35
-
36
- const currentMember = members.find(m => m.id === currentPerson.id)
37
- if (currentMember?.directMessagesDisabled) return []
38
-
39
- return members.filter(m => m.id !== currentPerson.id && !m.directMessagesDisabled)
40
- }, [enabled, members, currentPerson.id])
41
-
42
- const availablePersonIds = useMemo(() => availableMembers.map(m => m.id), [availableMembers])
43
-
44
- const { data: existingDirectMessageData } = useQuery({
45
- queryKey: getRequestQueryKey(
46
- getFindDirectMessageConversationRequestArgs(availablePersonIds.map(String))
47
- ),
48
- queryFn: () => findDirectMessageConversation(apiClient, availablePersonIds.map(String)),
49
- enabled: availablePersonIds.length > 0,
50
- })
51
-
52
- return useMemo(
53
- () =>
54
- resolveMessageAvailableMembersLink({
55
- availableMembers,
56
- existingConversations: existingDirectMessageData?.data,
57
- canCreateDirectMessages: !!conversation.memberAbility?.canCreateDirectMessages,
58
- }),
59
- [
60
- availableMembers,
61
- existingDirectMessageData,
62
- conversation.memberAbility?.canCreateDirectMessages,
63
- ]
64
- )
65
- }
@@ -1,34 +0,0 @@
1
- import { StackActions, useNavigation } from '@react-navigation/native'
2
- import { ConversationResource } from '../../types'
3
- import { useMessageAvailableMembers } from './use_message_available_members'
4
-
5
- export function useMessageAvailableMembersAction(conversation: ConversationResource) {
6
- const navigation = useNavigation()
7
- const isDmDisabled =
8
- !!conversation.disabled && conversation.disabledReason === 'direct_messages_disabled'
9
- const messageAvailableMembersLink = useMessageAvailableMembers(conversation, {
10
- enabled: isDmDisabled,
11
- })
12
-
13
- if (!messageAvailableMembersLink) return undefined
14
-
15
- return {
16
- label: messageAvailableMembersLink.label,
17
- onPress: () => {
18
- if ('existingConversationId' in messageAvailableMembersLink) {
19
- // replace instead of navigate/push so the disabled conversation isn't
20
- // left in the back stack as a dead end
21
- navigation.dispatch(
22
- StackActions.replace('Conversation', {
23
- conversation_id: messageAvailableMembersLink.existingConversationId,
24
- })
25
- )
26
- } else {
27
- navigation.navigate('New', {
28
- screen: 'ConversationSelectDirectMessageRecipients',
29
- params: { preselected_people: messageAvailableMembersLink.recipients },
30
- })
31
- }
32
- },
33
- }
34
- }