import { useMemo } from 'react' import { useAppGrants } from './use_chat_permissions' export type NewConversationEntryMode = | 'select_type' | 'groups' | 'teams' | 'direct_message' | 'none' export function useConversationTypeAccess() { const appGrants = useAppGrants() return useMemo( () => ({ canCreateGroupsConversations: appGrants.data?.some( g => g.createConversations && g.appName === 'Groups' ), canCreateServicesConversations: appGrants.data?.some( g => g.createConversations && g.appName === 'Services' ), canCreateDirectMessages: appGrants.data?.some( g => g.createConversations && g.appName === 'Chat' ), }), [appGrants.data] ) } export function useNewConversationEntry(): NewConversationEntryMode { const { canCreateGroupsConversations, canCreateServicesConversations, canCreateDirectMessages } = useConversationTypeAccess() return useMemo(() => { const availableCount = [ canCreateGroupsConversations, canCreateServicesConversations, canCreateDirectMessages, ].filter(Boolean).length if (availableCount > 1) { return 'select_type' } if (canCreateGroupsConversations) { return 'groups' } if (canCreateServicesConversations) { return 'teams' } if (canCreateDirectMessages) { return 'direct_message' } return 'none' }, [canCreateGroupsConversations, canCreateServicesConversations, canCreateDirectMessages]) }