import React, { createRef, useState, Fragment, FC } from 'react'; import { Layout, Col, Row, Button, Image } from 'antd'; import { EditOutlined, CloseOutlined, AppstoreOutlined } from '@ant-design/icons'; import ConversationList from "@/components/ConversationList"; import Chatbox from "@/components/Chatbox"; import CustomerInfo from "@/components/CustomerInfo"; import ActionTabs from "@/components/ActionTabs"; import { HelpSideBar } from "@/components/Help"; import HeaderComponent from "@/components/HeaderComponent"; import { useDispatch, useSelector } from "react-redux"; import { AppState } from "@/store/typing"; import { UserInfo } from "@/typings/user"; import { actions } from "@/store/actions"; import GlobalModal from '@/components/GlobalModal'; import GlobalDrawer from "@/components/GlobalDrawer"; import BadgeStatus from "@/components/BadgeStatus"; import NetworkError from "@/components/Error/NetworkError"; import { ClientSettings } from "@/typings"; import TYPING_ANIMATION_IMAGE from "@/assets/typing-animation.gif"; import DashBoard from "@/components/DashBoard"; import { user_list } from "@/test/test_state"; import { DEFAULT_AVATAR } from "@/config"; import '@/styles/app.css'; const { Header, Content, Sider } = Layout; const WINDOW_HEIGHT = global.window.innerHeight; const UserNameForm = ({ user }: { user: UserInfo | null }) => { const [openForm, setFormOpen] = useState(false); const dispatch = useDispatch(); if (!user) { return null; } const userInputRef = createRef(); const updateName = () => { let new_name = userInputRef.current?.value; dispatch(actions.updateUserInfo({ id: user.id, name: new_name, })); setFormOpen(false); } const avatar = user.avatar || DEFAULT_AVATAR; if (!openForm) { return (
conversation
{user.name}
{user.location}
{ user.typing && }
( setFormOpen(true)} title={'Thay đổi tên'} /> )
) } return ( ) } function getUserById(user_list: UserInfo[], user_id: string): UserInfo | null { let filtered_list = user_list.filter(user => user.id === user_id); return filtered_list.length > 0 ? filtered_list[0] : null; } const ShowUserSpace = ({openHelp}: {openHelp: () => any}) => { // TODO: const chatting_with_user = useSelector((state: AppState) => state.chatting_with_user); const dispatch = useDispatch(); let chatting_user_info = getUserById(user_list, chatting_with_user); if (!chatting_user_info && user_list.length > 0) { // auto show the first user in the list if there dispatch(actions.chatWithUser(user_list[0].id)); } // else show the dashboard if (!chatting_user_info) { return } return (
Trợ giúp admin
{/* add key to force to component to remount when user id change to simplify the component's code*/}

Lựa chọn

Thông tin khách hàng

) } const App: FC<{ client_setting: ClientSettings }> = ({ client_setting }) => { const HEADER_HEIGHT = 70; const [closeHelp, setHelpClose] = useState(false); const LAYOUT_CLOSED = closeHelp ? { width: 1200, marginLeft: 'auto', marginRight: 'auto' } : { marginTop: HEADER_HEIGHT, height: WINDOW_HEIGHT - HEADER_HEIGHT, overflow: 'auto' }; const windowWidth = window.innerWidth; return (
{ windowWidth <= 1366 ? setHelpClose(true)} /> : setHelpClose(true)} /> } { windowWidth <= 1366 ? ( closeHelp &&

Trợ giúp Admin setHelpClose(false)} title={'Đóng'} />

) :

Trợ giúp Admin setHelpClose(false)} title={'Đóng'} />

}
) }; export default App;