chore: add omnichannel permissions to RightButtons
chore: missing changes to previous commit on RoomView
This commit is contained in:
parent
a2965a3f93
commit
97d4dc9f3b
|
@ -82,16 +82,7 @@ class RightButtonsContainer extends Component<IRightButtonsProps, IRigthButtonsS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (t === 'l') {
|
if (t === 'l') {
|
||||||
const canReturnQueue = await this.canReturnQueue();
|
this.setOmnichannelPermissions();
|
||||||
const canForwardGuest = await this.canForwardGuest();
|
|
||||||
this.setState({ canReturnQueue, canForwardGuest });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
componentDidUpdate(prevProps: IRightButtonsProps) {
|
|
||||||
const { status } = this.props;
|
|
||||||
if (prevProps.status !== status) {
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,6 +113,14 @@ class RightButtonsContainer extends Component<IRightButtonsProps, IRigthButtonsS
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps: IRightButtonsProps) {
|
||||||
|
const { status, joined } = this.props;
|
||||||
|
|
||||||
|
if (prevProps.status !== status || prevProps.joined !== joined) {
|
||||||
|
this.setOmnichannelPermissions();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
componentWillUnmount() {
|
||||||
if (this.threadSubscription && this.threadSubscription.unsubscribe) {
|
if (this.threadSubscription && this.threadSubscription.unsubscribe) {
|
||||||
this.threadSubscription.unsubscribe();
|
this.threadSubscription.unsubscribe();
|
||||||
|
@ -131,6 +130,12 @@ class RightButtonsContainer extends Component<IRightButtonsProps, IRigthButtonsS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setOmnichannelPermissions = async () => {
|
||||||
|
const canReturnQueue = await this.canReturnQueue();
|
||||||
|
const canForwardGuest = await this.canForwardGuest();
|
||||||
|
this.setState({ canReturnQueue, canForwardGuest });
|
||||||
|
};
|
||||||
|
|
||||||
observeThread = (threadRecord: TMessageModel) => {
|
observeThread = (threadRecord: TMessageModel) => {
|
||||||
const threadObservable: Observable<TMessageModel> = threadRecord.observe();
|
const threadObservable: Observable<TMessageModel> = threadRecord.observe();
|
||||||
this.threadSubscription = threadObservable.subscribe(thread => this.updateThread(thread));
|
this.threadSubscription = threadObservable.subscribe(thread => this.updateThread(thread));
|
||||||
|
@ -278,13 +283,17 @@ class RightButtonsContainer extends Component<IRightButtonsProps, IRigthButtonsS
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
isOmnichannelPreview = () => {
|
||||||
|
const { joined, status } = this.props;
|
||||||
|
return joined && status !== 'queued';
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { isFollowingThread, tunread, tunreadUser, tunreadGroup } = this.state;
|
const { isFollowingThread, tunread, tunreadUser, tunreadGroup } = this.state;
|
||||||
const { t, tmid, threadsEnabled, teamId, joined, status } = this.props;
|
const { t, tmid, threadsEnabled, teamId, joined } = this.props;
|
||||||
const isOmnichannelPreview = joined && status !== 'queued';
|
|
||||||
|
|
||||||
if (t === 'l') {
|
if (t === 'l') {
|
||||||
if (isOmnichannelPreview) {
|
if (this.isOmnichannelPreview()) {
|
||||||
return (
|
return (
|
||||||
<HeaderButton.Container>
|
<HeaderButton.Container>
|
||||||
<HeaderButton.Item iconName='kebab' onPress={this.showMoreActions} testID='room-view-header-omnichannel-kebab' />
|
<HeaderButton.Item iconName='kebab' onPress={this.showMoreActions} testID='room-view-header-omnichannel-kebab' />
|
||||||
|
|
|
@ -315,7 +315,7 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentDidUpdate(prevProps: IRoomViewProps, prevState: IRoomViewState) {
|
componentDidUpdate(prevProps: IRoomViewProps, prevState: IRoomViewState) {
|
||||||
const { roomUpdate } = this.state;
|
const { roomUpdate, joined } = this.state;
|
||||||
const { appState, insets, route } = this.props;
|
const { appState, insets, route } = this.props;
|
||||||
|
|
||||||
if (route?.params?.jumpToMessageId && route?.params?.jumpToMessageId !== prevProps.route?.params?.jumpToMessageId) {
|
if (route?.params?.jumpToMessageId && route?.params?.jumpToMessageId !== prevProps.route?.params?.jumpToMessageId) {
|
||||||
|
@ -341,7 +341,11 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
}
|
}
|
||||||
// If it's a livechat room
|
// If it's a livechat room
|
||||||
if (this.t === 'l') {
|
if (this.t === 'l') {
|
||||||
if (!dequal(prevState.roomUpdate.visitor, roomUpdate.visitor)) {
|
if (
|
||||||
|
!dequal(prevState.roomUpdate.visitor, roomUpdate.visitor) ||
|
||||||
|
!dequal(prevState.roomUpdate.status, roomUpdate.status) ||
|
||||||
|
prevState.joined !== joined
|
||||||
|
) {
|
||||||
this.setHeader();
|
this.setHeader();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1146,6 +1150,11 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
goToCannedResponses = () => {
|
||||||
|
const { room } = this.state;
|
||||||
|
Navigation.navigate('CannedResponsesListView', { rid: room.rid, room });
|
||||||
|
};
|
||||||
|
|
||||||
renderItem = (item: TAnyMessageModel, previousItem: TAnyMessageModel, highlightedMessage?: string) => {
|
renderItem = (item: TAnyMessageModel, previousItem: TAnyMessageModel, highlightedMessage?: string) => {
|
||||||
const { room, lastOpen, canAutoTranslate } = this.state;
|
const { room, lastOpen, canAutoTranslate } = this.state;
|
||||||
const { user, Message_GroupingPeriod, Message_TimeFormat, useRealName, baseUrl, Message_Read_Receipt_Enabled, theme } =
|
const { user, Message_GroupingPeriod, Message_TimeFormat, useRealName, baseUrl, Message_Read_Receipt_Enabled, theme } =
|
||||||
|
@ -1279,6 +1288,7 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
return (
|
return (
|
||||||
<MessageBox
|
<MessageBox
|
||||||
ref={this.messagebox}
|
ref={this.messagebox}
|
||||||
|
goToCannedResponses={this.goToCannedResponses}
|
||||||
onSubmit={this.sendMessage}
|
onSubmit={this.sendMessage}
|
||||||
rid={this.rid}
|
rid={this.rid}
|
||||||
tmid={this.tmid}
|
tmid={this.tmid}
|
||||||
|
@ -1338,7 +1348,7 @@ class RoomView extends React.Component<IRoomViewProps, IRoomViewState> {
|
||||||
if ('id' in room) {
|
if ('id' in room) {
|
||||||
({ sysMes, bannerClosed, announcement, tunread, ignored } = room);
|
({ sysMes, bannerClosed, announcement, tunread, ignored } = room);
|
||||||
}
|
}
|
||||||
|
console.log({ room });
|
||||||
return (
|
return (
|
||||||
<SafeAreaView style={{ backgroundColor: themes[theme].backgroundColor }} testID='room-view'>
|
<SafeAreaView style={{ backgroundColor: themes[theme].backgroundColor }} testID='room-view'>
|
||||||
<StatusBar />
|
<StatusBar />
|
||||||
|
|
Loading…
Reference in New Issue