diff --git a/example/App.jsx b/example/App.jsx index d6edca6..b547da8 100644 --- a/example/App.jsx +++ b/example/App.jsx @@ -14,14 +14,135 @@ import './App.css'; function App() { const [activeChannelId, setActiveChannelId] = useState(0); + const [triggerScrollToBottom, setTriggerScrollToBottom] = useState(false); + const [messagesModel, setMessagesModel] = useState([ + { + isMe: true, + message: 'This is a message', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'This is a reply', + }, + { + isMe: false, + message: 'End', + }, + + ]); const onItemClick = (id) => { setActiveChannelId(id); + setTriggerScrollToBottom(!triggerScrollToBottom); }; const onSend = (message) => { // eslint-disable-next-line no-console console.log(`onSend(${message})`); + setMessagesModel([ + { + isMe: true, + message: `${message}`, + }, + { + isMe: false, + message: `${message}`, + }, + { + isMe: false, + message: `${message}`, + }, + ...messagesModel, + ]); + }; + + const next = () => { + const message = 'new message'; + setTimeout(() => { + setMessagesModel([ + ...messagesModel, + { + isMe: true, + message: `${message}`, + }, + { + isMe: false, + message: `${message}`, + }, + { + isMe: false, + message: `${message}`, + }, + ]); + }, 1500); }; const channelsModel = [ @@ -39,17 +160,6 @@ function App() { }, ]; - const messagesModel = [ - { - isMe: true, - message: 'This is a message', - }, - { - isMe: false, - message: 'This is a reply', - }, - ]; - return (