Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions app/definitions/rest/v1/omnichannel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ export type OmnichannelEndpoints = {
{
_id: string;
label: string;
visibility?: string;
scope?: string;
}
];
}>;
Expand Down
20 changes: 7 additions & 13 deletions app/views/LivechatEditView.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,6 @@ interface ITitle {
theme: string;
}

interface IField {
_id: string;
visibility: string;
scope: string;
}

interface IInputs {
livechatData: {
[key: string]: any;
Expand Down Expand Up @@ -115,17 +109,17 @@ const LivechatEditView = ({
const visitor = route.params?.roomUser ?? {};

const getCustomFields = async () => {
const result: any = await RocketChat.getCustomFields();
const result = await RocketChat.getCustomFields();
if (result.success && result.customFields?.length) {
const visitorCustomFields = result.customFields
.filter((field: IField) => field.visibility !== 'hidden' && field.scope === 'visitor')
.map((field: IField) => ({ [field._id]: (visitor.livechatData && visitor.livechatData[field._id]) || '' }))
.reduce((ret: IField, field: IField) => ({ ...field, ...ret }));
.filter(field => field.visibility !== 'hidden' && field.scope === 'visitor')
.map(field => ({ [field._id]: (visitor.livechatData && visitor.livechatData[field._id]) || '' }))
.reduce((ret, field) => ({ ...field, ...ret }), {});

const livechatCustomFields = result.customFields
.filter((field: IField) => field.visibility !== 'hidden' && field.scope === 'room')
.map((field: IField) => ({ [field._id]: (livechat.livechatData && livechat.livechatData[field._id]) || '' }))
.reduce((ret: IField, field: IField) => ({ ...field, ...ret }));
.filter(field => field.visibility !== 'hidden' && field.scope === 'room')
.map(field => ({ [field._id]: (livechat.livechatData && livechat.livechatData[field._id]) || '' }))
.reduce((ret, field) => ({ ...field, ...ret }), {});

return setCustomFields({ visitor: visitorCustomFields, livechat: livechatCustomFields });
}
Expand Down