ChatEditorModal.jsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { Button, TextField } from "@mui/material"
  2. import { useState } from "react"
  3. import { connect } from "react-redux"
  4. import { actionUpsertChat } from "../../actions/actionsForChats"
  5. import { history } from "../../App"
  6. import { backendURL } from "../../helpers/gql"
  7. import DropZoneAvatar from "../DropZone/DropZoneAvatar"
  8. import { ChatEditorModalWrapper } from "./ChatEditorModal.style"
  9. const ChatEditorModal = ({handleClose, chats, updateChat}) => {
  10. const [,route, histId] = history.location.pathname.split('/');
  11. const [chatNameValue, setChatNameValue] = useState(chats[histId].title);
  12. const [avatar, setAvatar] = useState();
  13. return (
  14. <ChatEditorModalWrapper>
  15. <div>
  16. <DropZoneAvatar component={"dropAvatarComponent"} onLoad={setAvatar} url={avatar ? URL.createObjectURL(avatar) : `${backendURL}/${chats[histId]?.avatar?.url || ''}`}/>
  17. <TextField
  18. autoFocus
  19. sx={{width: '100%'}}
  20. id="standard-basic"
  21. label="Chat Name"
  22. variant="standard"
  23. color='primary'
  24. value={chatNameValue}
  25. onChange={(e) =>setChatNameValue(e.target.value)}
  26. />
  27. </div>
  28. <div>
  29. <Button variant='text' onClick={handleClose}>Cancel</Button>
  30. <Button variant='text' disabled={chatNameValue ? false : true} onClick={() => {updateChat(histId, chatNameValue, null, avatar);handleClose()}}>Save</Button>
  31. </div>
  32. </ChatEditorModalWrapper>
  33. )
  34. }
  35. export default connect(state => ({chats: state?.chats || []}), {updateChat: actionUpsertChat})(ChatEditorModal);