Skip to content
Snippets Groups Projects
Commit de45a7f2 authored by Janis Daniel Dähne's avatar Janis Daniel Dähne
Browse files

- modified 404 chat styling

  - added auto scroll disable
parent a636391b
No related branches found
No related tags found
No related merge requests found
...@@ -51,6 +51,8 @@ type ChatMessage = ConversationUserEntered | ConversationMessage ...@@ -51,6 +51,8 @@ type ChatMessage = ConversationUserEntered | ConversationMessage
interface State { interface State {
// tslint:disable-next-line // tslint:disable-next-line
readonly currentConversation: ChatMessage[] readonly currentConversation: ChatMessage[]
readonly isAutoScrollBotEnabled: boolean
} }
const chatWrapperId = 'chat-window-wrapper' const chatWrapperId = 'chat-window-wrapper'
...@@ -75,6 +77,7 @@ class Chat404 extends React.Component<Props, State> { ...@@ -75,6 +77,7 @@ class Chat404 extends React.Component<Props, State> {
this.state = { this.state = {
currentConversation: [], currentConversation: [],
isAutoScrollBotEnabled: true,
} }
} }
...@@ -148,7 +151,10 @@ class Chat404 extends React.Component<Props, State> { ...@@ -148,7 +151,10 @@ class Chat404 extends React.Component<Props, State> {
} as ChatMessage } as ChatMessage
this.scrollToBottom() if (this.state.isAutoScrollBotEnabled) {
this.scrollToBottom()
}
await wait(this.getTypingTimeInMsFromMsg(message.message)) await wait(this.getTypingTimeInMsFromMsg(message.message))
//remove old message and insert new with changed props //remove old message and insert new with changed props
...@@ -170,7 +176,10 @@ class Chat404 extends React.Component<Props, State> { ...@@ -170,7 +176,10 @@ class Chat404 extends React.Component<Props, State> {
} as State } as State
}) })
this.scrollToBottom() if (this.state.isAutoScrollBotEnabled) {
this.scrollToBottom()
}
await wait(this.getReadTimeInMsFromMsg(message.message)) await wait(this.getReadTimeInMsFromMsg(message.message))
} }
...@@ -192,7 +201,11 @@ class Chat404 extends React.Component<Props, State> { ...@@ -192,7 +201,11 @@ class Chat404 extends React.Component<Props, State> {
404 404
</div> </div>
<div className="down-button clickable" onClick={() => { <div className={`down-button clickable${this.state.isAutoScrollBotEnabled ? ' is-enabled' : ''}`} onClick={() => {
this.setState((prevState, props) => ({
...prevState,
isAutoScrollBotEnabled: !prevState.isAutoScrollBotEnabled
}))
this.scrollToBottom() this.scrollToBottom()
}}> }}>
<Icon name="chevron down"/> <Icon name="chevron down"/>
...@@ -228,7 +241,9 @@ class Chat404 extends React.Component<Props, State> { ...@@ -228,7 +241,9 @@ class Chat404 extends React.Component<Props, State> {
} }
if (value.withLoading) { if (value.withLoading) {
return (<div key={key} className="chat-entry foreign-message is-typing"> return (<div key={key} className={`chat-entry foreign-message is-typing${value.name === 'Janis'
? ' alternate'
: ''}`}>
<div className={`user-name${value.name === 'Janis' <div className={`user-name${value.name === 'Janis'
? ' alternate' ? ' alternate'
: ''}`}>{value.name}</div> : ''}`}>{value.name}</div>
...@@ -240,7 +255,9 @@ class Chat404 extends React.Component<Props, State> { ...@@ -240,7 +255,9 @@ class Chat404 extends React.Component<Props, State> {
</div>) </div>)
} }
return (<div key={key} className="chat-entry foreign-message"> return (<div key={key} className={`chat-entry foreign-message${value.name === 'Janis'
? ' alternate'
: ''}`}>
<div className={`user-name${value.name === 'Janis' <div className={`user-name${value.name === 'Janis'
? ' alternate' ? ' alternate'
: ''}`}>{value.name}</div> : ''}`}>{value.name}</div>
...@@ -272,11 +289,11 @@ const conversion: ReadonlyArray<ChatMessage> = [ ...@@ -272,11 +289,11 @@ const conversion: ReadonlyArray<ChatMessage> = [
kind: 'user-entered', kind: 'user-entered',
message: 'Janis hat den Chat betreten' message: 'Janis hat den Chat betreten'
}, },
{ // {
kind: 'message', // kind: 'message',
message: '???', // message: '???',
withLoading: false // withLoading: false
}, // },
{ {
kind: 'message', kind: 'message',
name: 'Steffen', name: 'Steffen',
......
...@@ -18,12 +18,20 @@ ...@@ -18,12 +18,20 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
z-index 2 z-index 2
box-shadow: 0 3px 2px -2px #c3c3c3
.icon { .icon {
margin 0 margin 0
} }
&.is-enabled {
opacity 1 !important
border 1px solid #099eff
border-radius 50%
}
} }
.watermark { .watermark {
pointer-events none pointer-events none
position absolute position absolute
...@@ -42,6 +50,7 @@ ...@@ -42,6 +50,7 @@
background-clip: text; background-clip: text;
color: transparent; color: transparent;
text-shadow: rgba(255, 255, 255, 0.5) 0px 3px 3px; text-shadow: rgba(255, 255, 255, 0.5) 0px 3px 3px;
opacity 0.2
} }
} }
...@@ -52,7 +61,7 @@ ...@@ -52,7 +61,7 @@
} }
.chat-window { .chat-window {
width 100% width calc(100% - 3em)
display flex display flex
flex-direction column flex-direction column
padding 1em padding 1em
...@@ -67,7 +76,7 @@ ...@@ -67,7 +76,7 @@
margin-bottom 1em margin-bottom 1em
max-width 90% max-width 90%
padding 0.3em padding 0.3em
box-shadow: 0px 3px 2px -2px #c3c3c3 box-shadow: 0 3px 2px -2px #c3c3c3
&.user-entered { &.user-entered {
padding: 0.3em 7px; padding: 0.3em 7px;
...@@ -89,6 +98,10 @@ ...@@ -89,6 +98,10 @@
} }
} }
&.foreign-message.alternate {
align-self flex-end
}
&.own-message { &.own-message {
background-color rgb(232, 253, 203) background-color rgb(232, 253, 203)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment