Skip to content
Merged
Show file tree
Hide file tree
Changes from all 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
3 changes: 0 additions & 3 deletions apps/meteor/app/autotranslate/client/lib/actionButton.ts

This file was deleted.

60 changes: 29 additions & 31 deletions apps/meteor/app/emoji/lib/rocketchat.ts
Comment thread
juliajforesti marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { TranslationKey } from '@rocket.chat/ui-contexts';

export type EmojiPackage = {
type EmojiPackage = {
emojiCategories: Array<{ key: string; i18n: TranslationKey }>;
categoryIndex?: number;
emojisByCategory: Record<string, string[]>;
Expand All @@ -15,34 +15,32 @@ export type EmojiPackage = {
};

export type EmojiPackages = {
packages: {
[key: string]: EmojiPackage;
};
list: {
[key: keyof NonNullable<EmojiPackages['packages']>]:
| {
name?: string;
category: string;
emojiPackage: string;
shortnames: string[];
uc_base: string;
uc_greedy: string;
uc_match: string;
uc_output: string;
aliases?: string[];
aliasOf?: undefined;
extension?: string;
etag?: string;
unicode?: string;
}
| {
name?: undefined;
emojiPackage: string;
aliasOf: string;
extension?: undefined;
aliases?: undefined;
shortnames?: undefined;
etag?: string;
};
};
packages: Record<string, EmojiPackage>;
list: Record<
string,
| {
name?: string;
category: string;
emojiPackage: string;
shortnames: string[];
uc_base: string;
uc_greedy: string;
uc_match: string;
uc_output: string;
aliases?: string[];
aliasOf?: undefined;
extension?: string;
etag?: string;
unicode?: string;
}
| {
name?: undefined;
emojiPackage: string;
aliasOf: string;
extension?: undefined;
aliases?: undefined;
shortnames?: undefined;
etag?: string;
}
>;
};
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { hasPermission, hasAtLeastOnePermission } from '../../../../client/lib/authorization';
import { registerOmnichannelSidebarItem } from '../../../../client/views/omnichannel/sidebarItems';
import { hasPermission, hasAtLeastOnePermission } from '../../../authorization/client';

registerOmnichannelSidebarItem({
href: '/omnichannel/reports',
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/reactions/client/methods/setReaction.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { IMessage } from '@rocket.chat/core-typings';

import { emoji } from '../../../../client/lib/emoji';
import { roomCoordinator } from '../../../../client/lib/rooms/roomCoordinator';
import { getUser, getUserId } from '../../../../client/lib/user';
import { Rooms, Subscriptions, Messages } from '../../../../client/stores';
import { emoji } from '../../../emoji/client';

export const runOptimisticSetReaction = (reaction: string, messageId: IMessage['_id']): void => {
if (!getUserId()) {
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/slashcommands-topic/client/topic.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import type { SlashCommandCallbackParams } from '@rocket.chat/core-typings';
import { clientCallbacks } from '@rocket.chat/ui-client';

import { hasPermission } from '../../../client/lib/authorization';
import { dispatchToastMessage } from '../../../client/lib/toast';
import { Rooms } from '../../../client/stores';
import { hasPermission } from '../../authorization/client';
import { sdk } from '../../utils/client/lib/SDKClient';
import { slashCommands } from '../../utils/client/slashCommand';

Expand Down
8 changes: 4 additions & 4 deletions apps/meteor/client/apps/orchestrator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import type { Serialized } from '@rocket.chat/core-typings';

import type { IAppExternalURL, ICategory } from './@types/IOrchestrator';
import { RealAppsEngineUIHost } from './RealAppsEngineUIHost';
import { hasAtLeastOnePermission } from '../../app/authorization/client';
import { sdk } from '../../app/utils/client/lib/SDKClient';
import { hasAtLeastOnePermission } from '../lib/authorization';
import { dispatchToastMessage } from '../lib/toast';
import type { App } from '../views/marketplace/types';

Expand Down Expand Up @@ -51,7 +51,7 @@ class AppClientOrchestrator {

if ('apps' in result) {
// TODO: chapter day: multiple results are returned, but we only need one
return result.apps as App[];
return result.apps;
}
throw new Error('Invalid response from API');
}
Expand All @@ -74,7 +74,7 @@ class AppClientOrchestrator {
return { apps: [], error: 'Invalid response from API' };
}

const apps = (result as App[]).map((app: App) => {
const apps = result.map((app: App) => {
const { latest, appRequestStats, price, pricingPlans, purchaseType, isEnterpriseOnly, modifiedAt, bundledIn, requestedEndUser } = app;
return {
...latest,
Expand Down Expand Up @@ -174,7 +174,7 @@ class AppClientOrchestrator {

if (Array.isArray(result)) {
// TODO: chapter day: multiple results are returned, but we only need one
return result as Serialized<ICategory>[];
return result;
}
throw new Error('Failed to get categories');
}
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/components/MarkdownText.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import dompurify from 'dompurify';

import MarkdownText, { supportedURISchemes } from './MarkdownText';
import '@testing-library/jest-dom';
import { emoji } from '../../app/emoji/client/lib';
import { emoji } from '../lib/emoji/lib';
import { getMarkdownParserLimit } from '../lib/getMarkdownParserLimit';

jest.mock('../lib/getMarkdownParserLimit');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import type { IMessage, ISubscription, IRoom } from '@rocket.chat/core-typings';
import { useEndpoint, usePermission, useSetting, useUser } from '@rocket.chat/ui-contexts';
import { useMemo } from 'react';

import { AutoTranslate } from '../../../../app/autotranslate/client';
import type { MessageActionConfig } from '../../../../app/ui-utils/client/lib/MessageAction';
import { AutoTranslate } from '../../../lib/autotranslate';
import { roomCoordinator } from '../../../lib/rooms/roomCoordinator';
import { Messages } from '../../../stores';
import { hasTranslationLanguageInAttachments, hasTranslationLanguageInMessage } from '../../../views/room/MessageList/lib/autoTranslate';
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import type { IMessage, IRoom, ISubscription } from '@rocket.chat/core-typings';
import { useEndpoint, usePermission, useSetting, useUser } from '@rocket.chat/ui-contexts';
import { useMemo } from 'react';

import { AutoTranslate } from '../../../../app/autotranslate/client';
import type { MessageActionConfig } from '../../../../app/ui-utils/client/lib/MessageAction';
import { AutoTranslate } from '../../../lib/autotranslate';
import { roomCoordinator } from '../../../lib/rooms/roomCoordinator';
import { Messages } from '../../../stores';
import { hasTranslationLanguageInAttachments, hasTranslationLanguageInMessage } from '../../../views/room/MessageList/lib/autoTranslate';
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/contexts/EmojiPickerContext.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { createContext, useContext, useMemo } from 'react';

import type { EmojiPickerItem, CategoriesIndexes } from '../../app/emoji/client';
import type { EmojiPickerItem, CategoriesIndexes } from '../lib/emoji';

type EmojiPickerContextValue = {
open: (ref: Element, callback: (emoji: string) => void) => void;
Expand Down
3 changes: 0 additions & 3 deletions apps/meteor/client/importPackages.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
import '../app/authorization/client';
import '../app/autotranslate/client';
import '../app/emoji/client';
import '../app/gitlab/client';
import '../app/license/client';
import '../app/lib/client';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import { PermissionsCachedStore } from '../../../client/cachedStores';
import { userIdStore } from '../../../client/lib/user';
import { Permissions, Roles, Subscriptions, Users } from '../../../client/stores';
import type { AuthorizationDeps } from '../lib/createAuthorizationFunctions';
import { createAuthorizationFunctions } from '../lib/createAuthorizationFunctions';
import type { AuthorizationDeps } from '../../../app/authorization/lib/createAuthorizationFunctions';
import { createAuthorizationFunctions } from '../../../app/authorization/lib/createAuthorizationFunctions';
import { PermissionsCachedStore } from '../../cachedStores';
import { Permissions, Roles, Subscriptions, Users } from '../../stores';
import { userIdStore } from '../user';

// Bind the pure factory to live zustand store accessors. Each accessor reads
// fresh state on every call, so non-React callers (services, lib code, startup
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,13 @@ import type { IRoom, ISubscription, ISupportedLanguage, ITranslatedMessage, Mess
import { isTranslatedMessageAttachment } from '@rocket.chat/core-typings';
import mem from 'mem';

import { PermissionsCachedStore } from '../../../../client/cachedStores';
import { settings } from '../../../../client/lib/settings';
import { getUserId, userIdStore } from '../../../../client/lib/user';
import { Messages, Subscriptions, Users } from '../../../../client/stores';
import {
hasTranslationLanguageInAttachments,
hasTranslationLanguageInMessage,
} from '../../../../client/views/room/MessageList/lib/autoTranslate';
import { hasPermission } from '../../../authorization/client';
import { sdk } from '../../../utils/client/lib/SDKClient';
import { sdk } from '../../../app/utils/client/lib/SDKClient';
import { PermissionsCachedStore } from '../../cachedStores';
import { Messages, Subscriptions, Users } from '../../stores';
import { hasTranslationLanguageInAttachments, hasTranslationLanguageInMessage } from '../../views/room/MessageList/lib/autoTranslate';
import { hasPermission } from '../authorization';
import { settings } from '../settings';
import { getUserId, userIdStore } from '../user';

let userLanguage = 'en';
let username = '';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
import './lib/actionButton';

export { AutoTranslate, createAutoTranslateMessageStreamHandler } from './lib/autotranslate';
export { AutoTranslate, createAutoTranslateMessageStreamHandler } from './autotranslate';
4 changes: 2 additions & 2 deletions apps/meteor/client/lib/chats/data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import { Random } from '@rocket.chat/random';
import { differenceInMinutes } from 'date-fns';

import type { DataAPI } from './ChatAPI';
import { hasAtLeastOnePermission, hasPermission } from '../../../app/authorization/client';
import { sdk } from '../../../app/utils/client/lib/SDKClient';
import { Messages, Rooms, Subscriptions } from '../../stores';
import { hasAtLeastOnePermission, hasPermission } from '../authorization';
import { settings } from '../settings';
import { getUserId } from '../user';
import { mapMessageFromApi } from '../utils/mapMessageFromApi';
Expand Down Expand Up @@ -165,7 +165,7 @@ export const createDataAPI = ({ rid, tmid }: { rid: IRoom['_id']; tmid: IMessage
};

const pushEphemeralMessage = async (message: Omit<IMessage, 'rid' | 'tmid'>): Promise<void> => {
const fullMessage = { ...message, rid, ...(tmid && { tmid }) } as IMessage;
const fullMessage = { ...message, rid, ...(tmid && { tmid }) };
Messages.state.store(fullMessage);

if (tmid) {
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/lib/chats/flows/processSetReaction.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { IMessage } from '@rocket.chat/core-typings';

import { emoji } from '../../../../app/emoji/client';
import { runOptimisticSetReaction } from '../../../../app/reactions/client/methods/setReaction';
import { sdk } from '../../../../app/utils/client/lib/SDKClient';
import { emoji } from '../../emoji';
import { dispatchToastMessage } from '../../toast';
import type { ChatAPI } from '../ChatAPI';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@ import type { IMessage, SlashCommand } from '@rocket.chat/core-typings';
import { Random } from '@rocket.chat/random';
import { escapeHTML } from '@rocket.chat/tools';

import { hasAtLeastOnePermission } from '../../../../app/authorization/client';
import { slashCommands } from '../../../../app/utils/client';
import { sdk } from '../../../../app/utils/client/lib/SDKClient';
import { t } from '../../../../app/utils/lib/i18n';
import { hasAtLeastOnePermission } from '../../authorization';
import { settings } from '../../settings';
import type { ChatAPI } from '../ChatAPI';

Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/lib/customEmoji.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import type { IEmoji } from '@rocket.chat/core-typings';
import { escapeRegExp } from '@rocket.chat/tools';

import { emoji, removeFromRecent, replaceEmojiInRecent } from '../../app/emoji/client';
import { emoji, removeFromRecent, replaceEmojiInRecent } from './emoji';
import { getURL } from '../../app/utils/client';

const isSetNotNull = (fn: () => unknown) => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Emitter } from '@rocket.chat/emitter';

import type { EmojiPackages } from '../lib/rocketchat';
import type { EmojiPackages } from '../../../app/emoji/lib/rocketchat';
Comment thread
sampaiodiego marked this conversation as resolved.
Comment thread
sampaiodiego marked this conversation as resolved.

export const emojiEmitter = new Emitter<{ updated: void }>();

Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/lib/rooms/roomCoordinator.tsx
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import type { IRoom, RoomType, IUser, AtLeast, ValueOf, ISubscription } from '@rocket.chat/core-typings';
import type { RouteName } from '@rocket.chat/ui-contexts';

import { hasPermission } from '../../../app/authorization/client';
import type {
RoomSettingsEnum,
RoomMemberActions,
Expand All @@ -18,6 +17,7 @@ import RoomRoute from '../../views/room/RoomRoute';
import MainLayout from '../../views/root/MainLayout';
import { absoluteUrl } from '../absoluteUrl';
import { appLayout } from '../appLayout';
import { hasPermission } from '../authorization';

class RoomCoordinatorClient extends RoomCoordinator {
public add(roomConfig: IRoomTypeClientConfig, directives: Partial<IRoomTypeClientDirectives>): void {
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/lib/utils/detectEmoji.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { emoji } from '../../../app/emoji/client';
import { emoji } from '../emoji';

export const detectEmoji = (text: string): { name: string; className: string; image?: string; content: string }[] => {
const html = Object.values(emoji.packages)
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/lib/utils/renderEmoji.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { emoji } from '../../../app/emoji/client/lib';
import { emoji } from '../emoji/lib';

const emojiList = emoji.list as Record<string, { emojiPackage: string }>;
const emojiPackages = emoji.packages as Record<string, { render(emojiName: string): string }>;
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/lib/utils/renderMessageEmoji.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
import { emojiParser } from '../../../app/emoji/client/emojiParser';
import { emojiParser } from '../emoji/emojiParser';

export const renderMessageEmoji = (html: string) => emojiParser(html);
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jest.mock('@rocket.chat/fuselage-hooks', () => {
};
});

jest.mock('../../../app/emoji/client', () => ({
jest.mock('../../lib/emoji', () => ({
emoji: { packages: { base: { emojisByCategory: { recent: [] } } } },
getFrequentEmoji: jest.fn(() => []),
createEmojiListByCategorySubscription: jest.fn(() => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import type { ReactNode, ContextType } from 'react';
import { useState, useCallback, useMemo, useSyncExternalStore } from 'react';

import { useUpdateCustomEmoji } from './useUpdateCustomEmoji';
import { emoji, getFrequentEmoji, createEmojiListByCategorySubscription } from '../../../app/emoji/client';
import { EmojiPickerContext } from '../../contexts/EmojiPickerContext';
import { emoji, getFrequentEmoji, createEmojiListByCategorySubscription } from '../../lib/emoji';
import EmojiPicker from '../../views/composer/EmojiPicker';

const DEFAULT_ITEMS_LIMIT = 90;
Expand Down Expand Up @@ -44,7 +44,9 @@ const EmojiPickerProvider = ({ children }: EmojiPickerProviderProps) => {

const sortedFrequent = [...empty, ...frequentEmojis]
.map(([emojiName, count]) => {
return (emojiName === emoji ? [emojiName, Math.min(count + 5, 100)] : [emojiName, Math.max(count - 1, 0)]) as [string, number];
return emojiName === emoji
? ([emojiName, Math.min(count + 5, 100)] as [string, number])
: ([emojiName, Math.max(count - 1, 0)] as [string, number]);
})
.sort(([, frequentA], [, frequentB]) => frequentB - frequentA);

Expand All @@ -59,7 +61,7 @@ const EmojiPickerProvider = ({ children }: EmojiPickerProviderProps) => {
addFrequentEmojis(_emoji);

const recent = recentEmojis || [];
const pos = recent.indexOf(_emoji as never);
const pos = recent.indexOf(_emoji);

if (pos !== -1) {
recent.splice(pos, 1);
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/startup/audit.tsx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import type { ReactNode } from 'react';
import { lazy } from 'react';

import { hasAllPermission } from '../../app/authorization/client';
import { appLayout } from '../lib/appLayout';
import { hasAllPermission } from '../lib/authorization';
import { onToggledFeature } from '../lib/onToggledFeature';
import { router } from '../providers/RouterProvider';
import SettingsProvider from '../providers/SettingsProvider';
Expand Down
4 changes: 2 additions & 2 deletions apps/meteor/client/startup/streamMessage/autotranslate.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { clientCallbacks } from '@rocket.chat/ui-client';

import { hasPermission } from '../../../app/authorization/client';
import { PermissionsCachedStore } from '../../cachedStores';
import { hasPermission } from '../../lib/authorization';
import { settings } from '../../lib/settings';
import { Users } from '../../stores';

Expand All @@ -15,7 +15,7 @@ const applyAutoTranslateStreamHandler = () => {
return;
}

void import('../../../app/autotranslate/client').then(({ createAutoTranslateMessageStreamHandler }) => {
void import('../../lib/autotranslate').then(({ createAutoTranslateMessageStreamHandler }) => {
const streamMessage = createAutoTranslateMessageStreamHandler();
clientCallbacks.remove('streamMessage', STREAM_HANDLER_ID);
clientCallbacks.add('streamMessage', streamMessage, clientCallbacks.priority.HIGH - 3, STREAM_HANDLER_ID);
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/client/views/account/sidebarItems.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { defaultFeaturesPreview, FeaturePreviewBadge } from '@rocket.chat/ui-client';

import { hasPermission, hasAtLeastOnePermission } from '../../../app/authorization/client';
import { hasPermission, hasAtLeastOnePermission } from '../../lib/authorization';
import { createSidebarItems } from '../../lib/createSidebarItems';
import { settings } from '../../lib/settings';

Expand Down
Loading
Loading