From 56f713077f6e663ac77df20f1d67b55fd1da153a Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 7 May 2024 21:46:59 -0500 Subject: [🐴] Reorg convo files (#3909) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Remove unused prop * Reorganize --- src/state/messages/index.tsx | 74 +------------------------------------------- 1 file changed, 1 insertion(+), 73 deletions(-) (limited to 'src/state/messages/index.tsx') diff --git a/src/state/messages/index.tsx b/src/state/messages/index.tsx index 60538615a..205d17e8c 100644 --- a/src/state/messages/index.tsx +++ b/src/state/messages/index.tsx @@ -1,79 +1,7 @@ -import React, {useContext, useState, useSyncExternalStore} from 'react' -import {AppState} from 'react-native' -import {BskyAgent} from '@atproto-labs/api' -import {useFocusEffect, useIsFocused} from '@react-navigation/native' +import React from 'react' -import {Convo, ConvoParams, ConvoState} from '#/state/messages/convo' import {CurrentConvoIdProvider} from '#/state/messages/current-convo-id' import {MessagesEventBusProvider} from '#/state/messages/events' -import {useMarkAsReadMutation} from '#/state/queries/messages/conversation' -import {useAgent} from '#/state/session' -import {useDmServiceUrlStorage} from '#/screens/Messages/Temp/useDmServiceUrlStorage' - -const ChatContext = React.createContext(null) - -export function useChat() { - const ctx = useContext(ChatContext) - if (!ctx) { - throw new Error('useChat must be used within a ChatProvider') - } - return ctx -} - -export function ChatProvider({ - children, - convoId, -}: Pick & {children: React.ReactNode}) { - const isScreenFocused = useIsFocused() - const {serviceUrl} = useDmServiceUrlStorage() - const {getAgent} = useAgent() - const [convo] = useState( - () => - new Convo({ - convoId, - agent: new BskyAgent({ - service: serviceUrl, - }), - __tempFromUserDid: getAgent().session?.did!, - }), - ) - const service = useSyncExternalStore(convo.subscribe, convo.getSnapshot) - const {mutate: markAsRead} = useMarkAsReadMutation() - - useFocusEffect( - React.useCallback(() => { - convo.resume() - markAsRead({convoId}) - - return () => { - convo.background() - markAsRead({convoId}) - } - }, [convo, convoId, markAsRead]), - ) - - React.useEffect(() => { - const handleAppStateChange = (nextAppState: string) => { - if (isScreenFocused) { - if (nextAppState === 'active') { - convo.resume() - } else { - convo.background() - } - - markAsRead({convoId}) - } - } - - const sub = AppState.addEventListener('change', handleAppStateChange) - - return () => { - sub.remove() - } - }, [convoId, convo, isScreenFocused, markAsRead]) - - return {children} -} export function MessagesProvider({children}: {children: React.ReactNode}) { return ( -- cgit 1.4.1