Skip to content

Commit

Permalink
Merge branch 'develop' into SUP-66_1
Browse files Browse the repository at this point in the history
  • Loading branch information
murtaza98 authored Jul 12, 2023
2 parents 25636e1 + bd231a0 commit 17c1689
Show file tree
Hide file tree
Showing 37 changed files with 493 additions and 469 deletions.
13 changes: 0 additions & 13 deletions apps/meteor/app/lib/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,19 +47,6 @@ settingsRegistry.addGroup('Settings_Group', function() {
* `enableQuery` - Only enable this setting if the correspondent setting has the value specified
* `alert` - Shows an alert message with the given text

### AccountBox

You can add items to the left upper corner drop menu:
```javascript
AccountBox.addItem({
name: 'Livechat',
icon: 'icon-chat-empty',
class: 'livechat-manager',
condition: () => {
return RocketChat.authz.hasPermission('view-livechat-manager');
}
});
```

### Functions
n/a
Expand Down
12 changes: 1 addition & 11 deletions apps/meteor/app/livechat/client/ui.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,4 @@
import { settings } from '../../settings/client';
import { hasAllPermission } from '../../authorization/client';
import { AccountBox, MessageTypes } from '../../ui-utils/client';

AccountBox.addItem({
name: 'Omnichannel',
icon: 'headset',
href: '/omnichannel/current',
sideNav: 'omnichannelFlex',
condition: () => settings.get('Livechat_enabled') && hasAllPermission('view-livechat-manager'),
});
import { MessageTypes } from '../../ui-utils/client';

MessageTypes.registerType({
id: 'livechat-close',
Expand Down
56 changes: 0 additions & 56 deletions apps/meteor/app/ui-message/client/ActionButtonSyncer.ts

This file was deleted.

21 changes: 6 additions & 15 deletions apps/meteor/app/ui-message/client/ActionManager.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
import { UIKitIncomingInteractionType } from '@rocket.chat/apps-engine/definition/uikit';
import { Meteor } from 'meteor/meteor';
import { Random } from '@rocket.chat/random';
import { Emitter } from '@rocket.chat/emitter';
import { UIKitInteractionTypes } from '@rocket.chat/core-typings';
import { lazy } from 'react';

import Notifications from '../../notifications/client/lib/Notifications';
import { CachedCollectionManager } from '../../ui-cached-collection/client';
import { t } from '../../utils/client';
import { t } from '../../utils/lib/i18n';
import * as banners from '../../../client/lib/banners';
import { dispatchToastMessage } from '../../../client/lib/toast';
import { imperativeModal } from '../../../client/lib/imperativeModal';
import UiKitModal from '../../../client/views/modal/uikit/UiKitModal';
import { sdk } from '../../utils/client/lib/SDKClient';
import { router } from '../../../client/providers/RouterProvider';
import { imperativeModal } from '../../../client/lib/imperativeModal';

const UiKitModal = lazy(() => import('../../../client/views/modal/uikit/UiKitModal'));

const events = new Emitter();

Expand Down Expand Up @@ -45,7 +44,7 @@ export const generateTriggerId = (appId) => {
return triggerId;
};

const handlePayloadUserInteraction = (type, { /* appId,*/ triggerId, ...data }) => {
export const handlePayloadUserInteraction = (type, { /* appId,*/ triggerId, ...data }) => {
if (!triggersId.has(triggerId)) {
return;
}
Expand Down Expand Up @@ -256,11 +255,3 @@ export const getUserInteractionPayloadByViewId = (viewId) => {

return instance.payload;
};

Meteor.startup(() =>
CachedCollectionManager.onLogin(() =>
Notifications.onUser('uiInteraction', ({ type, ...data }) => {
handlePayloadUserInteraction(type, data);
}),
),
);
28 changes: 0 additions & 28 deletions apps/meteor/app/ui-message/client/actionButtons/dropdownAction.ts

This file was deleted.

33 changes: 0 additions & 33 deletions apps/meteor/app/ui-message/client/actionButtons/messageAction.ts

This file was deleted.

42 changes: 0 additions & 42 deletions apps/meteor/app/ui-message/client/actionButtons/messageBox.ts

This file was deleted.

33 changes: 0 additions & 33 deletions apps/meteor/app/ui-message/client/actionButtons/tabbar.ts

This file was deleted.

1 change: 0 additions & 1 deletion apps/meteor/app/ui-utils/client/index.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import './lib/messageActionDefault';

export { AccountBox } from './lib/AccountBox';
export { MessageAction } from './lib/MessageAction';
export { messageBox } from './lib/messageBox';
export { readMessage } from './lib/readMessages';
Expand Down
32 changes: 0 additions & 32 deletions apps/meteor/app/ui-utils/client/lib/AccountBox.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
import type { IUIActionButton, IUActionButtonWhen } from '@rocket.chat/apps-engine/definition/ui/IUIActionButtonDescriptor';
import type { UserStatus } from '@rocket.chat/core-typings';
import { ReactiveVar } from 'meteor/reactive-var';
import { Tracker } from 'meteor/tracker';
import type { TranslationKey, LocationPathname } from '@rocket.chat/ui-contexts';
import type { Icon } from '@rocket.chat/fuselage';
import type { ComponentProps } from 'react';

import { applyDropdownActionButtonFilters } from '../../../ui-message/client/actionButtons/lib/applyButtonFilters';
import { sdk } from '../../../utils/client/lib/SDKClient';

export interface IAppAccountBoxItem extends IUIActionButton {
Expand All @@ -30,38 +27,9 @@ export type AccountBoxItem = {
export const isAppAccountBoxItem = (item: IAppAccountBoxItem | AccountBoxItem): item is IAppAccountBoxItem => 'isAppButtonItem' in item;

class AccountBoxBase {
private items = new ReactiveVar<IAppAccountBoxItem[]>([]);

public setStatus(status: UserStatus, statusText?: string): any {
return sdk.rest.post('/v1/users.setStatus', { status, message: statusText });
}

public async addItem(newItem: IAppAccountBoxItem): Promise<void> {
Tracker.nonreactive(() => {
const actual = this.items.get();
actual.push(newItem);
this.items.set(actual);
});
}

public async deleteItem(item: IAppAccountBoxItem): Promise<void> {
Tracker.nonreactive(() => {
const actual = this.items.get();
const itemIndex = actual.findIndex((actualItem: IAppAccountBoxItem) => actualItem.appId === item.appId);
actual.splice(itemIndex, 1);
this.items.set(actual);
});
}

public getItems(): (IAppAccountBoxItem | AccountBoxItem)[] {
return this.items.get().filter((item: IAppAccountBoxItem | AccountBoxItem) => {
if ('condition' in item) {
return item.condition();
}

return applyDropdownActionButtonFilters(item);
});
}
}

export const AccountBox = new AccountBoxBase();
2 changes: 1 addition & 1 deletion apps/meteor/app/ui-utils/client/lib/MessageAction.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ export type MessageActionConfig = {
chat,
autoTranslateOptions,
}: {
message?: IMessage & Partial<ITranslatedMessage>;
message: IMessage & Partial<ITranslatedMessage>;
tabbar: ToolboxContextValue;
room?: IRoom;
chat: ContextType<typeof ChatContext>;
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/ui-utils/client/lib/messageBox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { TranslationKey } from '@rocket.chat/ui-contexts';

import type { ChatAPI } from '../../../../client/lib/chats/ChatAPI';

type MessageBoxAction = {
export type MessageBoxAction = {
label: TranslationKey;
id: string;
icon?: string;
Expand Down
11 changes: 7 additions & 4 deletions apps/meteor/client/UIKit/hooks/useUIKitHandleAction.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,19 @@ import { UIKitIncomingInteractionContainerType } from '@rocket.chat/apps-engine/
// import React, { Context, FC, useMemo } from 'react';
import type { UiKitPayload, UIKitActionEvent } from '@rocket.chat/core-typings';
import { useMutableCallback } from '@rocket.chat/fuselage-hooks';

import { useUiKitActionManager } from '../../hooks/useUiKitActionManager';
// import { UIKitIncomingInteractionContainerType } from '@rocket.chat/apps-engine/definition/uikit/UIKitIncomingInteractionContainer';

// import { useEndpoint } from '@rocket.chat/ui-contexts';
import * as ActionManager from '../../../app/ui-message/client/ActionManager';

const useUIKitHandleAction = <S extends UiKitPayload>(state: S): ((event: UIKitActionEvent) => Promise<void>) =>
useMutableCallback(async ({ blockId, value, appId, actionId }) => {
const useUIKitHandleAction = <S extends UiKitPayload>(state: S): ((event: UIKitActionEvent) => Promise<void>) => {
const actionManager = useUiKitActionManager();
return useMutableCallback(async ({ blockId, value, appId, actionId }) => {
if (!appId) {
throw new Error('useUIKitHandleAction - invalid appId');
}
return ActionManager.triggerBlockAction({
return actionManager.triggerBlockAction({
container: {
type: UIKitIncomingInteractionContainerType.VIEW,
id: state.viewId || state.appId,
Expand All @@ -26,5 +28,6 @@ const useUIKitHandleAction = <S extends UiKitPayload>(state: S): ((event: UIKitA
blockId,
});
});
};

export { useUIKitHandleAction };
Loading

0 comments on commit 17c1689

Please sign in to comment.