Chat-Reactベースのチャットセッションコンポーネント
8967 ワード
Chat-React
reactベースのチャットセッションコンポーネントGitHubアドレス
chat-react
デモ
chat-react
使用方法取付 導入 を使用
API
属性&メソッド
を選択します.
説明
userInfo
object
現在のユーザー情報
value
string
入力ボックスの内容
placeholder
string
入力ボックスのプレースホルダ
emoji
any
emojiコンテンツの定義
customEmoticon
array
カスタム表情パック
textareaChange
(value) => {}
コールバック関数、入力ボックスの内容が変化するとトリガーされ、関数の最初のパラメータは現在の入力値です.
selectEmoje
(emojeInfo) => {}
emoji後のコールバック関数を選択し、関数の最初のパラメータは選択したemojeコンテンツ情報です.
inputFocus
func
サブアセンブリinputの組み込み方法、inputフォーカス
dataSource
array
メッセージ・リストのデータ・コンテンツ
messageListStyle
object
メッセージ・リストのスタイル.リストに一定の高さを設定する必要があります.
timestamp
number
データソースが変化したときに設定されたタイムスタンプ
timeBetween
number
指定した間隔内にタイム・プロンプトを表示します(単位:分、デフォルト:5)
timeagoMax
number
指定した時間範囲内に表示される時間(単位:時間、デフォルト:24)
timeFormat
string
カスタムタイムフォーマット(yyyy-MM-dd hh:mm)
loading
bool
データソースがロードされているかどうか
loader
node
カスタムローダ
noData
bool
これ以上データがないか
noDataEle
node
より多くのデータがない場合は、カスタム要素ノードを表示します.
scrollOptions
object
このパラメータはiscrollを使用する.jsのscrollbarsパラメータ、iscrollを表示します.jsドキュメント
scrolltoUpper
func
スクロールバーが上部にスクロールされたときにトリガーされるコールバック関数
onScroll
func
スクロールバーがスクロールされるとトリガーされるコールバック関数
avatarClick
(value) => {}
ユーザはアイコンをクリックしてトリガしたコールバック関数をクリックし、パラメータvalueはクリックされたユーザ情報である.
unreadCountChange
func
未読メッセージ変更時のコールバック関数
setScrollTop
setScrollTop(value)
サブアセンブリmessageの組み込み方法で、スクロールバー位置
コンポーネントパラメータの説明 などのコンテンツに拡張されないように、一定の高さを設定する必要があります. として再設定する必要がある. に設定することを示す.
reactベースのチャットセッションコンポーネントGitHubアドレス
chat-react
デモ
chat-react
使用方法
npm install chat-react
import Chat from 'chat-react';
export default class MyChat extends Component {
state = {
inputValue: '',
messages: [],
timestamp: new Date().getTime()
}
setInputfoucs = () => {
this.chat.refs.input.inputFocus(); //set input foucus
}
setScrollTop = () => {
this.chat.refs.message.setScrollTop(1200); //set scrollTop position
}
sendMessage = (v) => {
const {value} = v;
if (!value) return;
const {messages = []} = this.state;
messages.push(v);
this.setState({messages, timestamp: new Date().getTime(), inputValue: ''});
}
render() {
const {inputValue, messages, timestamp} = this.state;
const userInfo = {
avatar: "http://img.binlive.cn/6.png",
userId: "59e454ea53107d66ceb0a598",
name: 'ricky'
};
return (
<Chat
ref={el => this.chat = el}
className="my-chat-box"
dataSource={messages}
userInfo={userInfo}
value={inputValue}
sendMessage={this.sendMessage}
timestamp={timestamp}
placeholder=" "
messageListStyle={{width: '100%', height: window.outerHeight}}
/>
);
}
}
API
属性&メソッド
を選択します.
説明
userInfo
object
現在のユーザー情報
value
string
入力ボックスの内容
placeholder
string
入力ボックスのプレースホルダ
emoji
any
emojiコンテンツの定義
customEmoticon
array
カスタム表情パック
textareaChange
(value) => {}
コールバック関数、入力ボックスの内容が変化するとトリガーされ、関数の最初のパラメータは現在の入力値です.
selectEmoje
(emojeInfo) => {}
emoji後のコールバック関数を選択し、関数の最初のパラメータは選択したemojeコンテンツ情報です.
inputFocus
func
サブアセンブリinputの組み込み方法、inputフォーカス
this.chat.refs.input.inputFocus()
を設定するために使用されるdataSource
array
メッセージ・リストのデータ・コンテンツ
messageListStyle
object
メッセージ・リストのスタイル.リストに一定の高さを設定する必要があります.
timestamp
number
データソースが変化したときに設定されたタイムスタンプ
timeBetween
number
指定した間隔内にタイム・プロンプトを表示します(単位:分、デフォルト:5)
timeagoMax
number
指定した時間範囲内に表示される時間(単位:時間、デフォルト:24)
timeFormat
string
カスタムタイムフォーマット(yyyy-MM-dd hh:mm)
loading
bool
データソースがロードされているかどうか
loader
node
カスタムローダ
noData
bool
これ以上データがないか
noDataEle
node
より多くのデータがない場合は、カスタム要素ノードを表示します.
scrollOptions
object
このパラメータはiscrollを使用する.jsのscrollbarsパラメータ、iscrollを表示します.jsドキュメント
scrolltoUpper
func
スクロールバーが上部にスクロールされたときにトリガーされるコールバック関数
onScroll
func
スクロールバーがスクロールされるとトリガーされるコールバック関数
avatarClick
(value) => {}
ユーザはアイコンをクリックしてトリガしたコールバック関数をクリックし、パラメータvalueはクリックされたユーザ情報である.
unreadCountChange
func
未読メッセージ変更時のコールバック関数
setScrollTop
setScrollTop(value)
サブアセンブリmessageの組み込み方法で、スクロールバー位置
this.chat.refs.message.setScrollTop(1200)
を設定します.コンポーネントパラメータの説明
userInfo
このパラメータにuserIdとavatarのプロパティを定義する必要があります.また、必要なプロパティを追加することもできます.userInfo = {
avatar: 'http://example/avatar.jpg', //user avatar, required parameters
userId: '5bf7cf25a069a537ffe7c324', //user id, required parameters
name: 'rigcky',
other: 'otherInfo'
}
emoji
emojiパラメータがfalseに設定されている場合、emojiは表示されません.より多くのemojiを追加したい場合は、このパラメータを配列に設定し、内容を追加したemojiに設定できます.// add more emoji
emoji = [
{text: 'panda', content: '?'},
{text: 'tiger', content: '?'},
{text: 'pig', content: '?'}
]
customEmoticon
カスタム表情パック、パラメータは配列タイプcustomEmoticon = [
{text: 'smile', url: 'http://example/emoticon.png'},
{text: 'angry', url: 'http://example/emoticon2.png'},
{text: 'weep', url: 'data:image/png;base64,iVBORw0KGgoA...'}
]
dataSource
メッセージリストのデータソース、データフォーマットは以下の通り:const customEmoticon = [{
timestamp: 1545925494422,
userInfo: {
avatar: "http://example/2.png",
name: " 1544365758856",
userId: "1544365758856"
},
value: "hello~"
}, {
timestamp: 1545925534218,
userInfo: {
avatar: "http://example/2.png",
name: " 1544365758856",
userId: "1544365758856"
},
value: "?",
error: true // ,
}]
messageListStyle
メッセージリストのコンテナスタイルは、{width: '100%', height: 500}
timestamp
現在dataSourceのデータが変化する場合は、このパラメータを現在のタイムスタンプtimeFormat
時間パラメータをフォーマットし、例えば2019-2-1 20:20にyyyy-MM-dd hh:mm