remove unused route
This commit is contained in:
parent
5c55d16100
commit
54705f34a5
|
@ -1,431 +0,0 @@
|
|||
import React, { useCallback, useMemo, useState } from 'react'
|
||||
|
||||
import { BellIcon } from '~/src/icons/bell-icon'
|
||||
// import styled from 'styled-components'
|
||||
import { styled } from '~/src/styles/config'
|
||||
import { Box, Button, IconButton, TextInput } from '~/src/system'
|
||||
|
||||
import { ActivityButton } from '../../components/ActivityCenter/ActivityButton'
|
||||
import { BackButton } from '../../components/Buttons/BackButton'
|
||||
import { buttonStyles } from '../../components/Buttons/buttonStyle'
|
||||
import { ChatInput } from '../../components/Chat-legacy/ChatInput'
|
||||
import { CrossIcon } from '../../components/Icons/CrossIcon'
|
||||
import { Member } from '../../components/Members/Member'
|
||||
import { SearchBlock } from '../../components/SearchBlock'
|
||||
import { textMediumStyles } from '../../components/Text'
|
||||
// import { ChatState, useChatState } from '../../contexts/chatStateProvider'
|
||||
// import { useUserPublicKey } from '../../contexts/identityProvider'
|
||||
// import { useMessengerContext } from '../../contexts/messengerProvider'
|
||||
// import { useNarrow } from '../../contexts/narrowProvider'
|
||||
|
||||
// import type { ChannelData } from '../../models/ChannelData'
|
||||
|
||||
interface Props {
|
||||
setEditGroup?: (val: boolean) => void
|
||||
activeChannel?: ChannelData
|
||||
}
|
||||
|
||||
export const NewChat = (props: Props) => {
|
||||
const { setEditGroup, activeChannel } = props
|
||||
|
||||
const narrow = useNarrow()
|
||||
const userPK = useUserPublicKey()
|
||||
const [query, setQuery] = useState('')
|
||||
const [groupChatMembersIds, setGroupChatMembersIds] = useState<string[]>(
|
||||
activeChannel?.members?.map(member => member.id) ?? []
|
||||
)
|
||||
const { contacts, createGroupChat, addMembers } = useMessengerContext()
|
||||
|
||||
const groupChatMembers = useMemo(
|
||||
() => groupChatMembersIds.map(id => contacts[id]).filter(e => !!e),
|
||||
[groupChatMembersIds, contacts]
|
||||
)
|
||||
|
||||
const contactsList = useMemo(() => {
|
||||
return Object.values(contacts)
|
||||
.filter(
|
||||
member =>
|
||||
member.id.includes(query) ||
|
||||
member?.customName?.includes(query) ||
|
||||
member.trueName.includes(query)
|
||||
)
|
||||
.filter(member => !groupChatMembersIds.includes(member.id))
|
||||
}, [query, groupChatMembersIds, contacts])
|
||||
|
||||
const setChatState = useChatState()[1]
|
||||
|
||||
const addMember = useCallback(
|
||||
(member: string) => {
|
||||
setGroupChatMembersIds((prevMembers: string[]) => {
|
||||
if (
|
||||
prevMembers.find(mem => mem === member) ||
|
||||
prevMembers.length >= 5
|
||||
) {
|
||||
return prevMembers
|
||||
} else {
|
||||
return [...prevMembers, member]
|
||||
}
|
||||
})
|
||||
setQuery('')
|
||||
},
|
||||
[setGroupChatMembersIds]
|
||||
)
|
||||
const removeMember = useCallback(
|
||||
(member: string) => {
|
||||
setGroupChatMembersIds(prev => prev.filter(e => e != member))
|
||||
},
|
||||
[setGroupChatMembersIds]
|
||||
)
|
||||
|
||||
const createChat = useCallback(
|
||||
(group: string[]) => {
|
||||
if (userPK) {
|
||||
const newGroup = group.slice()
|
||||
newGroup.push(userPK)
|
||||
createGroupChat(newGroup)
|
||||
setChatState(ChatState.ChatBody)
|
||||
}
|
||||
},
|
||||
[userPK, createGroupChat, setChatState]
|
||||
)
|
||||
|
||||
const handleCreationClick = useCallback(() => {
|
||||
if (!activeChannel) {
|
||||
createChat(groupChatMembers.map(member => member.id))
|
||||
} else {
|
||||
addMembers(
|
||||
groupChatMembers.map(member => member.id),
|
||||
activeChannel.id
|
||||
)
|
||||
}
|
||||
setEditGroup?.(false)
|
||||
}, [activeChannel, groupChatMembers, createChat, addMembers, setEditGroup])
|
||||
|
||||
return (
|
||||
<Wrapper>
|
||||
<NavbarWrapper>
|
||||
<Box css={{ flex: 1 }}>
|
||||
<TextInput />
|
||||
</Box>
|
||||
<Button
|
||||
// disabled={groupChatMembers.length === 0}
|
||||
onClick={handleCreationClick}
|
||||
>
|
||||
Confirm
|
||||
</Button>
|
||||
<IconButton label="Show Activity Center">
|
||||
<BellIcon />
|
||||
</IconButton>
|
||||
</NavbarWrapper>
|
||||
</Wrapper>
|
||||
)
|
||||
|
||||
// return (
|
||||
// <Wrapper className={`${narrow && 'narrow'}`}>
|
||||
// <CreationBar
|
||||
// className={`${groupChatMembers.length === 5 && narrow && 'limit'}`}
|
||||
// >
|
||||
// {narrow && (
|
||||
// <BackButton
|
||||
// onBtnClick={() =>
|
||||
// setEditGroup
|
||||
// ? setEditGroup?.(false)
|
||||
// : setChatState(ChatState.ChatBody)
|
||||
// }
|
||||
// className="narrow"
|
||||
// />
|
||||
// )}
|
||||
// <Column>
|
||||
// <InputBar>
|
||||
// <InputText>To:</InputText>
|
||||
// <StyledList>
|
||||
// {groupChatMembers.map(member => (
|
||||
// <StyledMember key={member.id}>
|
||||
// <StyledName>
|
||||
// {member?.customName?.slice(0, 10) ??
|
||||
// member.trueName.slice(0, 10)}
|
||||
// </StyledName>
|
||||
// <CloseButton onClick={() => removeMember(member.id)}>
|
||||
// <CrossIcon memberView={true} />
|
||||
// </CloseButton>
|
||||
// </StyledMember>
|
||||
// ))}
|
||||
// </StyledList>
|
||||
// {groupChatMembers.length < 5 && (
|
||||
// <SearchMembers>
|
||||
// <Input
|
||||
// value={query}
|
||||
// onInput={e => setQuery(e.currentTarget.value)}
|
||||
// />
|
||||
// </SearchMembers>
|
||||
// )}
|
||||
// {!narrow && groupChatMembers.length === 5 && (
|
||||
// <LimitAlert>5 user Limit reached</LimitAlert>
|
||||
// )}
|
||||
// </InputBar>
|
||||
// {narrow && groupChatMembers.length === 5 && (
|
||||
// <LimitAlert className="narrow">5 user Limit reached</LimitAlert>
|
||||
// )}
|
||||
// </Column>
|
||||
// <Button
|
||||
// disabled={groupChatMembers.length === 0}
|
||||
// onClick={handleCreationClick}
|
||||
// >
|
||||
// Confirm
|
||||
// </Button>
|
||||
|
||||
// <IconButton label="Show Activity Center">
|
||||
// <BellIcon />
|
||||
// </IconButton>
|
||||
|
||||
// {!narrow && <ActivityButton className="creation" />}
|
||||
// {!narrow && (
|
||||
// <SearchBlock
|
||||
// query={query}
|
||||
// discludeList={groupChatMembersIds}
|
||||
// onClick={addMember}
|
||||
// />
|
||||
// )}
|
||||
// </CreationBar>
|
||||
// {((!setEditGroup && groupChatMembers.length === 0) || narrow) &&
|
||||
// Object.keys(contacts).length > 0 && (
|
||||
// <Contacts>
|
||||
// <ContactsHeading>Contacts</ContactsHeading>
|
||||
// <ContactsList>
|
||||
// {userPK && narrow
|
||||
// ? contactsList.map(contact => (
|
||||
// <Contact key={contact.id}>
|
||||
// <Member
|
||||
// contact={contact}
|
||||
// isOnline={contact.online}
|
||||
// onClick={() => addMember(contact.id)}
|
||||
// />
|
||||
// </Contact>
|
||||
// ))
|
||||
// : Object.values(contacts)
|
||||
// .filter(
|
||||
// e => e.id != userPK && !groupChatMembersIds.includes(e.id)
|
||||
// )
|
||||
// .map(contact => (
|
||||
// <Contact key={contact.id}>
|
||||
// <Member
|
||||
// contact={contact}
|
||||
// isOnline={contact.online}
|
||||
// onClick={() => addMember(contact.id)}
|
||||
// />
|
||||
// </Contact>
|
||||
// ))}
|
||||
// </ContactsList>
|
||||
// </Contacts>
|
||||
// )}
|
||||
// {!setEditGroup && Object.keys(contacts).length === 0 && (
|
||||
// <EmptyContacts>
|
||||
// <EmptyContactsHeading>
|
||||
// You only can send direct messages to your Contacts.{' '}
|
||||
// </EmptyContactsHeading>
|
||||
// <EmptyContactsHeading>
|
||||
// {' '}
|
||||
// Send a contact request to the person you would like to chat with,
|
||||
// you will be able to chat with them once they have accepted your
|
||||
// contact request.
|
||||
// </EmptyContactsHeading>
|
||||
// </EmptyContacts>
|
||||
// )}
|
||||
|
||||
// {!activeChannel && (
|
||||
// <ChatInput
|
||||
// createChat={createChat}
|
||||
// group={groupChatMembers.map(member => member.id)}
|
||||
// />
|
||||
// )}
|
||||
// </Wrapper>
|
||||
// )
|
||||
}
|
||||
|
||||
const Wrapper = styled('div', {
|
||||
flex: 1,
|
||||
position: 'relative',
|
||||
width: '100%',
|
||||
height: '100%',
|
||||
display: 'flex',
|
||||
flexDirection: 'column',
|
||||
alignItems: 'stretch',
|
||||
})
|
||||
|
||||
const NavbarWrapper = styled('div', {
|
||||
display: 'flex',
|
||||
alignItems: 'center',
|
||||
// justifyContent: 'space-between',
|
||||
gap: '$4',
|
||||
padding: '10px 16px',
|
||||
})
|
||||
|
||||
// const Wrapper = styled.div`
|
||||
// height: 100%;
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// justify-content: space-between;
|
||||
// flex: 1;
|
||||
// background-color: ${({ theme }) => theme.bodyBackgroundColor};
|
||||
// padding: 8px 16px;
|
||||
|
||||
// &.narrow {
|
||||
// width: 100%;
|
||||
// max-width: 100%;
|
||||
// }
|
||||
// `
|
||||
|
||||
// const CreationBar = styled.div`
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// margin-bottom: 24px;
|
||||
// position: relative;
|
||||
|
||||
// &.limit {
|
||||
// align-items: flex-start;
|
||||
// }
|
||||
// `
|
||||
|
||||
// const Column = styled.div`
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// align-items: center;
|
||||
// flex: 1;
|
||||
// margin-right: 16px;
|
||||
// overflow-x: hidden;
|
||||
// `
|
||||
|
||||
// const InputBar = styled.div`
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// width: 100%;
|
||||
// height: 44px;
|
||||
// background-color: ${({ theme }) => theme.inputColor};
|
||||
// border: 1px solid ${({ theme }) => theme.inputColor};
|
||||
// border-radius: 8px;
|
||||
// padding: 6px 16px;
|
||||
|
||||
// ${textMediumStyles}
|
||||
// `
|
||||
|
||||
// const Input = styled.input`
|
||||
// width: 100%;
|
||||
// min-width: 20px;
|
||||
// background-color: ${({ theme }) => theme.inputColor};
|
||||
// border: 1px solid ${({ theme }) => theme.inputColor};
|
||||
// outline: none;
|
||||
// resize: none;
|
||||
|
||||
// ${textMediumStyles}
|
||||
|
||||
// &:focus {
|
||||
// outline: none;
|
||||
// caret-color: ${({ theme }) => theme.notificationColor};
|
||||
// }
|
||||
// `
|
||||
|
||||
// const InputText = styled.div`
|
||||
// color: ${({ theme }) => theme.secondary};
|
||||
// margin-right: 8px;
|
||||
// `
|
||||
|
||||
// const CreationBtn = styled.button`
|
||||
// padding: 11px 24px;
|
||||
// ${buttonStyles}
|
||||
|
||||
// &:disabled {
|
||||
// background: ${({ theme }) => theme.inputColor};
|
||||
// color: ${({ theme }) => theme.secondary};
|
||||
// }
|
||||
// `
|
||||
|
||||
// const StyledList = styled.div`
|
||||
// display: flex;
|
||||
// overflow-x: scroll;
|
||||
// margin-right: 8px;
|
||||
|
||||
// &::-webkit-scrollbar {
|
||||
// display: none;
|
||||
// }
|
||||
// `
|
||||
|
||||
// const StyledMember = styled.div`
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// padding: 4px 4px 4px 8px;
|
||||
// background: ${({ theme }) => theme.tertiary};
|
||||
// color: ${({ theme }) => theme.bodyBackgroundColor};
|
||||
// border-radius: 8px;
|
||||
|
||||
// & + & {
|
||||
// margin-left: 8px;
|
||||
// }
|
||||
// `
|
||||
|
||||
// const StyledName = styled.p`
|
||||
// color: ${({ theme }) => theme.bodyBackgroundColor};
|
||||
|
||||
// ${textMediumStyles}
|
||||
// `
|
||||
|
||||
// const CloseButton = styled.button`
|
||||
// width: 20px;
|
||||
// height: 20px;
|
||||
// `
|
||||
|
||||
// const Contacts = styled.div`
|
||||
// height: calc(100% - 44px);
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// flex: 1;
|
||||
// overflow: auto;
|
||||
// `
|
||||
|
||||
// const Contact = styled.div`
|
||||
// display: flex;
|
||||
// align-items: center;
|
||||
// padding: 12px 12px 0 16px;
|
||||
// border-radius: 8px;
|
||||
|
||||
// &:hover {
|
||||
// background: ${({ theme }) => theme.inputColor};
|
||||
// }
|
||||
// `
|
||||
|
||||
// const ContactsHeading = styled.p`
|
||||
// color: ${({ theme }) => theme.secondary};
|
||||
|
||||
// ${textMediumStyles}
|
||||
// `
|
||||
|
||||
// const ContactsList = styled.div`
|
||||
// display: flex;
|
||||
// flex-direction: column;
|
||||
// `
|
||||
|
||||
// const EmptyContacts = styled(Contacts)`
|
||||
// justify-content: center;
|
||||
// align-items: center;
|
||||
// `
|
||||
|
||||
// const EmptyContactsHeading = styled(ContactsHeading)`
|
||||
// max-width: 550px;
|
||||
// margin-bottom: 24px;
|
||||
// text-align: center;
|
||||
// `
|
||||
|
||||
// const SearchMembers = styled.div`
|
||||
// position: relative;
|
||||
// flex: 1;
|
||||
// `
|
||||
|
||||
// const LimitAlert = styled.p`
|
||||
// text-transform: uppercase;
|
||||
// margin-left: auto;
|
||||
// color: ${({ theme }) => theme.redColor};
|
||||
// white-space: nowrap;
|
||||
|
||||
// &.narrow {
|
||||
// margin: 8px 0 0;
|
||||
// }
|
||||
// `
|
Loading…
Reference in New Issue