2023-02-07 09:41:54 -05:00
|
|
|
import React from 'react';
|
|
|
|
|
import { useSelector } from 'react-redux';
|
2023-02-07 10:26:19 -05:00
|
|
|
import Messages from './components/main/Messages';
|
|
|
|
|
import TextChat from './components/main/TextChat';
|
2023-02-06 13:27:28 -05:00
|
|
|
import Nav from './components/Nav';
|
2023-02-07 10:26:19 -05:00
|
|
|
import MobileNav from './components/Nav/MobileNav';
|
2023-02-07 16:22:35 -05:00
|
|
|
import { swr } from './utils/fetchers';
|
|
|
|
|
import useDidMountEffect from './hooks/useDidMountEffect';
|
2023-02-04 19:19:53 -05:00
|
|
|
|
|
|
|
|
const App = () => {
|
2023-02-07 16:22:35 -05:00
|
|
|
const { messages } = useSelector((state) => state.messages);
|
2023-02-08 10:49:38 -05:00
|
|
|
const { conversationId } = useSelector((state) => state.convo);
|
2023-02-07 16:22:35 -05:00
|
|
|
const { data, error, isLoading, mutate } = swr('http://localhost:3050/convos');
|
2023-02-08 10:49:38 -05:00
|
|
|
useDidMountEffect(() => mutate(), [conversationId]);
|
2023-02-06 18:25:11 -05:00
|
|
|
|
2023-02-04 19:19:53 -05:00
|
|
|
return (
|
|
|
|
|
<div className="flex h-screen">
|
2023-02-07 09:41:54 -05:00
|
|
|
<Nav conversations={data} />
|
2023-02-06 13:27:28 -05:00
|
|
|
<div className="flex h-full w-full flex-1 flex-col bg-gray-50 md:pl-[260px]">
|
2023-02-08 15:26:42 -05:00
|
|
|
<div className="transition-width relative flex h-full w-full flex-1 flex-col items-stretch overflow-hidden">
|
|
|
|
|
<div className="h-full dark:bg-gray-800">
|
|
|
|
|
<MobileNav />
|
|
|
|
|
<Messages messages={messages} />
|
|
|
|
|
<TextChat
|
|
|
|
|
messages={messages}
|
|
|
|
|
reloadConvos={mutate}
|
|
|
|
|
/>
|
|
|
|
|
</div>
|
2023-02-08 09:15:47 -05:00
|
|
|
</div>
|
2023-02-04 19:19:53 -05:00
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default App;
|