diff --git a/apps/meteor/app/2fa/server/loginHandler.ts b/apps/meteor/app/2fa/server/loginHandler.ts index 1d039c7a89e4a..772e3cff93696 100644 --- a/apps/meteor/app/2fa/server/loginHandler.ts +++ b/apps/meteor/app/2fa/server/loginHandler.ts @@ -4,7 +4,7 @@ import { Meteor } from 'meteor/meteor'; import { OAuth } from 'meteor/oauth'; import { checkCodeForUser } from './code/index'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; const isMeteorError = (error: any): error is Meteor.Error => { return error?.meteorError !== undefined; diff --git a/apps/meteor/app/apps/server/bridges/livechat.ts b/apps/meteor/app/apps/server/bridges/livechat.ts index 0347d8e77f2fc..6952ac6f5457c 100644 --- a/apps/meteor/app/apps/server/bridges/livechat.ts +++ b/apps/meteor/app/apps/server/bridges/livechat.ts @@ -9,8 +9,8 @@ import { OmnichannelSourceType } from '@rocket.chat/core-typings'; import { LivechatVisitors, LivechatRooms, LivechatDepartment, Users } from '@rocket.chat/models'; import { registerGuest } from '@rocket.chat/omni-core'; -import { callbacks } from '../../../../lib/callbacks'; import { deasyncPromise } from '../../../../server/deasync/deasync'; +import { callbacks } from '../../../../server/lib/callbacks'; import { closeRoom } from '../../../livechat/server/lib/closeRoom'; import { setCustomFields } from '../../../livechat/server/lib/custom-fields'; import { getRoomMessages } from '../../../livechat/server/lib/getRoomMessages'; diff --git a/apps/meteor/app/authentication/server/hooks/login.ts b/apps/meteor/app/authentication/server/hooks/login.ts index 10b91271c88fa..191639e208dee 100644 --- a/apps/meteor/app/authentication/server/hooks/login.ts +++ b/apps/meteor/app/authentication/server/hooks/login.ts @@ -1,6 +1,6 @@ import { Accounts } from 'meteor/accounts-base'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import type { ILoginAttempt } from '../ILoginAttempt'; import { logFailedLoginAttempts } from '../lib/logLoginAttempts'; diff --git a/apps/meteor/app/authentication/server/startup/index.js b/apps/meteor/app/authentication/server/startup/index.js index b7704cbe57357..aa6418592fa66 100644 --- a/apps/meteor/app/authentication/server/startup/index.js +++ b/apps/meteor/app/authentication/server/startup/index.js @@ -8,10 +8,10 @@ import { Match } from 'meteor/check'; import { Meteor } from 'meteor/meteor'; import _ from 'underscore'; -import { callbacks } from '../../../../lib/callbacks'; -import { beforeCreateUserCallback } from '../../../../lib/callbacks/beforeCreateUserCallback'; import { parseCSV } from '../../../../lib/utils/parseCSV'; import { safeHtmlDots } from '../../../../lib/utils/safeHtmlDots'; +import { callbacks } from '../../../../server/lib/callbacks'; +import { beforeCreateUserCallback } from '../../../../server/lib/callbacks/beforeCreateUserCallback'; import { getClientAddress } from '../../../../server/lib/getClientAddress'; import { getMaxLoginTokens } from '../../../../server/lib/getMaxLoginTokens'; import { i18n } from '../../../../server/lib/i18n'; diff --git a/apps/meteor/app/autotranslate/server/autotranslate.ts b/apps/meteor/app/autotranslate/server/autotranslate.ts index 23e1b189a7920..afb4b5d5cf5fd 100644 --- a/apps/meteor/app/autotranslate/server/autotranslate.ts +++ b/apps/meteor/app/autotranslate/server/autotranslate.ts @@ -13,8 +13,8 @@ import { escapeHTML } from '@rocket.chat/string-helpers'; import { Meteor } from 'meteor/meteor'; import _ from 'underscore'; -import { callbacks } from '../../../lib/callbacks'; import { isTruthy } from '../../../lib/isTruthy'; +import { callbacks } from '../../../server/lib/callbacks'; import { notifyOnMessageChange } from '../../lib/server/lib/notifyListener'; import { Markdown } from '../../markdown/server'; import { settings } from '../../settings/server'; diff --git a/apps/meteor/app/channel-settings/server/functions/saveRoomName.ts b/apps/meteor/app/channel-settings/server/functions/saveRoomName.ts index c2fd6a95958f3..61ad721dc0593 100644 --- a/apps/meteor/app/channel-settings/server/functions/saveRoomName.ts +++ b/apps/meteor/app/channel-settings/server/functions/saveRoomName.ts @@ -5,7 +5,7 @@ import { Integrations, Rooms, Subscriptions } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; import type { Document, UpdateResult } from 'mongodb'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator'; import { checkUsernameAvailability } from '../../../lib/server/functions/checkUsernameAvailability'; import { notifyOnIntegrationChangedByChannels, notifyOnSubscriptionChangedByRoomId } from '../../../lib/server/lib/notifyListener'; diff --git a/apps/meteor/app/channel-settings/server/functions/saveRoomTopic.ts b/apps/meteor/app/channel-settings/server/functions/saveRoomTopic.ts index 925b4833efd90..f916259c03364 100644 --- a/apps/meteor/app/channel-settings/server/functions/saveRoomTopic.ts +++ b/apps/meteor/app/channel-settings/server/functions/saveRoomTopic.ts @@ -4,7 +4,7 @@ import { Rooms } from '@rocket.chat/models'; import { Match } from 'meteor/check'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; export const saveRoomTopic = async ( rid: string, diff --git a/apps/meteor/app/cloud/server/functions/getWorkspaceLicense.ts b/apps/meteor/app/cloud/server/functions/getWorkspaceLicense.ts index 0ee4ba09ff57a..08b551782f6b8 100644 --- a/apps/meteor/app/cloud/server/functions/getWorkspaceLicense.ts +++ b/apps/meteor/app/cloud/server/functions/getWorkspaceLicense.ts @@ -3,13 +3,13 @@ import { Settings } from '@rocket.chat/models'; import { serverFetch as fetch } from '@rocket.chat/server-fetch'; import { z } from 'zod'; -import { callbacks } from '../../../../lib/callbacks'; +import { getWorkspaceAccessToken } from './getWorkspaceAccessToken'; import { CloudWorkspaceConnectionError } from '../../../../lib/errors/CloudWorkspaceConnectionError'; import { CloudWorkspaceLicenseError } from '../../../../lib/errors/CloudWorkspaceLicenseError'; +import { callbacks } from '../../../../server/lib/callbacks'; import { SystemLogger } from '../../../../server/lib/logger/system'; import { settings } from '../../../settings/server'; import { LICENSE_VERSION } from '../license'; -import { getWorkspaceAccessToken } from './getWorkspaceAccessToken'; const workspaceLicensePayloadSchema = z.object({ version: z.number(), diff --git a/apps/meteor/app/cloud/server/functions/removeLicense.ts b/apps/meteor/app/cloud/server/functions/removeLicense.ts index 88f1d68251777..31cd23df14558 100644 --- a/apps/meteor/app/cloud/server/functions/removeLicense.ts +++ b/apps/meteor/app/cloud/server/functions/removeLicense.ts @@ -3,9 +3,9 @@ import { serverFetch as fetch } from '@rocket.chat/server-fetch'; import { CloudWorkspaceAccessTokenEmptyError, getWorkspaceAccessToken } from './getWorkspaceAccessToken'; import { retrieveRegistrationStatus } from './retrieveRegistrationStatus'; import { syncWorkspace } from './syncWorkspace'; -import { callbacks } from '../../../../lib/callbacks'; import { CloudWorkspaceConnectionError } from '../../../../lib/errors/CloudWorkspaceConnectionError'; import { CloudWorkspaceRegistrationError } from '../../../../lib/errors/CloudWorkspaceRegistrationError'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; export async function removeLicense() { diff --git a/apps/meteor/app/cloud/server/functions/syncWorkspace/syncCloudData.ts b/apps/meteor/app/cloud/server/functions/syncWorkspace/syncCloudData.ts index f28821b083875..572a9a4a1bbef 100644 --- a/apps/meteor/app/cloud/server/functions/syncWorkspace/syncCloudData.ts +++ b/apps/meteor/app/cloud/server/functions/syncWorkspace/syncCloudData.ts @@ -1,14 +1,14 @@ import { DuplicatedLicenseError } from '@rocket.chat/license'; import { Settings } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { fetchWorkspaceSyncPayload } from './fetchWorkspaceSyncPayload'; import { CloudWorkspaceAccessError } from '../../../../../lib/errors/CloudWorkspaceAccessError'; import { CloudWorkspaceRegistrationError } from '../../../../../lib/errors/CloudWorkspaceRegistrationError'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { SystemLogger } from '../../../../../server/lib/logger/system'; import { buildWorkspaceRegistrationData } from '../buildRegistrationData'; import { CloudWorkspaceAccessTokenEmptyError, getWorkspaceAccessToken } from '../getWorkspaceAccessToken'; import { retrieveRegistrationStatus } from '../retrieveRegistrationStatus'; -import { fetchWorkspaceSyncPayload } from './fetchWorkspaceSyncPayload'; export async function syncCloudData() { try { diff --git a/apps/meteor/app/custom-oauth/server/custom_oauth_server.js b/apps/meteor/app/custom-oauth/server/custom_oauth_server.js index bfed645e146de..4a5f6779974e5 100644 --- a/apps/meteor/app/custom-oauth/server/custom_oauth_server.js +++ b/apps/meteor/app/custom-oauth/server/custom_oauth_server.js @@ -10,8 +10,8 @@ import { ServiceConfiguration } from 'meteor/service-configuration'; import _ from 'underscore'; import { normalizers, fromTemplate, renameInvalidProperties } from './transform_helpers'; -import { callbacks } from '../../../lib/callbacks'; import { isURL } from '../../../lib/utils/isURL'; +import { callbacks } from '../../../server/lib/callbacks'; import { notifyOnUserChange } from '../../lib/server/lib/notifyListener'; import { registerAccessTokenService } from '../../lib/server/oauth/oauth'; import { settings } from '../../settings/server'; diff --git a/apps/meteor/app/discussion/server/hooks/propagateDiscussionMetadata.ts b/apps/meteor/app/discussion/server/hooks/propagateDiscussionMetadata.ts index 86b2b30b699df..494c84590b50c 100644 --- a/apps/meteor/app/discussion/server/hooks/propagateDiscussionMetadata.ts +++ b/apps/meteor/app/discussion/server/hooks/propagateDiscussionMetadata.ts @@ -1,7 +1,7 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { Messages, Rooms, VideoConference } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { deleteRoom } from '../../../lib/server/functions/deleteRoom'; import { notifyOnMessageChange } from '../../../lib/server/lib/notifyListener'; diff --git a/apps/meteor/app/dolphin/server/lib.ts b/apps/meteor/app/dolphin/server/lib.ts index 65a8ca6d2dacf..826a277b81e4e 100644 --- a/apps/meteor/app/dolphin/server/lib.ts +++ b/apps/meteor/app/dolphin/server/lib.ts @@ -2,8 +2,8 @@ import type { IUser } from '@rocket.chat/core-typings'; import { Meteor } from 'meteor/meteor'; import { ServiceConfiguration } from 'meteor/service-configuration'; -import { callbacks } from '../../../lib/callbacks'; -import { beforeCreateUserCallback } from '../../../lib/callbacks/beforeCreateUserCallback'; +import { callbacks } from '../../../server/lib/callbacks'; +import { beforeCreateUserCallback } from '../../../server/lib/callbacks/beforeCreateUserCallback'; import { CustomOAuth } from '../../custom-oauth/server/custom_oauth_server'; import { settings } from '../../settings/server'; diff --git a/apps/meteor/app/e2e/server/beforeCreateRoom.ts b/apps/meteor/app/e2e/server/beforeCreateRoom.ts index 19a8bcb2364ea..cb04d0def049d 100644 --- a/apps/meteor/app/e2e/server/beforeCreateRoom.ts +++ b/apps/meteor/app/e2e/server/beforeCreateRoom.ts @@ -1,4 +1,4 @@ -import { prepareCreateRoomCallback } from '../../../lib/callbacks/beforeCreateRoomCallback'; +import { prepareCreateRoomCallback } from '../../../server/lib/callbacks/beforeCreateRoomCallback'; import { settings } from '../../settings/server'; prepareCreateRoomCallback.add(({ type, extraData }) => { diff --git a/apps/meteor/app/e2e/server/index.ts b/apps/meteor/app/e2e/server/index.ts index b0d9dadcd2e2f..8c8c59488fd79 100644 --- a/apps/meteor/app/e2e/server/index.ts +++ b/apps/meteor/app/e2e/server/index.ts @@ -1,6 +1,6 @@ import { api } from '@rocket.chat/core-services'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import './beforeCreateRoom'; import './methods/setUserPublicAndPrivateKeys'; diff --git a/apps/meteor/app/emoji-emojione/server/callbacks.ts b/apps/meteor/app/emoji-emojione/server/callbacks.ts index 5f73b73d9d4b9..081e115a152a5 100644 --- a/apps/meteor/app/emoji-emojione/server/callbacks.ts +++ b/apps/meteor/app/emoji-emojione/server/callbacks.ts @@ -1,7 +1,7 @@ import emojione from 'emojione'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; Meteor.startup(() => { callbacks.add( diff --git a/apps/meteor/app/file-upload/server/methods/sendFileMessage.ts b/apps/meteor/app/file-upload/server/methods/sendFileMessage.ts index 8ed534c7015b9..dd67e3489f5da 100644 --- a/apps/meteor/app/file-upload/server/methods/sendFileMessage.ts +++ b/apps/meteor/app/file-upload/server/methods/sendFileMessage.ts @@ -12,9 +12,9 @@ import { Rooms, Uploads, Users } from '@rocket.chat/models'; import { Match, check } from 'meteor/check'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; import { getFileExtension } from '../../../../lib/utils/getFileExtension'; import { omit } from '../../../../lib/utils/omit'; +import { callbacks } from '../../../../server/lib/callbacks'; import { SystemLogger } from '../../../../server/lib/logger/system'; import { canAccessRoomAsync } from '../../../authorization/server/functions/canAccessRoom'; import { executeSendMessage } from '../../../lib/server/methods/sendMessage'; diff --git a/apps/meteor/app/importer/server/classes/converters/UserConverter.ts b/apps/meteor/app/importer/server/classes/converters/UserConverter.ts index 9d26d2c7ffdf1..efa721a518ddd 100644 --- a/apps/meteor/app/importer/server/classes/converters/UserConverter.ts +++ b/apps/meteor/app/importer/server/classes/converters/UserConverter.ts @@ -7,7 +7,7 @@ import { Accounts } from 'meteor/accounts-base'; import { RecordConverter, type RecordConverterOptions } from './RecordConverter'; import { generateTempPassword } from './generateTempPassword'; -import { callbacks as systemCallbacks } from '../../../../../lib/callbacks'; +import { callbacks as systemCallbacks } from '../../../../../server/lib/callbacks'; import { addUserToDefaultChannels } from '../../../../lib/server/functions/addUserToDefaultChannels'; import { generateUsernameSuggestion } from '../../../../lib/server/functions/getUsernameSuggestion'; import { saveUserIdentity } from '../../../../lib/server/functions/saveUserIdentity'; diff --git a/apps/meteor/app/integrations/server/triggers.ts b/apps/meteor/app/integrations/server/triggers.ts index 06fc9b0a9e1af..adf3d5b8bdf4d 100644 --- a/apps/meteor/app/integrations/server/triggers.ts +++ b/apps/meteor/app/integrations/server/triggers.ts @@ -1,6 +1,6 @@ import { triggerHandler } from './lib/triggerHandler'; -import { callbacks } from '../../../lib/callbacks'; -import { afterLeaveRoomCallback } from '../../../lib/callbacks/afterLeaveRoomCallback'; +import { callbacks } from '../../../server/lib/callbacks'; +import { afterLeaveRoomCallback } from '../../../server/lib/callbacks/afterLeaveRoomCallback'; const callbackHandler = function _callbackHandler(eventType: string) { return function _wrapperFunction(...args: any[]) { diff --git a/apps/meteor/app/irc/server/irc-bridge/index.js b/apps/meteor/app/irc/server/irc-bridge/index.js index 26d4948bd0f19..b86dff943e45f 100644 --- a/apps/meteor/app/irc/server/irc-bridge/index.js +++ b/apps/meteor/app/irc/server/irc-bridge/index.js @@ -3,10 +3,10 @@ import { Settings } from '@rocket.chat/models'; import moment from 'moment'; import Queue from 'queue-fifo'; -import { callbacks } from '../../../../lib/callbacks'; -import { afterLeaveRoomCallback } from '../../../../lib/callbacks/afterLeaveRoomCallback'; -import { afterLogoutCleanUpCallback } from '../../../../lib/callbacks/afterLogoutCleanUpCallback'; import { withThrottling } from '../../../../lib/utils/highOrderFunctions'; +import { callbacks } from '../../../../server/lib/callbacks'; +import { afterLeaveRoomCallback } from '../../../../server/lib/callbacks/afterLeaveRoomCallback'; +import { afterLogoutCleanUpCallback } from '../../../../server/lib/callbacks/afterLogoutCleanUpCallback'; import { updateAuditedBySystem } from '../../../../server/settings/lib/auditedSettingUpdates'; import { notifyOnSettingChangedById } from '../../../lib/server/lib/notifyListener'; import * as servers from '../servers'; diff --git a/apps/meteor/app/lib/client/methods/sendMessage.ts b/apps/meteor/app/lib/client/methods/sendMessage.ts index 85117da3db345..0969ea8d9cf36 100644 --- a/apps/meteor/app/lib/client/methods/sendMessage.ts +++ b/apps/meteor/app/lib/client/methods/sendMessage.ts @@ -1,5 +1,6 @@ import type { IMessage } from '@rocket.chat/core-typings'; import type { ServerMethods } from '@rocket.chat/ddp-client'; +import { clientCallbacks } from '@rocket.chat/ui-client'; import { Meteor } from 'meteor/meteor'; import { onClientMessageReceived } from '../../../../client/lib/onClientMessageReceived'; @@ -7,7 +8,6 @@ import { settings } from '../../../../client/lib/settings'; import { dispatchToastMessage } from '../../../../client/lib/toast'; import { getUser, getUserId } from '../../../../client/lib/user'; import { Messages, Rooms } from '../../../../client/stores'; -import { callbacks } from '../../../../lib/callbacks'; import { trim } from '../../../../lib/utils/stringUtils'; import { t } from '../../../utils/lib/i18n'; @@ -44,7 +44,7 @@ Meteor.methods({ await onClientMessageReceived(message as IMessage).then((message) => { Messages.state.store(message); - return callbacks.run('afterSaveMessage', message, { room, user }); + return clientCallbacks.run('afterSaveMessage', message, { room, user }); }); }, }); diff --git a/apps/meteor/app/lib/server/functions/acceptRoomInvite.ts b/apps/meteor/app/lib/server/functions/acceptRoomInvite.ts index 32370ab8da01f..6a406055dfd5d 100644 --- a/apps/meteor/app/lib/server/functions/acceptRoomInvite.ts +++ b/apps/meteor/app/lib/server/functions/acceptRoomInvite.ts @@ -5,7 +5,7 @@ import type { IUser, IRoom, ISubscription } from '@rocket.chat/core-typings'; import { Subscriptions, Users } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnSubscriptionChangedById } from '../lib/notifyListener'; /** diff --git a/apps/meteor/app/lib/server/functions/addUserToDefaultChannels.ts b/apps/meteor/app/lib/server/functions/addUserToDefaultChannels.ts index f5317a7b0e3b3..a74964cc05a00 100644 --- a/apps/meteor/app/lib/server/functions/addUserToDefaultChannels.ts +++ b/apps/meteor/app/lib/server/functions/addUserToDefaultChannels.ts @@ -3,7 +3,7 @@ import type { IUser } from '@rocket.chat/core-typings'; import { Subscriptions } from '@rocket.chat/models'; import { getDefaultChannels } from './getDefaultChannels'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { getSubscriptionAutotranslateDefaultConfig } from '../../../../server/lib/getSubscriptionAutotranslateDefaultConfig'; import { getDefaultSubscriptionPref } from '../../../utils/lib/getDefaultSubscriptionPref'; import { notifyOnSubscriptionChangedById } from '../lib/notifyListener'; diff --git a/apps/meteor/app/lib/server/functions/addUserToRoom.ts b/apps/meteor/app/lib/server/functions/addUserToRoom.ts index 75667c70f4df9..7651b571723a7 100644 --- a/apps/meteor/app/lib/server/functions/addUserToRoom.ts +++ b/apps/meteor/app/lib/server/functions/addUserToRoom.ts @@ -6,8 +6,8 @@ import { Subscriptions, Users, Rooms } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; import { RoomMemberActions } from '../../../../definition/IRoomTypeConfig'; -import { callbacks } from '../../../../lib/callbacks'; -import { beforeAddUserToRoom } from '../../../../lib/callbacks/beforeAddUserToRoom'; +import { callbacks } from '../../../../server/lib/callbacks'; +import { beforeAddUserToRoom } from '../../../../server/lib/callbacks/beforeAddUserToRoom'; import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator'; import { settings } from '../../../settings/server'; import { notifyOnRoomChangedById } from '../lib/notifyListener'; diff --git a/apps/meteor/app/lib/server/functions/archiveRoom.ts b/apps/meteor/app/lib/server/functions/archiveRoom.ts index 46fd7a1ac35ba..9bc3582d6671d 100644 --- a/apps/meteor/app/lib/server/functions/archiveRoom.ts +++ b/apps/meteor/app/lib/server/functions/archiveRoom.ts @@ -2,7 +2,7 @@ import { Message } from '@rocket.chat/core-services'; import type { IMessage } from '@rocket.chat/core-typings'; import { Rooms, Subscriptions } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnRoomChanged, notifyOnSubscriptionChangedByRoomId } from '../lib/notifyListener'; export const archiveRoom = async function (rid: string, user: IMessage['u']): Promise { diff --git a/apps/meteor/app/lib/server/functions/closeOmnichannelConversations.ts b/apps/meteor/app/lib/server/functions/closeOmnichannelConversations.ts index e66c0ab3edd2a..49aa6e44d55b5 100644 --- a/apps/meteor/app/lib/server/functions/closeOmnichannelConversations.ts +++ b/apps/meteor/app/lib/server/functions/closeOmnichannelConversations.ts @@ -1,7 +1,7 @@ import type { IUser } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; import { closeRoom } from '../../../livechat/server/lib/closeRoom'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/lib/server/functions/createDirectRoom.ts b/apps/meteor/app/lib/server/functions/createDirectRoom.ts index 9b301c940c6b3..1fcac1c46ed2d 100644 --- a/apps/meteor/app/lib/server/functions/createDirectRoom.ts +++ b/apps/meteor/app/lib/server/functions/createDirectRoom.ts @@ -7,8 +7,8 @@ import { Random } from '@rocket.chat/random'; import { Meteor } from 'meteor/meteor'; import type { MatchKeysAndValues } from 'mongodb'; -import { callbacks } from '../../../../lib/callbacks'; import { isTruthy } from '../../../../lib/isTruthy'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import { getDefaultSubscriptionPref } from '../../../utils/lib/getDefaultSubscriptionPref'; import { notifyOnRoomChangedById, notifyOnSubscriptionChangedByRoomIdAndUserId } from '../lib/notifyListener'; diff --git a/apps/meteor/app/lib/server/functions/createRoom.ts b/apps/meteor/app/lib/server/functions/createRoom.ts index c6a5a9b88742a..bb99ae7237f19 100644 --- a/apps/meteor/app/lib/server/functions/createRoom.ts +++ b/apps/meteor/app/lib/server/functions/createRoom.ts @@ -7,10 +7,10 @@ import { Rooms, Subscriptions, Users } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; import { createDirectRoom } from './createDirectRoom'; -import { callbacks } from '../../../../lib/callbacks'; -import { beforeAddUserToRoom } from '../../../../lib/callbacks/beforeAddUserToRoom'; -import { beforeCreateRoomCallback, prepareCreateRoomCallback } from '../../../../lib/callbacks/beforeCreateRoomCallback'; import { calculateRoomRolePriorityFromRoles } from '../../../../lib/roles/calculateRoomRolePriorityFromRoles'; +import { callbacks } from '../../../../server/lib/callbacks'; +import { beforeAddUserToRoom } from '../../../../server/lib/callbacks/beforeAddUserToRoom'; +import { beforeCreateRoomCallback, prepareCreateRoomCallback } from '../../../../server/lib/callbacks/beforeCreateRoomCallback'; import { getSubscriptionAutotranslateDefaultConfig } from '../../../../server/lib/getSubscriptionAutotranslateDefaultConfig'; import { syncRoomRolePriorityForUserAndRoom } from '../../../../server/lib/roles/syncRoomRolePriority'; import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; diff --git a/apps/meteor/app/lib/server/functions/deleteMessage.ts b/apps/meteor/app/lib/server/functions/deleteMessage.ts index 0be9a8b78e9ba..1c3fb32ef28bd 100644 --- a/apps/meteor/app/lib/server/functions/deleteMessage.ts +++ b/apps/meteor/app/lib/server/functions/deleteMessage.ts @@ -4,7 +4,7 @@ import { isThreadMessage, type AtLeast, type IMessage, type IRoom, type IThreadM import { Messages, Rooms, Uploads, Users, ReadReceipts, Subscriptions } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { canDeleteMessageAsync } from '../../../authorization/server/functions/canDeleteMessage'; import { FileUpload } from '../../../file-upload/server'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/lib/server/functions/deleteRoom.ts b/apps/meteor/app/lib/server/functions/deleteRoom.ts index 386ba8da8b94d..d9af32b4faa82 100644 --- a/apps/meteor/app/lib/server/functions/deleteRoom.ts +++ b/apps/meteor/app/lib/server/functions/deleteRoom.ts @@ -1,6 +1,6 @@ import { Messages, Rooms, Subscriptions } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { FileUpload } from '../../../file-upload/server'; import { notifyOnRoomChangedById, notifyOnSubscriptionChanged } from '../lib/notifyListener'; diff --git a/apps/meteor/app/lib/server/functions/deleteUser.ts b/apps/meteor/app/lib/server/functions/deleteUser.ts index 925dffb84ef3d..02847707a8765 100644 --- a/apps/meteor/app/lib/server/functions/deleteUser.ts +++ b/apps/meteor/app/lib/server/functions/deleteUser.ts @@ -20,7 +20,7 @@ import { getSubscribedRoomsForUserWithDetails, shouldRemoveOrChangeOwner } from import { getUserSingleOwnedRooms } from './getUserSingleOwnedRooms'; import { relinquishRoomOwnerships } from './relinquishRoomOwnerships'; import { updateGroupDMsName } from './updateGroupDMsName'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; import { FileUpload } from '../../../file-upload/server'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/lib/server/functions/notifications/email.js b/apps/meteor/app/lib/server/functions/notifications/email.js index 8fa1eb02a29fc..fa99f7eeb2048 100644 --- a/apps/meteor/app/lib/server/functions/notifications/email.js +++ b/apps/meteor/app/lib/server/functions/notifications/email.js @@ -1,8 +1,8 @@ import { escapeHTML } from '@rocket.chat/string-helpers'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../../lib/callbacks'; import { ltrim } from '../../../../../lib/utils/stringUtils'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; import { roomCoordinator } from '../../../../../server/lib/rooms/roomCoordinator'; import * as Mailer from '../../../../mailer/server/api'; diff --git a/apps/meteor/app/lib/server/functions/notifications/index.ts b/apps/meteor/app/lib/server/functions/notifications/index.ts index 538ff2ad5ed91..47a38ac0f068c 100644 --- a/apps/meteor/app/lib/server/functions/notifications/index.ts +++ b/apps/meteor/app/lib/server/functions/notifications/index.ts @@ -2,7 +2,7 @@ import type { IMessage, IUser } from '@rocket.chat/core-typings'; import { isFileAttachment, isFileImageAttachment } from '@rocket.chat/core-typings'; import { escapeRegExp } from '@rocket.chat/string-helpers'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; import { settings } from '../../../../settings/server'; diff --git a/apps/meteor/app/lib/server/functions/removeUserFromRoom.ts b/apps/meteor/app/lib/server/functions/removeUserFromRoom.ts index ee01d451c07ad..56cdd03a701d4 100644 --- a/apps/meteor/app/lib/server/functions/removeUserFromRoom.ts +++ b/apps/meteor/app/lib/server/functions/removeUserFromRoom.ts @@ -5,8 +5,8 @@ import type { IRoom, IUser } from '@rocket.chat/core-typings'; import { Subscriptions, Rooms } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { afterLeaveRoomCallback } from '../../../../lib/callbacks/afterLeaveRoomCallback'; -import { beforeLeaveRoomCallback } from '../../../../lib/callbacks/beforeLeaveRoomCallback'; +import { afterLeaveRoomCallback } from '../../../../server/lib/callbacks/afterLeaveRoomCallback'; +import { beforeLeaveRoomCallback } from '../../../../server/lib/callbacks/beforeLeaveRoomCallback'; import { settings } from '../../../settings/server'; import { notifyOnRoomChangedById, notifyOnSubscriptionChanged } from '../lib/notifyListener'; diff --git a/apps/meteor/app/lib/server/functions/saveUser/saveUser.ts b/apps/meteor/app/lib/server/functions/saveUser/saveUser.ts index 5c78b0bd96649..6665177794e73 100644 --- a/apps/meteor/app/lib/server/functions/saveUser/saveUser.ts +++ b/apps/meteor/app/lib/server/functions/saveUser/saveUser.ts @@ -6,9 +6,17 @@ import { Users } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; import type { ClientSession } from 'mongodb'; -import { callbacks } from '../../../../../lib/callbacks'; +import { handleBio } from './handleBio'; +import { handleNickname } from './handleNickname'; +import { saveNewUser } from './saveNewUser'; +import { sendPasswordEmail } from './sendUserEmail'; +import { setPasswordUpdater } from './setPasswordUpdater'; +import { validateUserData } from './validateUserData'; +import { validateUserEditing } from './validateUserEditing'; import { wrapInSessionTransaction, onceTransactionCommitedSuccessfully } from '../../../../../server/database/utils'; import type { UserChangedAuditStore } from '../../../../../server/lib/auditServerEvents/userChanged'; +import { callbacks } from '../../../../../server/lib/callbacks'; +import { shouldBreakInVersion } from '../../../../../server/lib/shouldBreakInVersion'; import { hasPermissionAsync } from '../../../../authorization/server/functions/hasPermission'; import { safeGetMeteorUser } from '../../../../utils/server/functions/safeGetMeteorUser'; import { generatePassword } from '../../lib/generatePassword'; @@ -18,14 +26,6 @@ import { saveCustomFields } from '../saveCustomFields'; import { saveUserIdentity } from '../saveUserIdentity'; import { setEmail } from '../setEmail'; import { setStatusText } from '../setStatusText'; -import { handleBio } from './handleBio'; -import { handleNickname } from './handleNickname'; -import { saveNewUser } from './saveNewUser'; -import { sendPasswordEmail } from './sendUserEmail'; -import { setPasswordUpdater } from './setPasswordUpdater'; -import { validateUserData } from './validateUserData'; -import { validateUserEditing } from './validateUserEditing'; -import { shouldBreakInVersion } from '../../../../../server/lib/shouldBreakInVersion'; export type SaveUserData = { _id?: IUser['_id']; diff --git a/apps/meteor/app/lib/server/functions/setUserActiveStatus.ts b/apps/meteor/app/lib/server/functions/setUserActiveStatus.ts index fa59df01ba589..8ebfe0c7449bc 100644 --- a/apps/meteor/app/lib/server/functions/setUserActiveStatus.ts +++ b/apps/meteor/app/lib/server/functions/setUserActiveStatus.ts @@ -9,7 +9,7 @@ import { closeOmnichannelConversations } from './closeOmnichannelConversations'; import { shouldRemoveOrChangeOwner, getSubscribedRoomsForUserWithDetails } from './getRoomsWithSingleOwner'; import { getUserSingleOwnedRooms } from './getUserSingleOwnedRooms'; import { relinquishRoomOwnerships } from './relinquishRoomOwnerships'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import * as Mailer from '../../../mailer/server/api'; import { settings } from '../../../settings/server'; import { diff --git a/apps/meteor/app/lib/server/functions/setUsername.ts b/apps/meteor/app/lib/server/functions/setUsername.ts index 761549ed10287..ad0364d5617a0 100644 --- a/apps/meteor/app/lib/server/functions/setUsername.ts +++ b/apps/meteor/app/lib/server/functions/setUsername.ts @@ -15,8 +15,8 @@ import { joinDefaultChannels } from './joinDefaultChannels'; import { saveUserIdentity } from './saveUserIdentity'; import { setUserAvatar } from './setUserAvatar'; import { validateUsername } from './validateUsername'; -import { callbacks } from '../../../../lib/callbacks'; import { onceTransactionCommitedSuccessfully } from '../../../../server/database/utils'; +import { callbacks } from '../../../../server/lib/callbacks'; import { SystemLogger } from '../../../../server/lib/logger/system'; import { settings } from '../../../settings/server'; import { notifyOnUserChange } from '../lib/notifyListener'; diff --git a/apps/meteor/app/lib/server/lib/afterSaveMessage.ts b/apps/meteor/app/lib/server/lib/afterSaveMessage.ts index 910b59d76e8a4..b320c2d87e8d6 100644 --- a/apps/meteor/app/lib/server/lib/afterSaveMessage.ts +++ b/apps/meteor/app/lib/server/lib/afterSaveMessage.ts @@ -2,7 +2,7 @@ import type { IMessage, IUser, IRoom } from '@rocket.chat/core-typings'; import type { Updater } from '@rocket.chat/models'; import { Rooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; export async function afterSaveMessage(message: IMessage, room: IRoom, user: IUser, roomUpdater?: Updater): Promise { const updater = roomUpdater ?? Rooms.getUpdater(); diff --git a/apps/meteor/app/lib/server/lib/notifyUsersOnMessage.ts b/apps/meteor/app/lib/server/lib/notifyUsersOnMessage.ts index ddfa2ed011c0e..80cf172c9dcb1 100644 --- a/apps/meteor/app/lib/server/lib/notifyUsersOnMessage.ts +++ b/apps/meteor/app/lib/server/lib/notifyUsersOnMessage.ts @@ -9,7 +9,7 @@ import { notifyOnSubscriptionChangedByRoomIdAndUserId, notifyOnSubscriptionChangedByRoomIdAndUserIds, } from './notifyListener'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import { messageContainsHighlight } from '../functions/notifications/messageContainsHighlight'; diff --git a/apps/meteor/app/lib/server/lib/sendNotificationsOnMessage.ts b/apps/meteor/app/lib/server/lib/sendNotificationsOnMessage.ts index d83c7445b4d72..0a347c7526abc 100644 --- a/apps/meteor/app/lib/server/lib/sendNotificationsOnMessage.ts +++ b/apps/meteor/app/lib/server/lib/sendNotificationsOnMessage.ts @@ -13,7 +13,7 @@ import moment from 'moment'; import type { RootFilterOperators } from 'mongodb'; import { getMentions } from './notifyUsersOnMessage'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { roomCoordinator } from '../../../../server/lib/rooms/roomCoordinator'; import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; import { Notification } from '../../../notification-queue/server/NotificationQueue'; diff --git a/apps/meteor/app/lib/server/lib/validateEmailDomain.js b/apps/meteor/app/lib/server/lib/validateEmailDomain.js index 898a3e6b8942e..d00a8808e8aee 100644 --- a/apps/meteor/app/lib/server/lib/validateEmailDomain.js +++ b/apps/meteor/app/lib/server/lib/validateEmailDomain.js @@ -1,10 +1,10 @@ import dns from 'dns'; import util from 'util'; +import { validateEmail } from '@rocket.chat/tools'; import { Meteor } from 'meteor/meteor'; import { emailDomainDefaultBlackList } from './defaultBlockedDomainsList'; -import { validateEmail } from '../../../../lib/emailValidator'; import { settings } from '../../../settings/server'; const dnsResolveMx = util.promisify(dns.resolveMx); diff --git a/apps/meteor/app/lib/server/methods/addUsersToRoom.ts b/apps/meteor/app/lib/server/methods/addUsersToRoom.ts index 68c1693b14f05..5f1e3f1200d28 100644 --- a/apps/meteor/app/lib/server/methods/addUsersToRoom.ts +++ b/apps/meteor/app/lib/server/methods/addUsersToRoom.ts @@ -5,7 +5,7 @@ import { Subscriptions, Users, Rooms } from '@rocket.chat/models'; import { Match } from 'meteor/check'; import { Meteor } from 'meteor/meteor'; -import { beforeAddUsersToRoom } from '../../../../lib/callbacks/beforeAddUserToRoom'; +import { beforeAddUsersToRoom } from '../../../../server/lib/callbacks/beforeAddUserToRoom'; import { i18n } from '../../../../server/lib/i18n'; import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; import { addUserToRoom } from '../functions/addUserToRoom'; diff --git a/apps/meteor/app/lib/server/startup/mentionUserNotInChannel.ts b/apps/meteor/app/lib/server/startup/mentionUserNotInChannel.ts index 45d1343f35721..fa5f8773bf3ea 100644 --- a/apps/meteor/app/lib/server/startup/mentionUserNotInChannel.ts +++ b/apps/meteor/app/lib/server/startup/mentionUserNotInChannel.ts @@ -5,8 +5,8 @@ import { Subscriptions, Users } from '@rocket.chat/models'; import type { ActionsBlock } from '@rocket.chat/ui-kit'; import moment from 'moment'; -import { callbacks } from '../../../../lib/callbacks'; import { isTruthy } from '../../../../lib/isTruthy'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/livechat/server/api/lib/livechat.ts b/apps/meteor/app/livechat/server/api/lib/livechat.ts index ed29cd5c86c80..699c87f7e7782 100644 --- a/apps/meteor/app/livechat/server/api/lib/livechat.ts +++ b/apps/meteor/app/livechat/server/api/lib/livechat.ts @@ -4,7 +4,7 @@ import { EmojiCustom, LivechatTrigger, LivechatVisitors, LivechatRooms, Livechat import { makeFunction } from '@rocket.chat/patch-injection'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; import { normalizeAgent } from '../../lib/Helper'; import { getInitSettings } from '../../lib/settings'; diff --git a/apps/meteor/app/livechat/server/api/lib/rooms.ts b/apps/meteor/app/livechat/server/api/lib/rooms.ts index a3e0a65762172..f8b4a5d4acd10 100644 --- a/apps/meteor/app/livechat/server/api/lib/rooms.ts +++ b/apps/meteor/app/livechat/server/api/lib/rooms.ts @@ -2,7 +2,7 @@ import type { ILivechatDepartment, IOmnichannelRoom } from '@rocket.chat/core-ty import { LivechatRooms, LivechatDepartment } from '@rocket.chat/models'; import type { PaginatedResult } from '@rocket.chat/rest-typings'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; export async function findRooms({ agents, diff --git a/apps/meteor/app/livechat/server/api/lib/visitors.ts b/apps/meteor/app/livechat/server/api/lib/visitors.ts index 15b5d51b533cb..3caf551358a89 100644 --- a/apps/meteor/app/livechat/server/api/lib/visitors.ts +++ b/apps/meteor/app/livechat/server/api/lib/visitors.ts @@ -2,7 +2,7 @@ import type { ILivechatVisitor, IMessage, IOmnichannelRoom, IRoom, IUser, IVisit import { LivechatVisitors, Messages, LivechatRooms, LivechatCustomField } from '@rocket.chat/models'; import type { FindOptions } from 'mongodb'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { canAccessRoomAsync } from '../../../../authorization/server/functions/canAccessRoom'; export async function findVisitorInfo({ visitorId }: { visitorId: IVisitor['_id'] }) { diff --git a/apps/meteor/app/livechat/server/api/v1/message.ts b/apps/meteor/app/livechat/server/api/v1/message.ts index 228ada8f464d1..bfce5e98e23ea 100644 --- a/apps/meteor/app/livechat/server/api/v1/message.ts +++ b/apps/meteor/app/livechat/server/api/v1/message.ts @@ -11,7 +11,7 @@ import { isGETLivechatMessagesParams, } from '@rocket.chat/rest-typings'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { API } from '../../../../api/server'; import { getPaginationItems } from '../../../../api/server/helpers/getPaginationItems'; import { isWidget } from '../../../../api/server/helpers/isWidget'; diff --git a/apps/meteor/app/livechat/server/api/v1/room.ts b/apps/meteor/app/livechat/server/api/v1/room.ts index 42a1b5666fe73..50b39b626cb08 100644 --- a/apps/meteor/app/livechat/server/api/v1/room.ts +++ b/apps/meteor/app/livechat/server/api/v1/room.ts @@ -27,7 +27,7 @@ import { } from '@rocket.chat/rest-typings'; import { check } from 'meteor/check'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; import { API } from '../../../../api/server'; import type { ExtractRoutesFromAPI } from '../../../../api/server/ApiClass'; diff --git a/apps/meteor/app/livechat/server/api/v1/visitor.ts b/apps/meteor/app/livechat/server/api/v1/visitor.ts index 2c17181fc3feb..b01a99b454bbd 100644 --- a/apps/meteor/app/livechat/server/api/v1/visitor.ts +++ b/apps/meteor/app/livechat/server/api/v1/visitor.ts @@ -4,7 +4,7 @@ import { registerGuest } from '@rocket.chat/omni-core'; import { Match, check } from 'meteor/check'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { API } from '../../../../api/server'; import { settings } from '../../../../settings/server'; import { setMultipleVisitorCustomFields } from '../../lib/custom-fields'; diff --git a/apps/meteor/app/livechat/server/business-hour/BusinessHourManager.ts b/apps/meteor/app/livechat/server/business-hour/BusinessHourManager.ts index adc7ebf05ce07..4fe6bff2d0d88 100644 --- a/apps/meteor/app/livechat/server/business-hour/BusinessHourManager.ts +++ b/apps/meteor/app/livechat/server/business-hour/BusinessHourManager.ts @@ -6,7 +6,7 @@ import moment from 'moment-timezone'; import type { IBusinessHourBehavior, IBusinessHourType } from './AbstractBusinessHour'; import { closeBusinessHour } from './closeBusinessHour'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnUserChange } from '../../../lib/server/lib/notifyListener'; import { settings } from '../../../settings/server'; import { businessHourLogger } from '../lib/logger'; diff --git a/apps/meteor/app/livechat/server/business-hour/index.ts b/apps/meteor/app/livechat/server/business-hour/index.ts index 8df93c5cbaeeb..95540bb44e9aa 100644 --- a/apps/meteor/app/livechat/server/business-hour/index.ts +++ b/apps/meteor/app/livechat/server/business-hour/index.ts @@ -6,7 +6,7 @@ import { Meteor } from 'meteor/meteor'; import { BusinessHourManager } from './BusinessHourManager'; import { DefaultBusinessHour } from './Default'; import { SingleBusinessHourBehavior } from './Single'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; export const businessHourManager = new BusinessHourManager(cronJobs); diff --git a/apps/meteor/app/livechat/server/hooks/afterAgentRemoved.ts b/apps/meteor/app/livechat/server/hooks/afterAgentRemoved.ts index 5dcb9513ec2fc..aa1cf05a87e96 100644 --- a/apps/meteor/app/livechat/server/hooks/afterAgentRemoved.ts +++ b/apps/meteor/app/livechat/server/hooks/afterAgentRemoved.ts @@ -1,6 +1,6 @@ import { LivechatDepartment, Users, LivechatDepartmentAgents, LivechatVisitors } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnLivechatDepartmentAgentChanged, notifyOnUserChange } from '../../../lib/server/lib/notifyListener'; callbacks.add('livechat.afterAgentRemoved', async ({ agent }) => { diff --git a/apps/meteor/app/livechat/server/hooks/afterSaveOmnichannelMessage.ts b/apps/meteor/app/livechat/server/hooks/afterSaveOmnichannelMessage.ts index 311343c4ad01d..8e5a17725cef2 100644 --- a/apps/meteor/app/livechat/server/hooks/afterSaveOmnichannelMessage.ts +++ b/apps/meteor/app/livechat/server/hooks/afterSaveOmnichannelMessage.ts @@ -1,7 +1,7 @@ import { isOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; callbacks.add( 'afterSaveMessage', diff --git a/apps/meteor/app/livechat/server/hooks/afterUserActions.ts b/apps/meteor/app/livechat/server/hooks/afterUserActions.ts index 026eb8224d8c4..a7149bcdb520c 100644 --- a/apps/meteor/app/livechat/server/hooks/afterUserActions.ts +++ b/apps/meteor/app/livechat/server/hooks/afterUserActions.ts @@ -1,7 +1,7 @@ import { type IUser } from '@rocket.chat/core-typings'; import { Users } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { afterAgentUserActivated, afterAgentAdded, afterRemoveAgent } from '../lib/hooks'; type IAfterSaveUserProps = { diff --git a/apps/meteor/app/livechat/server/hooks/leadCapture.ts b/apps/meteor/app/livechat/server/hooks/leadCapture.ts index 8d40b23b74492..6516c7d0f1e33 100644 --- a/apps/meteor/app/livechat/server/hooks/leadCapture.ts +++ b/apps/meteor/app/livechat/server/hooks/leadCapture.ts @@ -2,8 +2,8 @@ import type { IMessage, IOmnichannelRoom } from '@rocket.chat/core-typings'; import { isEditedMessage } from '@rocket.chat/core-typings'; import { LivechatVisitors } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; import { isTruthy } from '../../../../lib/isTruthy'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; function validateMessage(message: IMessage, room: IOmnichannelRoom) { diff --git a/apps/meteor/app/livechat/server/hooks/markRoomNotResponded.ts b/apps/meteor/app/livechat/server/hooks/markRoomNotResponded.ts index 01d3014f1c277..d3422ef33bb43 100644 --- a/apps/meteor/app/livechat/server/hooks/markRoomNotResponded.ts +++ b/apps/meteor/app/livechat/server/hooks/markRoomNotResponded.ts @@ -1,7 +1,7 @@ import { isEditedMessage } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; callbacks.add( 'afterOmnichannelSaveMessage', diff --git a/apps/meteor/app/livechat/server/hooks/markRoomResponded.ts b/apps/meteor/app/livechat/server/hooks/markRoomResponded.ts index ca7ca8dfbd820..fbda30475d5c2 100644 --- a/apps/meteor/app/livechat/server/hooks/markRoomResponded.ts +++ b/apps/meteor/app/livechat/server/hooks/markRoomResponded.ts @@ -4,7 +4,7 @@ import type { Updater } from '@rocket.chat/models'; import { LivechatRooms, LivechatContacts, LivechatInquiry } from '@rocket.chat/models'; import moment from 'moment'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnLivechatInquiryChanged } from '../../../lib/server/lib/notifyListener'; import { settings } from '../../../settings/server'; import { isMessageFromBot } from '../lib/isMessageFromBot'; diff --git a/apps/meteor/app/livechat/server/hooks/offlineMessage.ts b/apps/meteor/app/livechat/server/hooks/offlineMessage.ts index cf0f16af709a5..0496d7da1a9e4 100644 --- a/apps/meteor/app/livechat/server/hooks/offlineMessage.ts +++ b/apps/meteor/app/livechat/server/hooks/offlineMessage.ts @@ -1,4 +1,4 @@ -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import { sendRequest } from '../lib/webhooks'; diff --git a/apps/meteor/app/livechat/server/hooks/offlineMessageToChannel.ts b/apps/meteor/app/livechat/server/hooks/offlineMessageToChannel.ts index 7cc8f8e6e9ad1..f15c7d717b8f3 100644 --- a/apps/meteor/app/livechat/server/hooks/offlineMessageToChannel.ts +++ b/apps/meteor/app/livechat/server/hooks/offlineMessageToChannel.ts @@ -2,7 +2,7 @@ import type { ILivechatDepartment } from '@rocket.chat/core-typings'; import { isOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatDepartment, Users, Rooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; import { sendMessage } from '../../../lib/server/functions/sendMessage'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/livechat/server/hooks/processRoomAbandonment.ts b/apps/meteor/app/livechat/server/hooks/processRoomAbandonment.ts index 752bce901d314..ffe339adec77b 100644 --- a/apps/meteor/app/livechat/server/hooks/processRoomAbandonment.ts +++ b/apps/meteor/app/livechat/server/hooks/processRoomAbandonment.ts @@ -3,7 +3,7 @@ import { isOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatBusinessHours, LivechatDepartment, Messages, LivechatRooms } from '@rocket.chat/models'; import moment from 'moment'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import { businessHourManager } from '../business-hour'; import type { CloseRoomParams } from '../lib/localTypes'; diff --git a/apps/meteor/app/livechat/server/hooks/saveAnalyticsData.ts b/apps/meteor/app/livechat/server/hooks/saveAnalyticsData.ts index ce420afa1cb86..eff6229b57552 100644 --- a/apps/meteor/app/livechat/server/hooks/saveAnalyticsData.ts +++ b/apps/meteor/app/livechat/server/hooks/saveAnalyticsData.ts @@ -2,7 +2,7 @@ import { isEditedMessage, isMessageFromVisitor, isSystemMessage } from '@rocket. import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import { normalizeMessageFileUpload } from '../../../utils/server/functions/normalizeMessageFileUpload'; import { isMessageFromBot } from '../lib/isMessageFromBot'; diff --git a/apps/meteor/app/livechat/server/hooks/saveLastMessageToInquiry.ts b/apps/meteor/app/livechat/server/hooks/saveLastMessageToInquiry.ts index 1925e135a562c..acb4c53927c8d 100644 --- a/apps/meteor/app/livechat/server/hooks/saveLastMessageToInquiry.ts +++ b/apps/meteor/app/livechat/server/hooks/saveLastMessageToInquiry.ts @@ -1,7 +1,7 @@ import { isEditedMessage } from '@rocket.chat/core-typings'; import { LivechatInquiry } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnLivechatInquiryChanged } from '../../../lib/server/lib/notifyListener'; import { settings } from '../../../settings/server'; import { RoutingManager } from '../lib/RoutingManager'; diff --git a/apps/meteor/app/livechat/server/hooks/saveLastVisitorMessageTs.ts b/apps/meteor/app/livechat/server/hooks/saveLastVisitorMessageTs.ts index 03dcfdbf81bd2..3b0649b7eb5b3 100644 --- a/apps/meteor/app/livechat/server/hooks/saveLastVisitorMessageTs.ts +++ b/apps/meteor/app/livechat/server/hooks/saveLastVisitorMessageTs.ts @@ -1,7 +1,7 @@ import { isMessageFromVisitor } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; callbacks.add( 'afterOmnichannelSaveMessage', diff --git a/apps/meteor/app/livechat/server/hooks/sendEmailTranscriptOnClose.ts b/apps/meteor/app/livechat/server/hooks/sendEmailTranscriptOnClose.ts index f0c445a78a788..16fa7b239fea3 100644 --- a/apps/meteor/app/livechat/server/hooks/sendEmailTranscriptOnClose.ts +++ b/apps/meteor/app/livechat/server/hooks/sendEmailTranscriptOnClose.ts @@ -2,7 +2,7 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { isOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import type { CloseRoomParams } from '../lib/localTypes'; import { sendTranscript } from '../lib/sendTranscript'; diff --git a/apps/meteor/app/livechat/server/hooks/sendToCRM.ts b/apps/meteor/app/livechat/server/hooks/sendToCRM.ts index 26554932a021b..687fabe08b055 100644 --- a/apps/meteor/app/livechat/server/hooks/sendToCRM.ts +++ b/apps/meteor/app/livechat/server/hooks/sendToCRM.ts @@ -3,7 +3,7 @@ import { isEditedMessage, isOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatRooms, Messages } from '@rocket.chat/models'; import type { Response } from '@rocket.chat/server-fetch'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import { normalizeMessageFileUpload } from '../../../utils/server/functions/normalizeMessageFileUpload'; import { getLivechatRoomGuestInfo } from '../lib/guests'; diff --git a/apps/meteor/app/livechat/server/lib/Helper.ts b/apps/meteor/app/livechat/server/lib/Helper.ts index dd901e1db3e04..440b77a934a31 100644 --- a/apps/meteor/app/livechat/server/lib/Helper.ts +++ b/apps/meteor/app/livechat/server/lib/Helper.ts @@ -31,7 +31,7 @@ import { Users, LivechatContacts, } from '@rocket.chat/models'; -import { removeEmpty } from '@rocket.chat/tools'; +import { removeEmpty, validateEmail as validatorFunc } from '@rocket.chat/tools'; import { Match, check } from 'meteor/check'; import { Meteor } from 'meteor/meteor'; import type { ClientSession } from 'mongodb'; @@ -44,8 +44,7 @@ import { migrateVisitorIfMissingContact } from './contacts/migrateVisitorIfMissi import { afterRoomQueued, beforeNewRoom } from './hooks'; import { checkOnlineAgents, getOnlineAgents } from './service-status'; import { saveTransferHistory } from './transfer'; -import { callbacks } from '../../../../lib/callbacks'; -import { validateEmail as validatorFunc } from '../../../../lib/emailValidator'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; import { hasRoleAsync } from '../../../authorization/server/functions/hasRole'; import { sendNotification } from '../../../lib/server'; diff --git a/apps/meteor/app/livechat/server/lib/RoutingManager.ts b/apps/meteor/app/livechat/server/lib/RoutingManager.ts index d54afdafbac38..20f7a82e4c664 100644 --- a/apps/meteor/app/livechat/server/lib/RoutingManager.ts +++ b/apps/meteor/app/livechat/server/lib/RoutingManager.ts @@ -29,7 +29,7 @@ import { allowAgentSkipQueue, } from './Helper'; import { afterTakeInquiry, beforeDelegateAgent } from './hooks'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnLivechatInquiryChangedById, notifyOnLivechatInquiryChanged } from '../../../lib/server/lib/notifyListener'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/livechat/server/lib/closeRoom.ts b/apps/meteor/app/livechat/server/lib/closeRoom.ts index 66cbe70c94846..24770e40af29c 100644 --- a/apps/meteor/app/livechat/server/lib/closeRoom.ts +++ b/apps/meteor/app/livechat/server/lib/closeRoom.ts @@ -9,8 +9,8 @@ import type { ClientSession } from 'mongodb'; import type { CloseRoomParams, CloseRoomParamsByUser, CloseRoomParamsByVisitor } from './localTypes'; import { livechatLogger as logger } from './logger'; import { parseTranscriptRequest } from './parseTranscriptRequest'; -import { callbacks } from '../../../../lib/callbacks'; import { client, shouldRetryTransaction } from '../../../../server/database/utils'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnLivechatInquiryChanged, notifyOnRoomChanged, diff --git a/apps/meteor/app/livechat/server/lib/contacts/registerContact.ts b/apps/meteor/app/livechat/server/lib/contacts/registerContact.ts index 551572b24ca45..802002cf1832c 100644 --- a/apps/meteor/app/livechat/server/lib/contacts/registerContact.ts +++ b/apps/meteor/app/livechat/server/lib/contacts/registerContact.ts @@ -5,7 +5,7 @@ import type { MatchKeysAndValues, OnlyFieldsOfType } from 'mongodb'; import { getAllowedCustomFields } from './getAllowedCustomFields'; import { validateCustomFields } from './validateCustomFields'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { notifyOnRoomChangedById, notifyOnSubscriptionChangedByRoomId, diff --git a/apps/meteor/app/livechat/server/lib/departmentsLib.ts b/apps/meteor/app/livechat/server/lib/departmentsLib.ts index ea2c0ce69148b..d6a8acc646315 100644 --- a/apps/meteor/app/livechat/server/lib/departmentsLib.ts +++ b/apps/meteor/app/livechat/server/lib/departmentsLib.ts @@ -8,7 +8,7 @@ import { Meteor } from 'meteor/meteor'; import { updateDepartmentAgents } from './Helper'; import { afterDepartmentArchived, afterDepartmentUnarchived } from './hooks'; import { livechatLogger } from './logger'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnLivechatDepartmentAgentChangedByDepartmentId, notifyOnLivechatDepartmentAgentChanged, diff --git a/apps/meteor/app/livechat/server/lib/hooks.ts b/apps/meteor/app/livechat/server/lib/hooks.ts index 2cb2c087ca502..baaf226f21d8c 100644 --- a/apps/meteor/app/livechat/server/lib/hooks.ts +++ b/apps/meteor/app/livechat/server/lib/hooks.ts @@ -15,7 +15,7 @@ import { LivechatContacts, LivechatDepartmentAgents, LivechatVisitors, Users } f import { makeFunction } from '@rocket.chat/patch-injection'; import { setUserStatusLivechat } from './utils'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnLivechatDepartmentAgentChangedByDepartmentId } from '../../../lib/server/lib/notifyListener'; import { settings } from '../../../settings/server'; import { sendToCRM } from '../hooks/sendToCRM'; diff --git a/apps/meteor/app/livechat/server/lib/messages.ts b/apps/meteor/app/livechat/server/lib/messages.ts index 6db7855953d76..e04a3f4ddcd72 100644 --- a/apps/meteor/app/livechat/server/lib/messages.ts +++ b/apps/meteor/app/livechat/server/lib/messages.ts @@ -7,7 +7,7 @@ import { LivechatDepartment, Messages } from '@rocket.chat/models'; import type { ILivechatMessage } from './localTypes'; import { getRoom } from './rooms'; import { showConnecting } from './utils'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { deleteMessage as deleteMessageFunc } from '../../../lib/server/functions/deleteMessage'; import { sendMessage as sendMessageFunc } from '../../../lib/server/functions/sendMessage'; import { updateMessage as updateMessageFunc } from '../../../lib/server/functions/updateMessage'; diff --git a/apps/meteor/app/livechat/server/lib/omni-users.ts b/apps/meteor/app/livechat/server/lib/omni-users.ts index 0d8357e426dbf..28a0678cea959 100644 --- a/apps/meteor/app/livechat/server/lib/omni-users.ts +++ b/apps/meteor/app/livechat/server/lib/omni-users.ts @@ -5,7 +5,7 @@ import { removeEmpty } from '@rocket.chat/tools'; import { updateDepartmentAgents } from './Helper'; import { afterAgentAdded, afterRemoveAgent } from './hooks'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { addUserRolesAsync } from '../../../../server/lib/roles/addUserRoles'; import { removeUserFromRolesAsync } from '../../../../server/lib/roles/removeUserFromRoles'; import { settings } from '../../../settings/server'; diff --git a/apps/meteor/app/livechat/server/lib/rooms.ts b/apps/meteor/app/livechat/server/lib/rooms.ts index 486adee979cd6..6a7beca8da944 100644 --- a/apps/meteor/app/livechat/server/lib/rooms.ts +++ b/apps/meteor/app/livechat/server/lib/rooms.ts @@ -30,8 +30,8 @@ import { getRequiredDepartment } from './departmentsLib'; import { checkDefaultAgentOnNewRoom } from './hooks'; import { livechatLogger } from './logger'; import { saveTransferHistory } from './transfer'; -import { callbacks } from '../../../../lib/callbacks'; import { trim } from '../../../../lib/utils/stringUtils'; +import { callbacks } from '../../../../server/lib/callbacks'; import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; import { notifyOnLivechatInquiryChangedByRoom, diff --git a/apps/meteor/app/livechat/server/lib/routing/AutoSelection.ts b/apps/meteor/app/livechat/server/lib/routing/AutoSelection.ts index ee3385879cc4c..25feaa8de1e11 100644 --- a/apps/meteor/app/livechat/server/lib/routing/AutoSelection.ts +++ b/apps/meteor/app/livechat/server/lib/routing/AutoSelection.ts @@ -1,7 +1,7 @@ import type { IRoutingMethod, RoutingMethodConfig, SelectedAgent } from '@rocket.chat/core-typings'; import { LivechatDepartmentAgents, Users } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { settings } from '../../../../settings/server'; import { RoutingManager } from '../RoutingManager'; diff --git a/apps/meteor/app/livechat/server/lib/sendTranscript.ts b/apps/meteor/app/livechat/server/lib/sendTranscript.ts index bcd7227c0e383..ca0148742846d 100644 --- a/apps/meteor/app/livechat/server/lib/sendTranscript.ts +++ b/apps/meteor/app/livechat/server/lib/sendTranscript.ts @@ -17,7 +17,7 @@ import createDOMPurify from 'dompurify'; import { JSDOM } from 'jsdom'; import moment from 'moment-timezone'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; import { FileUpload } from '../../../file-upload/server'; import * as Mailer from '../../../mailer/server/api'; diff --git a/apps/meteor/app/livechat/server/lib/utils.ts b/apps/meteor/app/livechat/server/lib/utils.ts index dd03d1e3c9c46..6667298c43216 100644 --- a/apps/meteor/app/livechat/server/lib/utils.ts +++ b/apps/meteor/app/livechat/server/lib/utils.ts @@ -6,7 +6,7 @@ import type { Filter } from 'mongodb'; import { RoutingManager } from './RoutingManager'; import type { AKeyOf } from './localTypes'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { updateMessage } from '../../../lib/server/functions/updateMessage'; import { notifyOnUserChange } from '../../../lib/server/lib/notifyListener'; import { businessHourManager } from '../business-hour'; diff --git a/apps/meteor/app/livechat/server/methods/getDepartmentForwardRestrictions.ts b/apps/meteor/app/livechat/server/methods/getDepartmentForwardRestrictions.ts index 1fb6fbaf974ca..2a895fa6ed0f5 100644 --- a/apps/meteor/app/livechat/server/methods/getDepartmentForwardRestrictions.ts +++ b/apps/meteor/app/livechat/server/methods/getDepartmentForwardRestrictions.ts @@ -1,7 +1,7 @@ import type { ServerMethods } from '@rocket.chat/ddp-client'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { methodDeprecationLogger } from '../../../lib/server/lib/deprecationWarningLogger'; declare module '@rocket.chat/ddp-client' { diff --git a/apps/meteor/app/livechat/server/methods/getTagsList.ts b/apps/meteor/app/livechat/server/methods/getTagsList.ts index 3d6cdbd159789..fec21543249c3 100644 --- a/apps/meteor/app/livechat/server/methods/getTagsList.ts +++ b/apps/meteor/app/livechat/server/methods/getTagsList.ts @@ -2,7 +2,7 @@ import type { ILivechatTag } from '@rocket.chat/core-typings'; import type { ServerMethods } from '@rocket.chat/ddp-client'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { methodDeprecationLogger } from '../../../lib/server/lib/deprecationWarningLogger'; declare module '@rocket.chat/ddp-client' { diff --git a/apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts b/apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts index 632c5f1e1e7e1..b56402ef9a81d 100644 --- a/apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts +++ b/apps/meteor/app/livechat/server/methods/removeAllClosedRooms.ts @@ -4,7 +4,7 @@ import { Logger } from '@rocket.chat/logger'; import { LivechatRooms } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { hasPermissionAsync } from '../../../authorization/server/functions/hasPermission'; import { methodDeprecationLogger } from '../../../lib/server/lib/deprecationWarningLogger'; import { removeOmnichannelRoom } from '../lib/rooms'; diff --git a/apps/meteor/app/livechat/server/sendMessageBySMS.ts b/apps/meteor/app/livechat/server/sendMessageBySMS.ts index 5454474f09d9f..5b79806951ca1 100644 --- a/apps/meteor/app/livechat/server/sendMessageBySMS.ts +++ b/apps/meteor/app/livechat/server/sendMessageBySMS.ts @@ -3,7 +3,7 @@ import { isEditedMessage } from '@rocket.chat/core-typings'; import { LivechatVisitors } from '@rocket.chat/models'; import { callbackLogger } from './lib/logger'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { settings } from '../../settings/server'; import { normalizeMessageFileUpload } from '../../utils/server/functions/normalizeMessageFileUpload'; diff --git a/apps/meteor/app/livechat/server/startup.ts b/apps/meteor/app/livechat/server/startup.ts index d6035c7ab03fb..73219b781bf4f 100644 --- a/apps/meteor/app/livechat/server/startup.ts +++ b/apps/meteor/app/livechat/server/startup.ts @@ -11,8 +11,8 @@ import { businessHourManager } from './business-hour'; import { createDefaultBusinessHourIfNotExists } from './business-hour/Helper'; import { setUserStatusLivechatIf } from './lib/utils'; import { LivechatAgentActivityMonitor } from './statistics/LivechatAgentActivityMonitor'; -import { callbacks } from '../../../lib/callbacks'; -import { beforeLeaveRoomCallback } from '../../../lib/callbacks/beforeLeaveRoomCallback'; +import { callbacks } from '../../../server/lib/callbacks'; +import { beforeLeaveRoomCallback } from '../../../server/lib/callbacks/beforeLeaveRoomCallback'; import { i18n } from '../../../server/lib/i18n'; import { roomCoordinator } from '../../../server/lib/rooms/roomCoordinator'; import { maybeMigrateLivechatRoom } from '../../api/server/lib/maybeMigrateLivechatRoom'; diff --git a/apps/meteor/app/livechat/server/statistics/LivechatAgentActivityMonitor.ts b/apps/meteor/app/livechat/server/statistics/LivechatAgentActivityMonitor.ts index b82dcc30411d0..dc112b33c28ae 100644 --- a/apps/meteor/app/livechat/server/statistics/LivechatAgentActivityMonitor.ts +++ b/apps/meteor/app/livechat/server/statistics/LivechatAgentActivityMonitor.ts @@ -4,7 +4,7 @@ import { LivechatAgentActivity, Sessions, Users } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; import moment from 'moment'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; const formatDate = (dateTime = new Date()): { date: number } => ({ date: parseInt(moment(dateTime).format('YYYYMMDD')), diff --git a/apps/meteor/app/mailer/server/api.ts b/apps/meteor/app/mailer/server/api.ts index 90469936b0408..8fc98f884cb5c 100644 --- a/apps/meteor/app/mailer/server/api.ts +++ b/apps/meteor/app/mailer/server/api.ts @@ -2,6 +2,7 @@ import { AppEvents, Apps } from '@rocket.chat/apps'; import type { ISetting } from '@rocket.chat/core-typings'; import { Settings } from '@rocket.chat/models'; import { escapeHTML } from '@rocket.chat/string-helpers'; +import { validateEmail } from '@rocket.chat/tools'; import juice from 'juice'; import { Email } from 'meteor/email'; import { Meteor } from 'meteor/meteor'; @@ -9,7 +10,6 @@ import { stripHtml } from 'string-strip-html'; import _ from 'underscore'; import { replaceVariables } from './replaceVariables'; -import { validateEmail } from '../../../lib/emailValidator'; import { strLeft, strRightBack } from '../../../lib/utils/stringUtils'; import { i18n } from '../../../server/lib/i18n'; import { notifyOnSettingChanged } from '../../lib/server/lib/notifyListener'; diff --git a/apps/meteor/app/markdown/server/index.ts b/apps/meteor/app/markdown/server/index.ts index 8cf4e3078e484..4642c5fcbe9a1 100644 --- a/apps/meteor/app/markdown/server/index.ts +++ b/apps/meteor/app/markdown/server/index.ts @@ -1,7 +1,7 @@ import { Meteor } from 'meteor/meteor'; import { Tracker } from 'meteor/tracker'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { createMarkdownMessageRenderer, createMarkdownNotificationRenderer } from '../lib/markdown'; export { Markdown } from '../lib/markdown'; diff --git a/apps/meteor/app/mentions/server/getMentionedTeamMembers.ts b/apps/meteor/app/mentions/server/getMentionedTeamMembers.ts index 8c836e918a8a4..7f7274803a57a 100644 --- a/apps/meteor/app/mentions/server/getMentionedTeamMembers.ts +++ b/apps/meteor/app/mentions/server/getMentionedTeamMembers.ts @@ -1,7 +1,7 @@ import { Team } from '@rocket.chat/core-services'; import type { MessageMention } from '@rocket.chat/core-typings'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { settings } from '../../settings/server'; const beforeGetMentions = async (mentionIds: string[], teamMentions: MessageMention[]): Promise => { diff --git a/apps/meteor/app/nextcloud/server/addWebdavServer.ts b/apps/meteor/app/nextcloud/server/addWebdavServer.ts index f53ff59d76ef6..d439389299ae2 100644 --- a/apps/meteor/app/nextcloud/server/addWebdavServer.ts +++ b/apps/meteor/app/nextcloud/server/addWebdavServer.ts @@ -1,6 +1,6 @@ import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { SystemLogger } from '../../../server/lib/logger/system'; import { settings } from '../../settings/server'; import { addWebdavAccountByToken } from '../../webdav/server/methods/addWebdavAccount'; diff --git a/apps/meteor/app/oembed/server/providers.ts b/apps/meteor/app/oembed/server/providers.ts index 1d2bf89bbae81..5feb6b8ff078c 100644 --- a/apps/meteor/app/oembed/server/providers.ts +++ b/apps/meteor/app/oembed/server/providers.ts @@ -1,7 +1,7 @@ import type { OEmbedMeta, OEmbedUrlContent, OEmbedProvider } from '@rocket.chat/core-typings'; import { camelCase } from 'change-case'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { SystemLogger } from '../../../server/lib/logger/system'; import { settings } from '../../settings/server'; import { Info } from '../../utils/rocketchat.info'; diff --git a/apps/meteor/app/oembed/server/server.ts b/apps/meteor/app/oembed/server/server.ts index d3cdb52c0a86b..4a4b6a8b30fe2 100644 --- a/apps/meteor/app/oembed/server/server.ts +++ b/apps/meteor/app/oembed/server/server.ts @@ -16,8 +16,8 @@ import iconv from 'iconv-lite'; import ipRangeCheck from 'ip-range-check'; import jschardet from 'jschardet'; -import { callbacks } from '../../../lib/callbacks'; import { isURL } from '../../../lib/utils/isURL'; +import { callbacks } from '../../../server/lib/callbacks'; import { settings } from '../../settings/server'; import { Info } from '../../utils/rocketchat.info'; diff --git a/apps/meteor/app/push-notifications/server/lib/PushNotification.ts b/apps/meteor/app/push-notifications/server/lib/PushNotification.ts index 3e021cfbcc759..7fd7f404ac970 100644 --- a/apps/meteor/app/push-notifications/server/lib/PushNotification.ts +++ b/apps/meteor/app/push-notifications/server/lib/PushNotification.ts @@ -2,7 +2,7 @@ import type { IMessage, IPushNotificationConfig, IRoom, IUser } from '@rocket.ch import { Users } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { RocketChatAssets } from '../../../assets/server'; import { replaceMentionedUsernamesWithFullNames, parseMessageTextPerUser } from '../../../lib/server/functions/notifications'; import { getPushData } from '../../../lib/server/functions/notifications/mobile'; diff --git a/apps/meteor/app/reactions/server/setReaction.ts b/apps/meteor/app/reactions/server/setReaction.ts index 7d30963e82cd6..6064155aee4ab 100644 --- a/apps/meteor/app/reactions/server/setReaction.ts +++ b/apps/meteor/app/reactions/server/setReaction.ts @@ -5,7 +5,7 @@ import type { ServerMethods } from '@rocket.chat/ddp-client'; import { Messages, EmojiCustom, Rooms, Users } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { i18n } from '../../../server/lib/i18n'; import { canAccessRoomAsync } from '../../authorization/server'; import { hasPermissionAsync } from '../../authorization/server/functions/hasPermission'; diff --git a/apps/meteor/app/search/server/events/index.ts b/apps/meteor/app/search/server/events/index.ts index fcf583d63f1b7..30ad122312772 100644 --- a/apps/meteor/app/search/server/events/index.ts +++ b/apps/meteor/app/search/server/events/index.ts @@ -1,6 +1,6 @@ import type { IMessage } from '@rocket.chat/core-typings'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { settings } from '../../../settings/server'; import { searchProviderService } from '../service'; import { EventService } from './EventService'; diff --git a/apps/meteor/app/slackbridge/server/RocketAdapter.js b/apps/meteor/app/slackbridge/server/RocketAdapter.js index 70418d407443e..17fce65133090 100644 --- a/apps/meteor/app/slackbridge/server/RocketAdapter.js +++ b/apps/meteor/app/slackbridge/server/RocketAdapter.js @@ -7,8 +7,8 @@ import { Meteor } from 'meteor/meteor'; import _ from 'underscore'; import { rocketLogger } from './logger'; -import { callbacks } from '../../../lib/callbacks'; import { sleep } from '../../../lib/utils/sleep'; +import { callbacks } from '../../../server/lib/callbacks'; import { createRoom } from '../../lib/server/functions/createRoom'; import { sendMessage } from '../../lib/server/functions/sendMessage'; import { setUserAvatar } from '../../lib/server/functions/setUserAvatar'; diff --git a/apps/meteor/app/slashcommands-topic/client/topic.ts b/apps/meteor/app/slashcommands-topic/client/topic.ts index 93ac1b01e6719..697f87716a903 100644 --- a/apps/meteor/app/slashcommands-topic/client/topic.ts +++ b/apps/meteor/app/slashcommands-topic/client/topic.ts @@ -1,8 +1,8 @@ import type { SlashCommandCallbackParams } from '@rocket.chat/core-typings'; +import { clientCallbacks } from '@rocket.chat/ui-client'; import { dispatchToastMessage } from '../../../client/lib/toast'; import { Rooms } from '../../../client/stores'; -import { callbacks } from '../../../lib/callbacks'; import { hasPermission } from '../../authorization/client'; import { sdk } from '../../utils/client/lib/SDKClient'; import { slashCommands } from '../../utils/client/slashCommand'; @@ -13,7 +13,7 @@ slashCommands.add({ if (hasPermission('edit-room', message.rid)) { try { await sdk.call('saveRoomSettings', message.rid, 'roomTopic', params); - await callbacks.run('roomTopicChanged', Rooms.state.get(message.rid)); + await clientCallbacks.run('roomTopicChanged', Rooms.state.get(message.rid)); } catch (error: unknown) { dispatchToastMessage({ type: 'error', message: error }); throw error; diff --git a/apps/meteor/app/threads/server/hooks/aftersavemessage.ts b/apps/meteor/app/threads/server/hooks/aftersavemessage.ts index a938dadddb276..5a3eea24f47b3 100644 --- a/apps/meteor/app/threads/server/hooks/aftersavemessage.ts +++ b/apps/meteor/app/threads/server/hooks/aftersavemessage.ts @@ -3,7 +3,7 @@ import { isEditedMessage } from '@rocket.chat/core-typings'; import { Messages } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { notifyOnMessageChange } from '../../../lib/server/lib/notifyListener'; import { updateThreadUsersSubscriptions, getMentions } from '../../../lib/server/lib/notifyUsersOnMessage'; import { sendMessageNotifications } from '../../../lib/server/lib/sendNotificationsOnMessage'; diff --git a/apps/meteor/app/threads/server/methods/getThreadMessages.ts b/apps/meteor/app/threads/server/methods/getThreadMessages.ts index 6e5fa21306846..ab5e8a5e3f00d 100644 --- a/apps/meteor/app/threads/server/methods/getThreadMessages.ts +++ b/apps/meteor/app/threads/server/methods/getThreadMessages.ts @@ -3,7 +3,7 @@ import type { ServerMethods } from '@rocket.chat/ddp-client'; import { Messages, Rooms } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { canAccessRoomAsync } from '../../../authorization/server'; import { settings } from '../../../settings/server'; import { readThread } from '../functions'; diff --git a/apps/meteor/app/ui-utils/client/lib/LegacyRoomManager.ts b/apps/meteor/app/ui-utils/client/lib/LegacyRoomManager.ts index c24a770c68fac..d6a8abf9c35da 100644 --- a/apps/meteor/app/ui-utils/client/lib/LegacyRoomManager.ts +++ b/apps/meteor/app/ui-utils/client/lib/LegacyRoomManager.ts @@ -1,6 +1,7 @@ import type { IMessage, IRoom } from '@rocket.chat/core-typings'; import { Emitter } from '@rocket.chat/emitter'; import { createPredicateFromFilter } from '@rocket.chat/mongo-adapter'; +import { clientCallbacks } from '@rocket.chat/ui-client'; import type { Filter } from 'mongodb'; import { upsertMessage, RoomHistoryManager } from './RoomHistoryManager'; @@ -10,7 +11,6 @@ import { fireGlobalEvent } from '../../../../client/lib/utils/fireGlobalEvent'; import { getConfig } from '../../../../client/lib/utils/getConfig'; import { modifyMessageOnFilesDelete } from '../../../../client/lib/utils/modifyMessageOnFilesDelete'; import { Messages, Subscriptions } from '../../../../client/stores'; -import { callbacks } from '../../../../lib/callbacks'; import { sdk } from '../../../utils/client/lib/SDKClient'; const maxRoomsOpen = parseInt(getConfig('maxRoomsOpen') ?? '5') || 5; @@ -180,11 +180,11 @@ const openRoom = (typeName: string, record: OpenedRoom) => { ({ _id: msg._id, temp: { $ne: true } }); await upsertMessage({ msg, subscription }); if (isNew) { - await callbacks.run('streamNewMessage', msg); + await clientCallbacks.run('streamNewMessage', msg); } } - await callbacks.run('streamMessage', { ...msg, name: room.name || '' }); + await clientCallbacks.run('streamMessage', { ...msg, name: room.name || '' }); fireGlobalEvent('new-message', { ...msg, diff --git a/apps/meteor/client/NavBarV2/NavBarSettingsToolbar/UserMenu/hooks/useStatusItems.tsx b/apps/meteor/client/NavBarV2/NavBarSettingsToolbar/UserMenu/hooks/useStatusItems.tsx index a965e94002e82..58b75c7a9fd7c 100644 --- a/apps/meteor/client/NavBarV2/NavBarSettingsToolbar/UserMenu/hooks/useStatusItems.tsx +++ b/apps/meteor/client/NavBarV2/NavBarSettingsToolbar/UserMenu/hooks/useStatusItems.tsx @@ -1,12 +1,12 @@ import { Box } from '@rocket.chat/fuselage'; import type { GenericMenuItemProps } from '@rocket.chat/ui-client'; +import { clientCallbacks } from '@rocket.chat/ui-client'; import { useEndpoint, useSetting } from '@rocket.chat/ui-contexts'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useCustomStatusModalHandler } from './useCustomStatusModalHandler'; -import { callbacks } from '../../../../../lib/callbacks'; import MarkdownText from '../../../../components/MarkdownText'; import { UserStatus } from '../../../../components/UserStatus'; import { useFireGlobalEvent } from '../../../../hooks/useFireGlobalEvent'; @@ -36,7 +36,7 @@ export const useStatusItems = (): GenericMenuItemProps[] => { const setStatusMutation = useMutation({ mutationFn: async (status: UserStatusDescriptor) => { void setStatus({ status: status.statusType, message: userStatuses.isValidType(status.id) ? '' : status.name }); - void callbacks.run('userStatusManuallySet', status); + void clientCallbacks.run('userStatusManuallySet', status); await fireGlobalStatusEvent.mutateAsync(status); }, }); diff --git a/apps/meteor/client/components/Header/Header.tsx b/apps/meteor/client/components/Header/Header.tsx deleted file mode 100644 index 4d8ba472aa65f..0000000000000 --- a/apps/meteor/client/components/Header/Header.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn, HeaderV2, Header as HeaderComponent } from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const Header = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(Header); diff --git a/apps/meteor/client/components/Header/HeaderAvatar.tsx b/apps/meteor/client/components/Header/HeaderAvatar.tsx deleted file mode 100644 index 917201e7f61a9..0000000000000 --- a/apps/meteor/client/components/Header/HeaderAvatar.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2Avatar, - HeaderAvatar as HeaderAvatarComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderAvatar = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderAvatar); diff --git a/apps/meteor/client/components/Header/HeaderContent.tsx b/apps/meteor/client/components/Header/HeaderContent.tsx deleted file mode 100644 index 4e81de88388e3..0000000000000 --- a/apps/meteor/client/components/Header/HeaderContent.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2Content, - HeaderContent as HeaderContentComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderContent = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderContent); diff --git a/apps/meteor/client/components/Header/HeaderContentRow.tsx b/apps/meteor/client/components/Header/HeaderContentRow.tsx deleted file mode 100644 index 19142aaaba45a..0000000000000 --- a/apps/meteor/client/components/Header/HeaderContentRow.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2ContentRow, - HeaderContentRow as HeaderContentRowComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderContentRow = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderContentRow); diff --git a/apps/meteor/client/components/Header/HeaderDivider.tsx b/apps/meteor/client/components/Header/HeaderDivider.tsx deleted file mode 100644 index 35213e868fba7..0000000000000 --- a/apps/meteor/client/components/Header/HeaderDivider.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2Divider, - HeaderDivider as HeaderDividerComponent, -} from '@rocket.chat/ui-client'; -import { memo } from 'react'; - -const HeaderDivider = () => ( - - - - - - - - -); - -export default memo(HeaderDivider); diff --git a/apps/meteor/client/components/Header/HeaderIcon.tsx b/apps/meteor/client/components/Header/HeaderIcon.tsx deleted file mode 100644 index eec89379a0909..0000000000000 --- a/apps/meteor/client/components/Header/HeaderIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2Icon, - HeaderIcon as HeaderIconComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderIcon = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderIcon); diff --git a/apps/meteor/client/components/Header/HeaderState.tsx b/apps/meteor/client/components/Header/HeaderState.tsx deleted file mode 100644 index aaf2868cdeea3..0000000000000 --- a/apps/meteor/client/components/Header/HeaderState.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2State, - HeaderState as HeaderStateComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderState = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderState); diff --git a/apps/meteor/client/components/Header/HeaderSubtitle.tsx b/apps/meteor/client/components/Header/HeaderSubtitle.tsx deleted file mode 100644 index a847607f08d1c..0000000000000 --- a/apps/meteor/client/components/Header/HeaderSubtitle.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2Subtitle, - HeaderSubtitle as HeaderSubtitleComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderSubtitle = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderSubtitle); diff --git a/apps/meteor/client/components/Header/HeaderTag.tsx b/apps/meteor/client/components/Header/HeaderTag.tsx deleted file mode 100644 index a2c3a9397b5bb..0000000000000 --- a/apps/meteor/client/components/Header/HeaderTag.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn, HeaderV2Tag, HeaderTag as HeaderTagComponent } from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderTag = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderTag); diff --git a/apps/meteor/client/components/Header/HeaderTagIcon.tsx b/apps/meteor/client/components/Header/HeaderTagIcon.tsx deleted file mode 100644 index bab32c0478b3e..0000000000000 --- a/apps/meteor/client/components/Header/HeaderTagIcon.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2TagIcon, - HeaderTagIcon as HeaderTagIconComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderTagIcon = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderTagIcon); diff --git a/apps/meteor/client/components/Header/HeaderTitle.tsx b/apps/meteor/client/components/Header/HeaderTitle.tsx deleted file mode 100644 index 8490a422682a2..0000000000000 --- a/apps/meteor/client/components/Header/HeaderTitle.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2Title, - HeaderTitle as HeaderTitleComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderTitle = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderTitle); diff --git a/apps/meteor/client/components/Header/HeaderTitleButton.tsx b/apps/meteor/client/components/Header/HeaderTitleButton.tsx deleted file mode 100644 index 678851e35a643..0000000000000 --- a/apps/meteor/client/components/Header/HeaderTitleButton.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2TitleButton, - HeaderTitleButton as HeaderTitleButtonComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderTitleButton = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderTitleButton); diff --git a/apps/meteor/client/components/Header/HeaderToolbar.tsx b/apps/meteor/client/components/Header/HeaderToolbar.tsx deleted file mode 100644 index b9c66d9b5c6f8..0000000000000 --- a/apps/meteor/client/components/Header/HeaderToolbar.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2Toolbar, - HeaderToolbar as HeaderToolbarComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderToolbar = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderToolbar); diff --git a/apps/meteor/client/components/Header/HeaderToolbarActionBadge.tsx b/apps/meteor/client/components/Header/HeaderToolbarActionBadge.tsx deleted file mode 100644 index 4be296169478f..0000000000000 --- a/apps/meteor/client/components/Header/HeaderToolbarActionBadge.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2ToolbarActionBadge, - HeaderToolbarActionBadge as HeaderToolbarActionBadgeComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; -import { memo } from 'react'; - -const HeaderToolbarActionBadge = (props: ComponentProps) => ( - - - - - - - - -); - -export default memo(HeaderToolbarActionBadge); diff --git a/apps/meteor/client/components/Header/index.ts b/apps/meteor/client/components/Header/index.ts deleted file mode 100644 index be01ea638c980..0000000000000 --- a/apps/meteor/client/components/Header/index.ts +++ /dev/null @@ -1,37 +0,0 @@ -import Header from './Header'; -import HeaderAvatar from './HeaderAvatar'; -import HeaderContent from './HeaderContent'; -import HeaderContentRow from './HeaderContentRow'; -import HeaderDivider from './HeaderDivider'; -import HeaderIcon from './HeaderIcon'; -import HeaderState from './HeaderState'; -import HeaderSubtitle from './HeaderSubtitle'; -import HeaderTag from './HeaderTag'; -import HeaderTagIcon from './HeaderTagIcon'; -import HeaderTagSkeleton from './HeaderTagSkeleton'; -import HeaderTitle from './HeaderTitle'; -import HeaderTitleButton from './HeaderTitleButton'; -import HeaderToolbar from './HeaderToolbar'; -import HeaderToolbarAction from './HeaderToolbarAction'; -import HeaderToolbarActionBadge from './HeaderToolbarActionBadge'; -import HeaderToolbarDivider from './HeaderToolbarDivider'; - -export { - Header, - HeaderAvatar, - HeaderContent, - HeaderContentRow, - HeaderDivider, - HeaderIcon, - HeaderState, - HeaderSubtitle, - HeaderTag, - HeaderTagIcon, - HeaderTagSkeleton, - HeaderTitle, - HeaderTitleButton, - HeaderToolbar, - HeaderToolbarAction, - HeaderToolbarActionBadge, - HeaderToolbarDivider, -}; diff --git a/apps/meteor/client/components/Page/index.ts b/apps/meteor/client/components/Page/index.ts deleted file mode 100644 index 329f4dc1eee4f..0000000000000 --- a/apps/meteor/client/components/Page/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { default as Page } from './Page'; -export { default as PageContent } from './PageContent'; -export { default as PageFooter } from './PageFooter'; -export { default as PageHeader } from './PageHeader'; -export { default as PageScrollableContentWithShadow } from './PageScrollableContentWithShadow'; diff --git a/apps/meteor/client/components/PageSkeleton.tsx b/apps/meteor/client/components/PageSkeleton.tsx index 883b7873f546b..69606f6c3d7ce 100644 --- a/apps/meteor/client/components/PageSkeleton.tsx +++ b/apps/meteor/client/components/PageSkeleton.tsx @@ -1,8 +1,7 @@ import { Box, Button, ButtonGroup, Skeleton } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; -import { Page, PageHeader, PageContent } from './Page'; - const PageSkeleton = (): ReactElement => ( }> diff --git a/apps/meteor/client/components/PlanTag.tsx b/apps/meteor/client/components/PlanTag.tsx index 1687d118f4442..59ad322b0a3cd 100644 --- a/apps/meteor/client/components/PlanTag.tsx +++ b/apps/meteor/client/components/PlanTag.tsx @@ -1,7 +1,7 @@ import { Box, Tag } from '@rocket.chat/fuselage'; +import { useLicense } from '@rocket.chat/ui-client'; import { isTruthy } from '../../lib/isTruthy'; -import { useLicense } from '../hooks/useLicense'; const developmentTag = process.env.NODE_ENV === 'development' ? 'Development' : null; function PlanTag() { diff --git a/apps/meteor/client/components/SidebarToggler/index.ts b/apps/meteor/client/components/SidebarToggler/index.ts deleted file mode 100644 index c0319dc75c38b..0000000000000 --- a/apps/meteor/client/components/SidebarToggler/index.ts +++ /dev/null @@ -1 +0,0 @@ -export { default } from './SidebarToggler'; diff --git a/apps/meteor/client/components/SidebarTogglerV2/SidebarToggler.tsx b/apps/meteor/client/components/SidebarTogglerV2/SidebarToggler.tsx index 6f4762e858b7a..033c4065a2e4d 100644 --- a/apps/meteor/client/components/SidebarTogglerV2/SidebarToggler.tsx +++ b/apps/meteor/client/components/SidebarTogglerV2/SidebarToggler.tsx @@ -1,10 +1,10 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import { useLayout, useSession } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { memo } from 'react'; import SidebarTogglerButton from './SidebarTogglerButton'; -import { useEmbeddedLayout } from '../../hooks/useEmbeddedLayout'; const SideBarToggler = (): ReactElement => { const { sidebar } = useLayout(); diff --git a/apps/meteor/client/components/UserCard/UserCard.tsx b/apps/meteor/client/components/UserCard/UserCard.tsx index cda67cd8e47d8..d8878524fce35 100644 --- a/apps/meteor/client/components/UserCard/UserCard.tsx +++ b/apps/meteor/client/components/UserCard/UserCard.tsx @@ -1,10 +1,10 @@ import { css } from '@rocket.chat/css-in-js'; import { Box, Button, IconButton } from '@rocket.chat/fuselage'; import { UserAvatar } from '@rocket.chat/ui-avatar'; +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import type { ReactNode, ComponentProps } from 'react'; import { useTranslation } from 'react-i18next'; -import { useEmbeddedLayout } from '../../hooks/useEmbeddedLayout'; import MarkdownText from '../MarkdownText'; import * as Status from '../UserStatus'; import UserCardActions from './UserCardActions'; diff --git a/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts b/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts index 33536db3deefc..6bebb1d8c1729 100644 --- a/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts +++ b/apps/meteor/client/components/message/toolbar/useReplyInDMAction.ts @@ -1,11 +1,11 @@ import { type IMessage, type ISubscription, type IRoom, isE2EEMessage } from '@rocket.chat/core-typings'; +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import { usePermission, useRouter, useUser } from '@rocket.chat/ui-contexts'; import { useCallback, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useShallow } from 'zustand/shallow'; import type { MessageActionConfig } from '../../../../app/ui-utils/client/lib/MessageAction'; -import { useEmbeddedLayout } from '../../../hooks/useEmbeddedLayout'; import { roomCoordinator } from '../../../lib/rooms/roomCoordinator'; import { Rooms, Subscriptions } from '../../../stores'; diff --git a/apps/meteor/client/hooks/roomActions/useAppsRoomStarActions.tsx b/apps/meteor/client/hooks/roomActions/useAppsRoomStarActions.tsx index 2f9c45fa39b12..85149c974a830 100644 --- a/apps/meteor/client/hooks/roomActions/useAppsRoomStarActions.tsx +++ b/apps/meteor/client/hooks/roomActions/useAppsRoomStarActions.tsx @@ -1,5 +1,5 @@ import { Box } from '@rocket.chat/fuselage'; -import { GenericMenu, HeaderToolbarAction } from '@rocket.chat/ui-client'; +import { GenericMenu, HeaderV1ToolbarAction } from '@rocket.chat/ui-client'; import { useToastMessageDispatch } from '@rocket.chat/ui-contexts'; import type { RoomToolboxActionConfig } from '@rocket.chat/ui-contexts'; import { useMemo } from 'react'; @@ -39,7 +39,7 @@ export const useAppsRoomStarActions = () => { order: 3, renderToolboxItem: ({ id, icon, title, disabled, className }) => ( } + button={} key={id} title={title} disabled={disabled} diff --git a/apps/meteor/client/hooks/roomActions/useThreadRoomAction.tsx b/apps/meteor/client/hooks/roomActions/useThreadRoomAction.tsx index 1f42c94fd31c8..b863048550c17 100644 --- a/apps/meteor/client/hooks/roomActions/useThreadRoomAction.tsx +++ b/apps/meteor/client/hooks/roomActions/useThreadRoomAction.tsx @@ -1,10 +1,10 @@ import type { BadgeProps } from '@rocket.chat/fuselage'; +import { HeaderToolbarAction, HeaderToolbarActionBadge } from '@rocket.chat/ui-client'; import { useSetting } from '@rocket.chat/ui-contexts'; import type { RoomToolboxActionConfig } from '@rocket.chat/ui-contexts'; import { lazy, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderToolbarAction, HeaderToolbarActionBadge } from '../../components/Header'; import { useRoomSubscription } from '../../views/room/contexts/RoomContext'; const getVariant = (tunreadUser: number, tunreadGroup: number): BadgeProps['variant'] => { diff --git a/apps/meteor/client/hooks/useEmbeddedLayout.ts b/apps/meteor/client/hooks/useEmbeddedLayout.ts deleted file mode 100644 index 61385ef4c12d2..0000000000000 --- a/apps/meteor/client/hooks/useEmbeddedLayout.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { useLayout } from '@rocket.chat/ui-contexts'; - -export const useEmbeddedLayout = (): boolean => useLayout().isEmbedded; diff --git a/apps/meteor/client/hooks/useHasLicenseModule.ts b/apps/meteor/client/hooks/useHasLicenseModule.ts index 4916cb3685198..19f93173043a8 100644 --- a/apps/meteor/client/hooks/useHasLicenseModule.ts +++ b/apps/meteor/client/hooks/useHasLicenseModule.ts @@ -1,6 +1,5 @@ import type { LicenseModule } from '@rocket.chat/core-typings'; - -import { useLicenseBase } from './useLicense'; +import { useLicenseBase } from '@rocket.chat/ui-client'; export const useHasLicenseModule = (licenseName: LicenseModule | undefined) => useLicenseBase({ diff --git a/apps/meteor/client/hooks/useIsEnterprise.ts b/apps/meteor/client/hooks/useIsEnterprise.ts index dffaf8b368775..884d138211444 100644 --- a/apps/meteor/client/hooks/useIsEnterprise.ts +++ b/apps/meteor/client/hooks/useIsEnterprise.ts @@ -1,7 +1,6 @@ +import { useLicenseBase } from '@rocket.chat/ui-client'; import type { UseQueryResult } from '@tanstack/react-query'; -import { useLicenseBase } from './useLicense'; - export const useIsEnterprise = (): UseQueryResult<{ isEnterprise: boolean }> => { return useLicenseBase({ select: (data) => ({ isEnterprise: Boolean(data?.license.license) }) }); }; diff --git a/apps/meteor/client/hooks/useLicenseLimitsByBehavior.ts b/apps/meteor/client/hooks/useLicenseLimitsByBehavior.ts index 46b86c732833d..8f36282fba001 100644 --- a/apps/meteor/client/hooks/useLicenseLimitsByBehavior.ts +++ b/apps/meteor/client/hooks/useLicenseLimitsByBehavior.ts @@ -1,7 +1,6 @@ import type { LicenseBehavior, LicenseLimitKind } from '@rocket.chat/core-typings'; import { validateWarnLimit } from '@rocket.chat/license/src/validation/validateLimit'; - -import { useLicense } from './useLicense'; +import { useLicense } from '@rocket.chat/ui-client'; type LicenseLimitsByBehavior = Record; diff --git a/apps/meteor/client/hooks/useShouldPreventAction.ts b/apps/meteor/client/hooks/useShouldPreventAction.ts index 99b831a7928c7..63682df019d7a 100644 --- a/apps/meteor/client/hooks/useShouldPreventAction.ts +++ b/apps/meteor/client/hooks/useShouldPreventAction.ts @@ -1,6 +1,5 @@ import type { LicenseLimitKind } from '@rocket.chat/core-typings'; - -import { useLicense } from './useLicense'; +import { useLicense } from '@rocket.chat/ui-client'; export const useShouldPreventAction = (action: LicenseLimitKind): boolean => { const { data: { preventedActions } = {} } = useLicense(); diff --git a/apps/meteor/client/providers/AppsProvider/AppsProvider.tsx b/apps/meteor/client/providers/AppsProvider/AppsProvider.tsx index 7030b04407e3e..c20245595a316 100644 --- a/apps/meteor/client/providers/AppsProvider/AppsProvider.tsx +++ b/apps/meteor/client/providers/AppsProvider/AppsProvider.tsx @@ -1,4 +1,5 @@ import { useDebouncedCallback } from '@rocket.chat/fuselage-hooks'; +import { useInvalidateLicense, useLicense } from '@rocket.chat/ui-client'; import { usePermission, useStream } from '@rocket.chat/ui-contexts'; import { keepPreviousData, useQuery, useQueryClient } from '@tanstack/react-query'; import type { ReactNode } from 'react'; @@ -7,7 +8,6 @@ import { useEffect } from 'react'; import { storeQueryFunction } from './storeQueryFunction'; import { AppClientOrchestratorInstance } from '../../apps/orchestrator'; import { AppsContext } from '../../contexts/AppsContext'; -import { useInvalidateLicense, useLicense } from '../../hooks/useLicense'; import type { AsyncState } from '../../lib/asyncState'; import { AsyncStatePhase } from '../../lib/asyncState'; import { useInvalidateAppsCountQueryCallback } from '../../views/marketplace/hooks/useAppsCountQuery'; diff --git a/apps/meteor/client/providers/UserProvider/UserProvider.tsx b/apps/meteor/client/providers/UserProvider/UserProvider.tsx index 5b641d50da0c8..ae9ffd8806f5a 100644 --- a/apps/meteor/client/providers/UserProvider/UserProvider.tsx +++ b/apps/meteor/client/providers/UserProvider/UserProvider.tsx @@ -2,6 +2,7 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { Emitter } from '@rocket.chat/emitter'; import { useLocalStorage } from '@rocket.chat/fuselage-hooks'; import { createPredicateFromFilter } from '@rocket.chat/mongo-adapter'; +import { afterLogoutCleanUpCallback } from '@rocket.chat/ui-client'; import type { FindOptions, SubscriptionWithRoom } from '@rocket.chat/ui-contexts'; import { UserContext, useEndpoint, useRouteParameter, useSearchParameter } from '@rocket.chat/ui-contexts'; import { useQueryClient } from '@tanstack/react-query'; @@ -19,7 +20,6 @@ import { useReloadAfterLogin } from './hooks/useReloadAfterLogin'; import { useUpdateAvatar } from './hooks/useUpdateAvatar'; import { getUserPreference } from '../../../app/utils/client'; import { sdk } from '../../../app/utils/client/lib/SDKClient'; -import { afterLogoutCleanUpCallback } from '../../../lib/callbacks/afterLogoutCleanUpCallback'; import { useIdleConnection } from '../../hooks/useIdleConnection'; import type { IDocumentMapStore } from '../../lib/cachedStores/DocumentMapStore'; import { applyQueryOptions } from '../../lib/cachedStores/applyQueryOptions'; diff --git a/apps/meteor/client/sidebar/footer/SidebarFooterWatermark.tsx b/apps/meteor/client/sidebar/footer/SidebarFooterWatermark.tsx index c43b17fd6a249..00ea56a1bb5ca 100644 --- a/apps/meteor/client/sidebar/footer/SidebarFooterWatermark.tsx +++ b/apps/meteor/client/sidebar/footer/SidebarFooterWatermark.tsx @@ -1,8 +1,8 @@ import { Box } from '@rocket.chat/fuselage'; +import { useLicense, useLicenseName } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; -import { useLicense, useLicenseName } from '../../hooks/useLicense'; import { links } from '../../lib/links'; export const SidebarFooterWatermark = (): ReactElement | null => { diff --git a/apps/meteor/client/sidebar/header/hooks/useStatusItems.tsx b/apps/meteor/client/sidebar/header/hooks/useStatusItems.tsx index b4904e102b235..637b6ae0a7b4f 100644 --- a/apps/meteor/client/sidebar/header/hooks/useStatusItems.tsx +++ b/apps/meteor/client/sidebar/header/hooks/useStatusItems.tsx @@ -1,4 +1,5 @@ import { Box } from '@rocket.chat/fuselage'; +import { clientCallbacks } from '@rocket.chat/ui-client'; import type { GenericMenuItemProps } from '@rocket.chat/ui-client'; import { useEndpoint, useSetting } from '@rocket.chat/ui-contexts'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; @@ -6,7 +7,6 @@ import { useEffect } from 'react'; import { useTranslation } from 'react-i18next'; import { useCustomStatusModalHandler } from './useCustomStatusModalHandler'; -import { callbacks } from '../../../../lib/callbacks'; import MarkdownText from '../../../components/MarkdownText'; import { UserStatus } from '../../../components/UserStatus'; import { useFireGlobalEvent } from '../../../hooks/useFireGlobalEvent'; @@ -36,7 +36,7 @@ export const useStatusItems = (): GenericMenuItemProps[] => { const setStatusMutation = useMutation({ mutationFn: async (status: UserStatusDescriptor) => { void setStatus({ status: status.statusType, message: userStatuses.isValidType(status.id) ? '' : status.name }); - void callbacks.run('userStatusManuallySet', status); + void clientCallbacks.run('userStatusManuallySet', status); await fireGlobalStatusEvent.mutateAsync(status); }, }); diff --git a/apps/meteor/client/sidebarv2/footer/SidebarFooterWatermark.tsx b/apps/meteor/client/sidebarv2/footer/SidebarFooterWatermark.tsx index c43b17fd6a249..00ea56a1bb5ca 100644 --- a/apps/meteor/client/sidebarv2/footer/SidebarFooterWatermark.tsx +++ b/apps/meteor/client/sidebarv2/footer/SidebarFooterWatermark.tsx @@ -1,8 +1,8 @@ import { Box } from '@rocket.chat/fuselage'; +import { useLicense, useLicenseName } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; -import { useLicense, useLicenseName } from '../../hooks/useLicense'; import { links } from '../../lib/links'; export const SidebarFooterWatermark = (): ReactElement | null => { diff --git a/apps/meteor/client/startup/callbacks.ts b/apps/meteor/client/startup/callbacks.ts index 8a6dab975328d..f564c3573ae51 100644 --- a/apps/meteor/client/startup/callbacks.ts +++ b/apps/meteor/client/startup/callbacks.ts @@ -1,10 +1,10 @@ +import { clientCallbacks } from '@rocket.chat/ui-client'; import { performance } from 'universal-perf-hooks'; -import { callbacks } from '../../lib/callbacks'; import { getConfig } from '../lib/utils/getConfig'; if ([getConfig('debug'), getConfig('timed-callbacks')].includes('true')) { - callbacks.setMetricsTrackers({ + clientCallbacks.setMetricsTrackers({ trackCallback: ({ hook, id, stack }) => { const start = performance.now(); diff --git a/apps/meteor/client/startup/iframeCommands.ts b/apps/meteor/client/startup/iframeCommands.ts index 2c5582e2d9d0b..500487b816f0a 100644 --- a/apps/meteor/client/startup/iframeCommands.ts +++ b/apps/meteor/client/startup/iframeCommands.ts @@ -1,11 +1,11 @@ import type { UserStatus, IUser } from '@rocket.chat/core-typings'; import { escapeRegExp } from '@rocket.chat/string-helpers'; +import { afterLogoutCleanUpCallback } from '@rocket.chat/ui-client'; import type { LocationPathname } from '@rocket.chat/ui-contexts'; import { Meteor } from 'meteor/meteor'; import { AccountBox } from '../../app/ui-utils/client/lib/AccountBox'; import { sdk } from '../../app/utils/client/lib/SDKClient'; -import { afterLogoutCleanUpCallback } from '../../lib/callbacks/afterLogoutCleanUpCallback'; import { capitalize, ltrim, rtrim } from '../../lib/utils/stringUtils'; import { baseURI } from '../lib/baseURI'; import { loginServices } from '../lib/loginServices'; diff --git a/apps/meteor/client/startup/routes.tsx b/apps/meteor/client/startup/routes.tsx index e2012dfd9d56a..58926258cd79b 100644 --- a/apps/meteor/client/startup/routes.tsx +++ b/apps/meteor/client/startup/routes.tsx @@ -1,3 +1,4 @@ +import { SetupWizardRoute } from '@rocket.chat/ui-client'; import { createElement, lazy, useEffect } from 'react'; import { appLayout } from '../lib/appLayout'; @@ -14,7 +15,6 @@ const CMSPage = lazy(() => import('@rocket.chat/web-ui-registration').then(({ CM const SecretURLPage = lazy(() => import('../views/invite/SecretURLPage')); const InvitePage = lazy(() => import('../views/invite/InvitePage')); const ConferenceRoute = lazy(() => import('../views/conference/ConferenceRoute')); -const SetupWizardRoute = lazy(() => import('../views/setupWizard/SetupWizardRoute')); const MailerUnsubscriptionPage = lazy(() => import('../views/mailer/MailerUnsubscriptionPage')); const LoginTokenRoute = lazy(() => import('../views/root/LoginTokenRoute')); const SAMLLoginRoute = lazy(() => import('../views/root/SAMLLoginRoute')); diff --git a/apps/meteor/client/startup/streamMessage/autotranslate.ts b/apps/meteor/client/startup/streamMessage/autotranslate.ts index 27de0ca631656..c24b4e6dc310e 100644 --- a/apps/meteor/client/startup/streamMessage/autotranslate.ts +++ b/apps/meteor/client/startup/streamMessage/autotranslate.ts @@ -1,8 +1,8 @@ +import { clientCallbacks } from '@rocket.chat/ui-client'; import { Meteor } from 'meteor/meteor'; import { Tracker } from 'meteor/tracker'; import { hasPermission } from '../../../app/authorization/client'; -import { callbacks } from '../../../lib/callbacks'; import { settings } from '../../lib/settings'; Meteor.startup(() => { @@ -10,14 +10,14 @@ Meteor.startup(() => { const isEnabled = settings.watch('AutoTranslate_Enabled') && hasPermission('auto-translate'); if (!isEnabled) { - callbacks.remove('streamMessage', 'autotranslate-stream'); + clientCallbacks.remove('streamMessage', 'autotranslate-stream'); return; } import('../../../app/autotranslate/client').then(({ createAutoTranslateMessageStreamHandler }) => { const streamMessage = createAutoTranslateMessageStreamHandler(); - callbacks.remove('streamMessage', 'autotranslate-stream'); - callbacks.add('streamMessage', streamMessage, callbacks.priority.HIGH - 3, 'autotranslate-stream'); + clientCallbacks.remove('streamMessage', 'autotranslate-stream'); + clientCallbacks.add('streamMessage', streamMessage, clientCallbacks.priority.HIGH - 3, 'autotranslate-stream'); }); }); }); diff --git a/apps/meteor/client/views/account/accessibility/AccessibilityPage.tsx b/apps/meteor/client/views/account/accessibility/AccessibilityPage.tsx index 1876b1e36909e..6b5b6a1bccc9c 100644 --- a/apps/meteor/client/views/account/accessibility/AccessibilityPage.tsx +++ b/apps/meteor/client/views/account/accessibility/AccessibilityPage.tsx @@ -16,7 +16,7 @@ import { Select, ToggleSwitch, } from '@rocket.chat/fuselage'; -import { ExternalLink } from '@rocket.chat/ui-client'; +import { ExternalLink, Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useTranslation, useToastMessageDispatch, useEndpoint, useSetting } from '@rocket.chat/ui-contexts'; import { useMutation } from '@tanstack/react-query'; import { useId, useMemo } from 'react'; @@ -28,7 +28,6 @@ import type { AccessibilityPreferencesData } from './hooks/useAcessibilityPrefer import { useAccessiblityPreferencesValues } from './hooks/useAcessibilityPreferencesValues'; import { useCreateFontStyleElement } from './hooks/useCreateFontStyleElement'; import { themeItems as themes } from './themeItems'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; import { getDirtyFields } from '../../../lib/getDirtyFields'; import { links } from '../../../lib/links'; diff --git a/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountPage.tsx b/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountPage.tsx index 8d59034c49768..bcb46d5663383 100644 --- a/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountPage.tsx +++ b/apps/meteor/client/views/account/deviceManagement/DeviceManagementAccountPage.tsx @@ -1,8 +1,8 @@ +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import DeviceManagementAccountTable from './DeviceManagementAccountTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const DeviceManagementAccountPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/account/featurePreview/AccountFeaturePreviewPage.tsx b/apps/meteor/client/views/account/featurePreview/AccountFeaturePreviewPage.tsx index 73930e52f0482..87510c230154d 100644 --- a/apps/meteor/client/views/account/featurePreview/AccountFeaturePreviewPage.tsx +++ b/apps/meteor/client/views/account/featurePreview/AccountFeaturePreviewPage.tsx @@ -16,14 +16,13 @@ import { Callout, Margins, } from '@rocket.chat/fuselage'; -import { usePreferenceFeaturePreviewList } from '@rocket.chat/ui-client'; +import { usePreferenceFeaturePreviewList, Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import { useToastMessageDispatch, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts'; import type { ChangeEvent } from 'react'; import { useEffect, Fragment } from 'react'; import { useForm } from 'react-hook-form'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; import { useFeaturePreviewEnableQuery } from '../../../hooks/useFeaturePreviewEnableQuery'; const AccountFeaturePreviewPage = () => { diff --git a/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx b/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx index b38654ba28bfa..eb62c25d8077f 100644 --- a/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx +++ b/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx @@ -1,13 +1,13 @@ import type { SelectOption } from '@rocket.chat/fuselage'; import { SelectLegacy, Box, Button, Field, FieldLabel, FieldRow, FieldError } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useToastMessageDispatch } from '@rocket.chat/ui-contexts'; import { useId, useMemo } from 'react'; import { useForm, Controller } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import { useRemoveWebDAVAccountIntegrationMutation } from './hooks/useRemoveWebDAVAccountIntegrationMutation'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { useWebDAVAccountIntegrationsQuery } from '../../../hooks/webdav/useWebDAVAccountIntegrationsQuery'; import { getWebdavServerName } from '../../../lib/getWebdavServerName'; diff --git a/apps/meteor/client/views/account/omnichannel/OmnichannelPreferencesPage.tsx b/apps/meteor/client/views/account/omnichannel/OmnichannelPreferencesPage.tsx index 1732f4b3d9e9a..08855bd681808 100644 --- a/apps/meteor/client/views/account/omnichannel/OmnichannelPreferencesPage.tsx +++ b/apps/meteor/client/views/account/omnichannel/OmnichannelPreferencesPage.tsx @@ -1,11 +1,11 @@ import { ButtonGroup, Button, Box, Accordion } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useTranslation, useEndpoint, useUserPreference, useSetting } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useForm, FormProvider } from 'react-hook-form'; import PreferencesConversationTranscript from './PreferencesConversationTranscript'; import { PreferencesGeneral } from './PreferencesGeneral'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; type FormData = { omnichannelTranscriptPDF: boolean; diff --git a/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx b/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx index fcec450b607e1..a6ec5bafd6e08 100644 --- a/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx +++ b/apps/meteor/client/views/account/preferences/AccountPreferencesPage.tsx @@ -1,4 +1,5 @@ import { ButtonGroup, Button, Box, Accordion } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useSetting, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts'; import { useMutation } from '@tanstack/react-query'; import { useId } from 'react'; @@ -15,7 +16,6 @@ import PreferencesSoundSection from './PreferencesSoundSection'; import PreferencesUserPresenceSection from './PreferencesUserPresenceSection'; import type { AccountPreferencesData } from './useAccountPreferencesValues'; import { useAccountPreferencesValues } from './useAccountPreferencesValues'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; import { getDirtyFields } from '../../../lib/getDirtyFields'; const AccountPreferencesPage = (): ReactElement => { diff --git a/apps/meteor/client/views/account/profile/AccountProfileForm.tsx b/apps/meteor/client/views/account/profile/AccountProfileForm.tsx index 5539bde1fd1ed..74eef8f84754b 100644 --- a/apps/meteor/client/views/account/profile/AccountProfileForm.tsx +++ b/apps/meteor/client/views/account/profile/AccountProfileForm.tsx @@ -13,6 +13,7 @@ import { Icon, Button, } from '@rocket.chat/fuselage'; +import { validateEmail } from '@rocket.chat/tools'; import { CustomFieldsForm } from '@rocket.chat/ui-client'; import { useAccountsCustomFields, @@ -30,7 +31,6 @@ import { Controller, useFormContext } from 'react-hook-form'; import type { AccountProfileFormValues } from './getProfileInitialValues'; import { useAccountProfileSettings } from './useAccountProfileSettings'; -import { validateEmail } from '../../../../lib/emailValidator'; import { getUserEmailAddress } from '../../../../lib/getUserEmailAddress'; import UserStatusMenu from '../../../components/UserStatusMenu'; import UserAvatarEditor from '../../../components/avatar/UserAvatarEditor'; diff --git a/apps/meteor/client/views/account/profile/AccountProfilePage.tsx b/apps/meteor/client/views/account/profile/AccountProfilePage.tsx index 2b1d3ea12bd69..ad8a0541985e9 100644 --- a/apps/meteor/client/views/account/profile/AccountProfilePage.tsx +++ b/apps/meteor/client/views/account/profile/AccountProfilePage.tsx @@ -1,5 +1,6 @@ import { ButtonGroup, Button, Box } from '@rocket.chat/fuselage'; import { SHA256 } from '@rocket.chat/sha256'; +import { Page, PageFooter, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import { useSetModal, @@ -19,7 +20,6 @@ import AccountProfileForm from './AccountProfileForm'; import ActionConfirmModal from './ActionConfirmModal'; import { getProfileInitialValues } from './getProfileInitialValues'; import ConfirmOwnerChangeModal from '../../../components/ConfirmOwnerChangeModal'; -import { Page, PageFooter, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { useAllowPasswordChange } from '../security/useAllowPasswordChange'; // TODO: enforce useMutation diff --git a/apps/meteor/client/views/account/security/AccountSecurityPage.tsx b/apps/meteor/client/views/account/security/AccountSecurityPage.tsx index 53f4237ff19b2..097a0c713232a 100644 --- a/apps/meteor/client/views/account/security/AccountSecurityPage.tsx +++ b/apps/meteor/client/views/account/security/AccountSecurityPage.tsx @@ -1,4 +1,5 @@ import { Box, Accordion, AccordionItem, ButtonGroup, Button, Callout } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useSetting, useTranslation, useUser } from '@rocket.chat/ui-contexts'; import { useId } from 'react'; import type { ReactElement } from 'react'; @@ -8,7 +9,6 @@ import ChangePassword from './ChangePassword'; import EndToEnd from './EndToEnd'; import TwoFactorEmail from './TwoFactorEmail'; import TwoFactorTOTP from './TwoFactorTOTP'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; import { useRequire2faSetup } from '../../hooks/useRequire2faSetup'; const passwordDefaultValues = { password: '', confirmationPassword: '' }; diff --git a/apps/meteor/client/views/account/tokens/AccountTokensPage.tsx b/apps/meteor/client/views/account/tokens/AccountTokensPage.tsx index b6a7b8a23e9c6..9b4cb52c8c124 100644 --- a/apps/meteor/client/views/account/tokens/AccountTokensPage.tsx +++ b/apps/meteor/client/views/account/tokens/AccountTokensPage.tsx @@ -1,8 +1,8 @@ +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import AccountTokensTable from './AccountTokensTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const AccountTokensPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/customEmoji/CustomEmojiRoute.tsx b/apps/meteor/client/views/admin/customEmoji/CustomEmojiRoute.tsx index 2896565672e32..040d7102329e6 100644 --- a/apps/meteor/client/views/admin/customEmoji/CustomEmojiRoute.tsx +++ b/apps/meteor/client/views/admin/customEmoji/CustomEmojiRoute.tsx @@ -1,5 +1,13 @@ import { Button } from '@rocket.chat/fuselage'; -import { ContextualbarHeader, ContextualbarClose, ContextualbarDialog, ContextualbarTitle } from '@rocket.chat/ui-client'; +import { + ContextualbarHeader, + ContextualbarClose, + ContextualbarDialog, + ContextualbarTitle, + Page, + PageHeader, + PageContent, +} from '@rocket.chat/ui-client'; import { useRoute, useRouteParameter, usePermission } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useCallback, useRef } from 'react'; @@ -8,7 +16,6 @@ import { useTranslation } from 'react-i18next'; import AddCustomEmoji from './AddCustomEmoji'; import CustomEmoji from './CustomEmoji'; import EditCustomEmojiWithData from './EditCustomEmojiWithData'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; const CustomEmojiRoute = (): ReactElement => { diff --git a/apps/meteor/client/views/admin/customSounds/CustomSoundsPage.tsx b/apps/meteor/client/views/admin/customSounds/CustomSoundsPage.tsx index 637679914740a..1959756505ace 100644 --- a/apps/meteor/client/views/admin/customSounds/CustomSoundsPage.tsx +++ b/apps/meteor/client/views/admin/customSounds/CustomSoundsPage.tsx @@ -1,5 +1,13 @@ import { Button } from '@rocket.chat/fuselage'; -import { ContextualbarTitle, ContextualbarClose, ContextualbarHeader, ContextualbarDialog } from '@rocket.chat/ui-client'; +import { + ContextualbarTitle, + ContextualbarClose, + ContextualbarHeader, + ContextualbarDialog, + Page, + PageHeader, + PageContent, +} from '@rocket.chat/ui-client'; import { useRoute, useRouteParameter } from '@rocket.chat/ui-contexts'; import { useCallback, useRef } from 'react'; import { useTranslation } from 'react-i18next'; @@ -7,7 +15,6 @@ import { useTranslation } from 'react-i18next'; import AddCustomSound from './AddCustomSound'; import CustomSoundsTable from './CustomSoundsTable'; import EditCustomSound from './EditCustomSound'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const CustomSoundsPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusRoute.tsx b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusRoute.tsx index 8fe585138f335..2d53951bcebf6 100644 --- a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusRoute.tsx +++ b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusRoute.tsx @@ -1,5 +1,13 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; -import { ContextualbarHeader, ContextualbarClose, ContextualbarTitle, ContextualbarDialog } from '@rocket.chat/ui-client'; +import { + ContextualbarHeader, + ContextualbarClose, + ContextualbarTitle, + ContextualbarDialog, + Page, + PageHeader, + PageContent, +} from '@rocket.chat/ui-client'; import { useRoute, useRouteParameter, usePermission, useTranslation, useSetting } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useCallback, useRef, useEffect } from 'react'; @@ -8,7 +16,6 @@ import CustomUserActiveConnections from './CustomUserActiveConnections'; import CustomUserStatusFormWithData from './CustomUserStatusFormWithData'; import CustomUserStatusService from './CustomUserStatusService'; import CustomUserStatusTable from './CustomUserStatusTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import { useIsEnterprise } from '../../../hooks/useIsEnterprise'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; diff --git a/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminPage.tsx b/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminPage.tsx index 08b1d9a3f1010..be857875ddaee 100644 --- a/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminPage.tsx +++ b/apps/meteor/client/views/admin/deviceManagement/DeviceManagementAdminPage.tsx @@ -1,10 +1,9 @@ -import { ContextualbarDialog } from '@rocket.chat/ui-client'; +import { ContextualbarDialog, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; import DeviceManagementAdminTable from './DeviceManagementAdminTable'; import DeviceManagementInfo from './DeviceManagementInfo'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const DeviceManagementAdminPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx b/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx index 943d05e05e5a1..4c6494f39e584 100644 --- a/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx +++ b/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx @@ -19,15 +19,14 @@ import { FieldHint, } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { GenericModal } from '@rocket.chat/ui-client'; +import { validateEmail } from '@rocket.chat/tools'; +import { GenericModal, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useSetModal, useToastMessageDispatch, useRoute, useEndpoint } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useId, useCallback } from 'react'; import { useForm, Controller } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { validateEmail } from '../../../../lib/emailValidator'; -import { PageScrollableContentWithShadow } from '../../../components/Page'; import AutoCompleteDepartment from '../../omnichannel/components/AutoCompleteDepartment'; type EmailInboxFormData = { diff --git a/apps/meteor/client/views/admin/emailInbox/EmailInboxPage.tsx b/apps/meteor/client/views/admin/emailInbox/EmailInboxPage.tsx index 5eadb63a8d36b..84abaf040ea95 100644 --- a/apps/meteor/client/views/admin/emailInbox/EmailInboxPage.tsx +++ b/apps/meteor/client/views/admin/emailInbox/EmailInboxPage.tsx @@ -1,4 +1,5 @@ import { Button } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; @@ -6,7 +7,6 @@ import { useTranslation } from 'react-i18next'; import EmailInboxForm from './EmailInboxForm'; import EmailInboxFormWithData from './EmailInboxFormWithData'; import EmailInboxTable from './EmailInboxTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const EmailInboxPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.tsx b/apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.tsx index e0be8289a0402..d4ac7d09d879a 100644 --- a/apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.tsx +++ b/apps/meteor/client/views/admin/engagementDashboard/EngagementDashboardPage.tsx @@ -1,5 +1,5 @@ import { Box, Select, Tabs } from '@rocket.chat/fuselage'; -import { PageScrollableContent } from '@rocket.chat/ui-client'; +import { PageScrollableContent, Page, PageHeader } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useCallback, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; @@ -7,7 +7,6 @@ import { useTranslation } from 'react-i18next'; import ChannelsTab from './channels/ChannelsTab'; import MessagesTab from './messages/MessagesTab'; import UsersTab from './users/UsersTab'; -import { Page, PageHeader } from '../../../components/Page'; type EngagementDashboardPageProps = { tab: 'users' | 'messages' | 'channels'; diff --git a/apps/meteor/client/views/admin/featurePreview/AdminFeaturePreviewPage.tsx b/apps/meteor/client/views/admin/featurePreview/AdminFeaturePreviewPage.tsx index 04ed47073c56f..32d31ab0bbe49 100644 --- a/apps/meteor/client/views/admin/featurePreview/AdminFeaturePreviewPage.tsx +++ b/apps/meteor/client/views/admin/featurePreview/AdminFeaturePreviewPage.tsx @@ -13,14 +13,13 @@ import { Callout, Margins, } from '@rocket.chat/fuselage'; -import { useDefaultSettingFeaturePreviewList } from '@rocket.chat/ui-client'; +import { useDefaultSettingFeaturePreviewList, Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import { useToastMessageDispatch, useTranslation, useSettingsDispatch } from '@rocket.chat/ui-contexts'; import type { ChangeEvent } from 'react'; import { Fragment } from 'react'; import { useForm } from 'react-hook-form'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; import { useFeaturePreviewEnableQuery } from '../../../hooks/useFeaturePreviewEnableQuery'; import { useEditableSetting } from '../EditableSettingsContext'; import Setting from '../settings/Setting'; diff --git a/apps/meteor/client/views/admin/import/ImportHistoryPage.tsx b/apps/meteor/client/views/admin/import/ImportHistoryPage.tsx index 8cffb3868b82e..de9f521c9e2e2 100644 --- a/apps/meteor/client/views/admin/import/ImportHistoryPage.tsx +++ b/apps/meteor/client/views/admin/import/ImportHistoryPage.tsx @@ -1,5 +1,6 @@ import { Button, ButtonGroup, Table, TableHead, TableCell, TableRow, TableBody } from '@rocket.chat/fuselage'; import { useMediaQuery } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useEndpoint, useTranslation, useRouter } from '@rocket.chat/ui-contexts'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { useMemo } from 'react'; @@ -7,7 +8,6 @@ import { useMemo } from 'react'; import ImportOperationSummary from './ImportOperationSummary'; import ImportOperationSummarySkeleton from './ImportOperationSummarySkeleton'; import { ProgressStep } from '../../../../app/importer/lib/ImporterProgressStep'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; // TODO: review inner logic function ImportHistoryPage() { diff --git a/apps/meteor/client/views/admin/import/ImportProgressPage.tsx b/apps/meteor/client/views/admin/import/ImportProgressPage.tsx index 06a2042ab5256..2f80739b4b8d1 100644 --- a/apps/meteor/client/views/admin/import/ImportProgressPage.tsx +++ b/apps/meteor/client/views/admin/import/ImportProgressPage.tsx @@ -1,6 +1,7 @@ import type { ProgressStep } from '@rocket.chat/core-typings'; import { Box, Margins, ProgressBar, Throbber } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useEndpoint, useStream, useRouter } from '@rocket.chat/ui-contexts'; import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'; import { useEffect } from 'react'; @@ -9,7 +10,6 @@ import { useTranslation } from 'react-i18next'; import { useErrorHandler } from './useErrorHandler'; import { ImportingStartedStates } from '../../../../app/importer/lib/ImporterProgressStep'; import { numberFormat } from '../../../../lib/utils/stringUtils'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; // TODO: review inner logic const ImportProgressPage = function ImportProgressPage() { diff --git a/apps/meteor/client/views/admin/import/NewImportPage.tsx b/apps/meteor/client/views/admin/import/NewImportPage.tsx index 1795883a05da7..37bec1f6fadb2 100644 --- a/apps/meteor/client/views/admin/import/NewImportPage.tsx +++ b/apps/meteor/client/views/admin/import/NewImportPage.tsx @@ -15,6 +15,7 @@ import { FieldHint, } from '@rocket.chat/fuselage'; import { useSafely } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import { useToastMessageDispatch, useRouter, useRouteParameter, useSetting, useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; @@ -23,7 +24,6 @@ import { useState, useMemo, useEffect, useId } from 'react'; import { useTranslation } from 'react-i18next'; import { useErrorHandler } from './useErrorHandler'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { useFormatMemorySize } from '../../../hooks/useFormatMemorySize'; // TODO: review inner logic diff --git a/apps/meteor/client/views/admin/import/PrepareImportPage.tsx b/apps/meteor/client/views/admin/import/PrepareImportPage.tsx index e66ad6c3cc60b..8ea69c0086d0c 100644 --- a/apps/meteor/client/views/admin/import/PrepareImportPage.tsx +++ b/apps/meteor/client/views/admin/import/PrepareImportPage.tsx @@ -1,6 +1,7 @@ import type { IImport, IImporterSelection, IImporterSelectionContact, Serialized } from '@rocket.chat/core-typings'; import { Badge, Box, Button, ButtonGroup, Margins, ProgressBar, Throbber, Tabs } from '@rocket.chat/fuselage'; import { useDebouncedValue, useSafely } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import { useEndpoint, useTranslation, useStream, useRouter } from '@rocket.chat/ui-contexts'; import { useEffect, useState, useMemo } from 'react'; @@ -20,7 +21,6 @@ import { ImportingErrorStates, } from '../../../../app/importer/lib/ImporterProgressStep'; import { numberFormat } from '../../../../lib/utils/stringUtils'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; const waitFor = (fn: () => Promise, predicate: (arg: T) => arg is U) => new Promise((resolve, reject) => { diff --git a/apps/meteor/client/views/admin/integrations/IntegrationsPage.tsx b/apps/meteor/client/views/admin/integrations/IntegrationsPage.tsx index f107a5e371bd1..3059dd273367b 100644 --- a/apps/meteor/client/views/admin/integrations/IntegrationsPage.tsx +++ b/apps/meteor/client/views/admin/integrations/IntegrationsPage.tsx @@ -1,4 +1,5 @@ import { Button, ButtonGroup, Tabs } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; @@ -6,7 +7,6 @@ import { useTranslation } from 'react-i18next'; import IntegrationsTable from './IntegrationsTable'; import NewBot from './NewBot'; import NewZapier from './NewZapier'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const IntegrationsPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx b/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx index 6c80c4e7828b7..bd80208ce7520 100644 --- a/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx +++ b/apps/meteor/client/views/admin/integrations/incoming/EditIncomingWebhook.tsx @@ -1,12 +1,11 @@ import type { IIncomingIntegration, Serialized } from '@rocket.chat/core-typings'; import { Button, ButtonGroup, Tabs, TabsItem } from '@rocket.chat/fuselage'; -import { GenericModal } from '@rocket.chat/ui-client'; +import { GenericModal, Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useSetModal, useTranslation, useRouter, useRouteParameter } from '@rocket.chat/ui-contexts'; import { useId, useCallback } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; import IncomingWebhookForm from './IncomingWebhookForm'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../../components/Page'; import { useCreateIntegration } from '../hooks/useCreateIntegration'; import { useDeleteIntegration } from '../hooks/useDeleteIntegration'; import { useUpdateIntegration } from '../hooks/useUpdateIntegration'; diff --git a/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx b/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx index 339e5a07e99c7..de75c0b39bd43 100644 --- a/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx +++ b/apps/meteor/client/views/admin/integrations/outgoing/EditOutgoingWebhook.tsx @@ -1,12 +1,11 @@ import type { IOutgoingIntegration, OutgoingIntegrationEvent, Serialized } from '@rocket.chat/core-typings'; import { Button, ButtonGroup, Tabs, TabsItem } from '@rocket.chat/fuselage'; -import { GenericModal } from '@rocket.chat/ui-client'; +import { GenericModal, Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useSetModal, useTranslation, useRouter, useRouteParameter } from '@rocket.chat/ui-contexts'; import { useId, useCallback } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; import OutgoingWebhookForm from './OutgoingWebhookForm'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../../components/Page'; import { triggerWordsToArray, triggerWordsToString } from '../helpers/triggerWords'; import { useCreateIntegration } from '../hooks/useCreateIntegration'; import { useDeleteIntegration } from '../hooks/useDeleteIntegration'; diff --git a/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx b/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx index 8f8ea6ec1f543..2784d26eb6c48 100644 --- a/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx +++ b/apps/meteor/client/views/admin/integrations/outgoing/history/OutgoingWebhookHistoryPage.tsx @@ -1,5 +1,5 @@ import { Button, ButtonGroup, Pagination } from '@rocket.chat/fuselage'; -import { CustomScrollbars, usePagination } from '@rocket.chat/ui-client'; +import { CustomScrollbars, usePagination, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useRouteParameter, useMethod, useTranslation, useEndpoint, useRouter } from '@rocket.chat/ui-contexts'; import { useQuery, useQueryClient } from '@tanstack/react-query'; import type { ComponentProps } from 'react'; @@ -7,7 +7,6 @@ import { useMemo, useState, useEffect } from 'react'; import HistoryContent from './HistoryContent'; import { sdk } from '../../../../../../app/utils/client/lib/SDKClient'; -import { Page, PageHeader, PageContent } from '../../../../../components/Page'; const OutgoingWebhookHistoryPage = (props: ComponentProps) => { const dispatchToastMessage = useToastMessageDispatch(); diff --git a/apps/meteor/client/views/admin/invites/InvitesPage.tsx b/apps/meteor/client/views/admin/invites/InvitesPage.tsx index db708c2d1c06f..e123d50b2379d 100644 --- a/apps/meteor/client/views/admin/invites/InvitesPage.tsx +++ b/apps/meteor/client/views/admin/invites/InvitesPage.tsx @@ -7,6 +7,9 @@ import { GenericTableHeader, GenericTableHeaderCell, GenericTableLoadingTable, + Page, + PageHeader, + PageContent, } from '@rocket.chat/ui-client'; import { useSetModal, useToastMessageDispatch, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; @@ -15,7 +18,6 @@ import { useMemo } from 'react'; import InviteRow from './InviteRow'; import GenericNoResults from '../../../components/GenericNoResults'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const InvitesPage = (): ReactElement => { const t = useTranslation(); diff --git a/apps/meteor/client/views/admin/mailer/MailerPage.tsx b/apps/meteor/client/views/admin/mailer/MailerPage.tsx index b93fa7624570a..4a4f87dbc6461 100644 --- a/apps/meteor/client/views/admin/mailer/MailerPage.tsx +++ b/apps/meteor/client/views/admin/mailer/MailerPage.tsx @@ -12,6 +12,8 @@ import { ButtonGroup, Box, } from '@rocket.chat/fuselage'; +import { validateEmail } from '@rocket.chat/tools'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useEndpoint, useToastMessageDispatch } from '@rocket.chat/ui-contexts'; import { useMutation } from '@tanstack/react-query'; import DOMPurify from 'dompurify'; @@ -19,9 +21,7 @@ import { useId } from 'react'; import { Controller, useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; -import { validateEmail } from '../../../../lib/emailValidator'; import { isJSON } from '../../../../lib/utils/isJSON'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; type SendEmailFormValue = { fromEmail: string; diff --git a/apps/meteor/client/views/admin/moderation/ModerationConsolePage.tsx b/apps/meteor/client/views/admin/moderation/ModerationConsolePage.tsx index 0669063a4186a..52f5d6d3e1a67 100644 --- a/apps/meteor/client/views/admin/moderation/ModerationConsolePage.tsx +++ b/apps/meteor/client/views/admin/moderation/ModerationConsolePage.tsx @@ -1,11 +1,11 @@ import { Tabs, TabsItem } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useTranslation, useRouteParameter, useToastMessageDispatch } from '@rocket.chat/ui-contexts'; import { useCallback } from 'react'; import ModConsoleReportDetails from './ModConsoleReportDetails'; import ModerationConsoleTable from './ModerationConsoleTable'; import ModConsoleUsersTable from './UserReports/ModConsoleUsersTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import { getPermaLink } from '../../../lib/getPermaLink'; type TabType = 'users' | 'messages'; diff --git a/apps/meteor/client/views/admin/oauthApps/OAuthAppsPage.tsx b/apps/meteor/client/views/admin/oauthApps/OAuthAppsPage.tsx index fa903df5be00d..ecbe140c1d15e 100644 --- a/apps/meteor/client/views/admin/oauthApps/OAuthAppsPage.tsx +++ b/apps/meteor/client/views/admin/oauthApps/OAuthAppsPage.tsx @@ -1,11 +1,11 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useTranslation, useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import EditOauthAppWithData from './EditOauthAppWithData'; import OAuthAddApp from './OAuthAddApp'; import OAuthAppsTable from './OAuthAppsTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const OAuthAppsPage = (): ReactElement => { const t = useTranslation(); diff --git a/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx b/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx index 01d98867dce71..feb34c289acbd 100644 --- a/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx +++ b/apps/meteor/client/views/admin/permissions/PermissionsPage.tsx @@ -1,6 +1,6 @@ import { Margins, Tabs, Button } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { usePagination } from '@rocket.chat/ui-client'; +import { usePagination, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRoute, usePermission, useSetModal } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useState } from 'react'; @@ -10,7 +10,6 @@ import CustomRoleUpsellModal from './CustomRoleUpsellModal'; import PermissionsContextBar from './PermissionsContextBar'; import PermissionsTable from './PermissionsTable'; import { usePermissionsAndRoles } from './hooks/usePermissionsAndRoles'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const PermissionsPage = ({ isEnterprise }: { isEnterprise: boolean }): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.stories.tsx b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.stories.tsx index 029283b814b0c..aa6727e3e939b 100644 --- a/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.stories.tsx +++ b/apps/meteor/client/views/admin/permissions/PermissionsTable/PermissionsTable.stories.tsx @@ -1,10 +1,10 @@ import type { IPermission, IRole } from '@rocket.chat/core-typings'; import { Margins } from '@rocket.chat/fuselage'; +import { PageContent } from '@rocket.chat/ui-client'; import type { Meta, StoryFn } from '@storybook/react'; import PermissionsTable from './PermissionsTable'; import { createMockedPagination } from '../../../../../tests/mocks/data'; -import { PageContent } from '../../../../components/Page'; export default { component: PermissionsTable, diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx index b54a22124cb63..82f1d8787732d 100644 --- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx +++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx @@ -1,7 +1,7 @@ import type { IRole, IRoom } from '@rocket.chat/core-typings'; import { Box, Field, FieldLabel, FieldRow, Margins, ButtonGroup, Button, Callout, FieldError } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { usePagination } from '@rocket.chat/ui-client'; +import { usePagination, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useEndpoint, useRouter } from '@rocket.chat/ui-contexts'; import { useQuery, useQueryClient } from '@tanstack/react-query'; import { useId, useMemo, type ReactElement } from 'react'; @@ -10,7 +10,6 @@ import { useTranslation } from 'react-i18next'; import UsersInRoleTable from './UsersInRoleTable'; import { useRemoveUserFromRole } from './hooks/useRemoveUserFromRole'; -import { Page, PageHeader, PageContent } from '../../../../components/Page'; import RoomAutoComplete from '../../../../components/RoomAutoComplete'; import UserAutoCompleteMultiple from '../../../../components/UserAutoCompleteMultiple'; diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.stories.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.stories.tsx index 68ee23235d350..afb666649cba9 100644 --- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.stories.tsx +++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRoleTable/UsersInRoleTable.stories.tsx @@ -1,9 +1,9 @@ import { Margins } from '@rocket.chat/fuselage'; +import { PageContent } from '@rocket.chat/ui-client'; import type { Meta, StoryFn } from '@storybook/react'; import UsersInRoleTable from './UsersInRoleTable'; import { createMockedPagination } from '../../../../../../tests/mocks/data'; -import { PageContent } from '../../../../../components/Page'; export default { component: UsersInRoleTable, diff --git a/apps/meteor/client/views/admin/rooms/RoomsPage.tsx b/apps/meteor/client/views/admin/rooms/RoomsPage.tsx index 3eb1380e1892c..ef944c3f36566 100644 --- a/apps/meteor/client/views/admin/rooms/RoomsPage.tsx +++ b/apps/meteor/client/views/admin/rooms/RoomsPage.tsx @@ -1,5 +1,5 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ContextualbarDialog } from '@rocket.chat/ui-client'; +import { ContextualbarDialog, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useRef } from 'react'; @@ -7,7 +7,6 @@ import { useTranslation } from 'react-i18next'; import EditRoomWithData from './EditRoomWithData'; import RoomsTable from './RoomsTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const RoomsPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx b/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx index 1cb4d2d92aad8..2ae5eea8cd127 100644 --- a/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx +++ b/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPage.tsx @@ -1,13 +1,13 @@ import type { ISetting, ISettingColor } from '@rocket.chat/core-typings'; import { Accordion, Box, Button, ButtonGroup } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import { useToastMessageDispatch, useSettingsDispatch, useSettings } from '@rocket.chat/ui-contexts'; import type { ReactNode, FormEvent, MouseEvent } from 'react'; import { useMemo, memo } from 'react'; import { useTranslation } from 'react-i18next'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../../components/Page'; import type { EditableSetting } from '../../EditableSettingsContext'; import { useEditableSettingsDispatch, useEditableSettings } from '../../EditableSettingsContext'; diff --git a/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPageSkeleton.tsx b/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPageSkeleton.tsx index 3b15735bd043c..93f94209c2cc6 100644 --- a/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPageSkeleton.tsx +++ b/apps/meteor/client/views/admin/settings/SettingsGroupPage/SettingsGroupPageSkeleton.tsx @@ -1,7 +1,7 @@ import { Accordion, Box, Skeleton } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useMemo } from 'react'; -import { Page, PageHeader, PageContent } from '../../../../components/Page'; import SettingsSectionSkeleton from '../SettingsSection/SettingsSectionSkeleton'; const SettingsGroupPageSkeleton = () => ( diff --git a/apps/meteor/client/views/admin/settings/SettingsPage.tsx b/apps/meteor/client/views/admin/settings/SettingsPage.tsx index abcf72e76bff4..9fcec02350b49 100644 --- a/apps/meteor/client/views/admin/settings/SettingsPage.tsx +++ b/apps/meteor/client/views/admin/settings/SettingsPage.tsx @@ -1,5 +1,6 @@ import { Icon, SearchInput, CardGrid } from '@rocket.chat/fuselage'; import { useDebouncedValue } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageBlockWithBorder } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import type { ChangeEvent, ReactElement } from 'react'; import { useCallback, useState } from 'react'; @@ -8,8 +9,6 @@ import { useTranslation } from 'react-i18next'; import SettingsGroupCard from './SettingsGroupCard'; import { useSettingsGroups } from './hooks/useSettingsGroups'; import GenericNoResults from '../../../components/GenericNoResults'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; -import PageBlockWithBorder from '../../../components/Page/PageBlockWithBorder'; const SettingsPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx index 92f3097a2314a..3679f8f12d90c 100644 --- a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx +++ b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipExtensionsPage.tsx @@ -9,6 +9,7 @@ import { GenericTableBody, GenericTableLoadingRow, usePagination, + PageContent, } from '@rocket.chat/ui-client'; import { useSetModal, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; @@ -18,7 +19,6 @@ import AssignAgentButton from './AssignAgentButton'; import AssignAgentModal from './AssignAgentModal'; import RemoveAgentButton from './RemoveAgentButton'; import GenericNoResults from '../../../../../components/GenericNoResults'; -import { PageContent } from '../../../../../components/Page'; const VoipExtensionsPage = () => { const t = useTranslation(); diff --git a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipGroupPage.tsx b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipGroupPage.tsx index 6689946ab810b..fe57cdd8941cd 100644 --- a/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipGroupPage.tsx +++ b/apps/meteor/client/views/admin/settings/groups/VoipGroupPage/VoipGroupPage.tsx @@ -1,5 +1,6 @@ import type { ISetting } from '@rocket.chat/core-typings'; import { Tabs, Box, Accordion } from '@rocket.chat/fuselage'; +import { PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import type { TranslationKey } from '@rocket.chat/ui-contexts'; import { useSetting } from '@rocket.chat/ui-contexts'; import { memo, useMemo, useState } from 'react'; @@ -7,7 +8,6 @@ import { useTranslation } from 'react-i18next'; import VoipExtensionsPage from './VoipExtensionsPage'; import GenericNoResults from '../../../../../components/GenericNoResults'; -import { PageScrollableContentWithShadow } from '../../../../../components/Page'; import { useEditableSettingsGroupSections } from '../../../EditableSettingsContext'; import SettingsGroupPage from '../../SettingsGroupPage'; import SettingsSection from '../../SettingsSection'; diff --git a/apps/meteor/client/views/admin/settings/hooks/useHasSettingModule.ts b/apps/meteor/client/views/admin/settings/hooks/useHasSettingModule.ts index 589c26cb13ad5..08f6a52b2b558 100644 --- a/apps/meteor/client/views/admin/settings/hooks/useHasSettingModule.ts +++ b/apps/meteor/client/views/admin/settings/hooks/useHasSettingModule.ts @@ -1,8 +1,7 @@ import type { ISetting, LicenseModule } from '@rocket.chat/core-typings'; +import { useLicenseBase } from '@rocket.chat/ui-client'; import { useMemo } from 'react'; -import { useLicenseBase } from '../../../../hooks/useLicense'; - export const useHasSettingModule = (setting?: ISetting) => { const { data } = useLicenseBase({ select: (data) => ({ isEnterprise: Boolean(data?.license.license), activeModules: data?.license.activeModules }), diff --git a/apps/meteor/client/views/admin/subscription/SubscriptionPage.tsx b/apps/meteor/client/views/admin/subscription/SubscriptionPage.tsx index 1e9a9af45d4b1..2efa553b291eb 100644 --- a/apps/meteor/client/views/admin/subscription/SubscriptionPage.tsx +++ b/apps/meteor/client/views/admin/subscription/SubscriptionPage.tsx @@ -1,5 +1,13 @@ import { Accordion, AccordionItem, Box, Button, ButtonGroup, Callout, Grid, GridItem } from '@rocket.chat/fuselage'; import { useDebouncedValue, useSessionStorage } from '@rocket.chat/fuselage-hooks'; +import { + Page, + PageScrollableContentWithShadow, + PageHeaderNoShadow, + PageBlockWithBorder, + useInvalidateLicense, + useLicenseWithCloudAnnouncement, +} from '@rocket.chat/ui-client'; import { useSearchParameter, useRouter } from '@rocket.chat/ui-contexts'; import { t } from 'i18next'; import { memo, useCallback, useEffect } from 'react'; @@ -22,11 +30,7 @@ import SeatsCard from './components/cards/SeatsCard'; import { useCancelSubscriptionModal } from './hooks/useCancelSubscriptionModal'; import { useWorkspaceSync } from './hooks/useWorkspaceSync'; import UiKitSubscriptionLicense from './surface/UiKitSubscriptionLicense'; -import { Page, PageScrollableContentWithShadow } from '../../../components/Page'; -import PageBlockWithBorder from '../../../components/Page/PageBlockWithBorder'; -import PageHeaderNoShadow from '../../../components/Page/PageHeaderNoShadow'; import { useIsEnterprise } from '../../../hooks/useIsEnterprise'; -import { useInvalidateLicense, useLicenseWithCloudAnnouncement } from '../../../hooks/useLicense'; import { useRegistrationStatus } from '../../../hooks/useRegistrationStatus'; function useShowLicense() { diff --git a/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardPremium.tsx b/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardPremium.tsx index f1b388a331d6a..abf872e68cae6 100644 --- a/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardPremium.tsx +++ b/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardPremium.tsx @@ -1,13 +1,12 @@ import type { ILicenseV3 } from '@rocket.chat/core-typings'; import { Box, Card, CardBody, Icon, Skeleton } from '@rocket.chat/fuselage'; -import { ExternalLink } from '@rocket.chat/ui-client'; +import { ExternalLink, useLicenseName } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { Trans, useTranslation } from 'react-i18next'; import PlanCardHeader from './PlanCardHeader'; import { useFormatDate } from '../../../../../../hooks/useFormatDate'; import { useIsSelfHosted } from '../../../../../../hooks/useIsSelfHosted'; -import { useLicenseName } from '../../../../../../hooks/useLicense'; import { CONTACT_SALES_LINK } from '../../../utils/links'; type LicenseLimits = { diff --git a/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardTrial.tsx b/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardTrial.tsx index 8ca6f24000ea8..57bb72e1e4f7e 100644 --- a/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardTrial.tsx +++ b/apps/meteor/client/views/admin/subscription/components/cards/PlanCard/PlanCardTrial.tsx @@ -1,12 +1,11 @@ import type { ILicenseV3 } from '@rocket.chat/core-typings'; import { Box, Card, CardBody, CardControls, CardRow, Tag } from '@rocket.chat/fuselage'; -import { ExternalLink } from '@rocket.chat/ui-client'; +import { ExternalLink, useLicenseName } from '@rocket.chat/ui-client'; import { differenceInDays } from 'date-fns'; import type { ReactElement } from 'react'; import { Trans, useTranslation } from 'react-i18next'; import PlanCardHeader from './PlanCardHeader'; -import { useLicenseName } from '../../../../../../hooks/useLicense'; import { DOWNGRADE_LINK, TRIAL_LINK } from '../../../utils/links'; import UpgradeButton from '../../UpgradeButton'; diff --git a/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.spec.tsx b/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.spec.tsx index 283a118daeff0..e3e0be4182376 100644 --- a/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.spec.tsx +++ b/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.spec.tsx @@ -5,8 +5,8 @@ import userEvent from '@testing-library/user-event'; import { useCancelSubscriptionModal } from './useCancelSubscriptionModal'; import createDeferredMockFn from '../../../../../tests/mocks/utils/createDeferredMockFn'; -jest.mock('../../../../hooks/useLicense', () => ({ - ...jest.requireActual('../../../../hooks/useLicense'), +jest.mock('@rocket.chat/ui-client', () => ({ + ...jest.requireActual('@rocket.chat/ui-client'), useLicenseName: () => ({ data: 'Starter' }), })); diff --git a/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.tsx b/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.tsx index c2de4cd6b02aa..aabdef623e727 100644 --- a/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.tsx +++ b/apps/meteor/client/views/admin/subscription/hooks/useCancelSubscriptionModal.tsx @@ -1,8 +1,8 @@ +import { useLicenseName } from '@rocket.chat/ui-client'; import { useSetModal } from '@rocket.chat/ui-contexts'; import { useCallback } from 'react'; import { useRemoveLicense } from './useRemoveLicense'; -import { useLicenseName } from '../../../../hooks/useLicense'; import { CancelSubscriptionModal } from '../components/CancelSubscriptionModal'; export const useCancelSubscriptionModal = () => { diff --git a/apps/meteor/client/views/admin/subscription/hooks/useRemoveLicense.ts b/apps/meteor/client/views/admin/subscription/hooks/useRemoveLicense.ts index 62f5d14aa0ac6..d4b8a99de553a 100644 --- a/apps/meteor/client/views/admin/subscription/hooks/useRemoveLicense.ts +++ b/apps/meteor/client/views/admin/subscription/hooks/useRemoveLicense.ts @@ -1,9 +1,8 @@ +import { useInvalidateLicense } from '@rocket.chat/ui-client'; import { useEndpoint, useToastMessageDispatch } from '@rocket.chat/ui-contexts'; import { useMutation } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; -import { useInvalidateLicense } from '../../../../hooks/useLicense'; - export const useRemoveLicense = () => { const { t } = useTranslation(); const dispatchToastMessage = useToastMessageDispatch(); diff --git a/apps/meteor/client/views/admin/users/AdminInviteUsers.tsx b/apps/meteor/client/views/admin/users/AdminInviteUsers.tsx index 7477dca1bd8c1..c9a72a4d2b42c 100644 --- a/apps/meteor/client/views/admin/users/AdminInviteUsers.tsx +++ b/apps/meteor/client/views/admin/users/AdminInviteUsers.tsx @@ -9,6 +9,7 @@ import { StatesTitle, TextAreaInput, } from '@rocket.chat/fuselage'; +import { validateEmail } from '@rocket.chat/tools'; import { ContextualbarScrollableContent, ContextualbarFooter, ContextualbarContent } from '@rocket.chat/ui-client'; import { useTranslation, useRoute } from '@rocket.chat/ui-contexts'; import type { ChangeEvent } from 'react'; @@ -16,7 +17,6 @@ import { useCallback, useState } from 'react'; import { useSendInvitationEmailMutation } from './hooks/useSendInvitationEmailMutation'; import { useSmtpQuery } from './hooks/useSmtpQuery'; -import { validateEmail } from '../../../../lib/emailValidator'; import { FormSkeleton } from '../../../components/Skeleton'; // TODO: Replace using RHF diff --git a/apps/meteor/client/views/admin/users/AdminUserForm.tsx b/apps/meteor/client/views/admin/users/AdminUserForm.tsx index 1f092d79d1bb7..33de68361959e 100644 --- a/apps/meteor/client/views/admin/users/AdminUserForm.tsx +++ b/apps/meteor/client/views/admin/users/AdminUserForm.tsx @@ -19,6 +19,7 @@ import { import type { SelectOption } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; import type { UserCreateParamsPOST } from '@rocket.chat/rest-typings'; +import { validateEmail } from '@rocket.chat/tools'; import { CustomFieldsForm, ContextualbarScrollableContent, ContextualbarFooter } from '@rocket.chat/ui-client'; import { useAccountsCustomFields, @@ -38,7 +39,6 @@ import AdminUserSetRandomPasswordRadios from './AdminUserSetRandomPasswordRadios import PasswordFieldSkeleton from './PasswordFieldSkeleton'; import { useSmtpQuery } from './hooks/useSmtpQuery'; import { useVoipExtensionPermission } from './useVoipExtensionPermission'; -import { validateEmail } from '../../../../lib/emailValidator'; import { parseCSV } from '../../../../lib/utils/parseCSV'; import UserAvatarEditor from '../../../components/avatar/UserAvatarEditor'; import { useEndpointMutation } from '../../../hooks/useEndpointMutation'; diff --git a/apps/meteor/client/views/admin/users/AdminUsersPage.tsx b/apps/meteor/client/views/admin/users/AdminUsersPage.tsx index 4e2b7fc5e116c..cd244dde977a6 100644 --- a/apps/meteor/client/views/admin/users/AdminUsersPage.tsx +++ b/apps/meteor/client/views/admin/users/AdminUsersPage.tsx @@ -10,6 +10,9 @@ import { ContextualbarDialog, usePagination, useSort, + Page, + PageHeader, + PageContent, } from '@rocket.chat/ui-client'; import { useRouteParameter, useTranslation, useRouter, useEndpoint } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; @@ -28,7 +31,6 @@ import UsersTable from './UsersTable'; import useFilteredUsers from './hooks/useFilteredUsers'; import usePendingUsersCount from './hooks/usePendingUsersCount'; import { useSeatsCap } from './useSeatsCap'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import { useLicenseLimitsByBehavior } from '../../../hooks/useLicenseLimitsByBehavior'; import { useShouldPreventAction } from '../../../hooks/useShouldPreventAction'; import { useCheckoutUrl } from '../subscription/hooks/useCheckoutUrl'; diff --git a/apps/meteor/client/views/admin/viewLogs/ViewLogsPage.tsx b/apps/meteor/client/views/admin/viewLogs/ViewLogsPage.tsx index 8dd047e02eca0..968343a832636 100644 --- a/apps/meteor/client/views/admin/viewLogs/ViewLogsPage.tsx +++ b/apps/meteor/client/views/admin/viewLogs/ViewLogsPage.tsx @@ -1,11 +1,11 @@ import { Margins, Tabs } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; import AnalyticsReports from './AnalyticsReports'; import ServerLogs from './ServerLogs'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const ViewLogsPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/admin/workspace/VersionCard/VersionCard.tsx b/apps/meteor/client/views/admin/workspace/VersionCard/VersionCard.tsx index 0dd5c84c22ca5..a0cfdef382c20 100644 --- a/apps/meteor/client/views/admin/workspace/VersionCard/VersionCard.tsx +++ b/apps/meteor/client/views/admin/workspace/VersionCard/VersionCard.tsx @@ -2,7 +2,7 @@ import type { IWorkspaceInfo } from '@rocket.chat/core-typings'; import { Box, Card, CardBody, CardCol, CardControls, CardHeader, CardTitle, Icon } from '@rocket.chat/fuselage'; import { useBreakpoints } from '@rocket.chat/fuselage-hooks'; import type { SupportedVersions } from '@rocket.chat/server-cloud-communication'; -import { ExternalLink } from '@rocket.chat/ui-client'; +import { ExternalLink, useLicense, useLicenseName } from '@rocket.chat/ui-client'; import type { LocationPathname } from '@rocket.chat/ui-contexts'; import { useSetModal, useMediaUrl } from '@rocket.chat/ui-contexts'; import type { ReactElement, ReactNode } from 'react'; @@ -17,7 +17,6 @@ import { VersionTag } from './components/VersionTag'; import { getVersionStatus } from './getVersionStatus'; import RegisterWorkspaceModal from './modals/RegisterWorkspaceModal'; import { useFormatDate } from '../../../../hooks/useFormatDate'; -import { useLicense, useLicenseName } from '../../../../hooks/useLicense'; import { useRegistrationStatus } from '../../../../hooks/useRegistrationStatus'; import { links } from '../../../../lib/links'; import { isOverLicenseLimits } from '../../../../lib/utils/isOverLicenseLimits'; diff --git a/apps/meteor/client/views/admin/workspace/VersionCard/modals/RegisterWorkspaceSetupModal/RegisterWorkspaceSetupModal.tsx b/apps/meteor/client/views/admin/workspace/VersionCard/modals/RegisterWorkspaceSetupModal/RegisterWorkspaceSetupModal.tsx index 8dba62efb4add..d6091a63f0e77 100644 --- a/apps/meteor/client/views/admin/workspace/VersionCard/modals/RegisterWorkspaceSetupModal/RegisterWorkspaceSetupModal.tsx +++ b/apps/meteor/client/views/admin/workspace/VersionCard/modals/RegisterWorkspaceSetupModal/RegisterWorkspaceSetupModal.tsx @@ -1,7 +1,7 @@ +import { validateEmail } from '@rocket.chat/tools'; import { useSetModal } from '@rocket.chat/ui-contexts'; import { useEffect, useState } from 'react'; -import { validateEmail } from '../../../../../../../lib/emailValidator'; import RegisteredWorkspaceModal from '../RegisteredWorkspaceModal'; import RegisterWorkspaceSetupStepOneModal from './RegisterWorkspaceSetupStepOneModal'; import RegisterWorkspaceSetupStepTwoModal from './RegisterWorkspaceSetupStepTwoModal'; diff --git a/apps/meteor/client/views/admin/workspace/WorkspacePage.tsx b/apps/meteor/client/views/admin/workspace/WorkspacePage.tsx index 56b22218f3b83..987bfaaec55ce 100644 --- a/apps/meteor/client/views/admin/workspace/WorkspacePage.tsx +++ b/apps/meteor/client/views/admin/workspace/WorkspacePage.tsx @@ -1,6 +1,7 @@ import type { IWorkspaceInfo, IStats } from '@rocket.chat/core-typings'; import { Box, Button, ButtonGroup, Callout, CardGrid } from '@rocket.chat/fuselage'; import type { IInstance } from '@rocket.chat/rest-typings'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; @@ -8,7 +9,6 @@ import DeploymentCard from './DeploymentCard/DeploymentCard'; import MessagesRoomsCard from './MessagesRoomsCard/MessagesRoomsCard'; import UsersUploadsCard from './UsersUploadsCard/UsersUploadsCard'; import VersionCard from './VersionCard/VersionCard'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { useIsEnterprise } from '../../../hooks/useIsEnterprise'; type WorkspaceStatusPageProps = { diff --git a/apps/meteor/client/views/admin/workspace/WorkspaceRoute.tsx b/apps/meteor/client/views/admin/workspace/WorkspaceRoute.tsx index d80e4e0842039..30ec3ad36c9e3 100644 --- a/apps/meteor/client/views/admin/workspace/WorkspaceRoute.tsx +++ b/apps/meteor/client/views/admin/workspace/WorkspaceRoute.tsx @@ -1,11 +1,11 @@ import { Callout, ButtonGroup, Button } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { usePermission } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { memo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import WorkspacePage from './WorkspacePage'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import PageSkeleton from '../../../components/PageSkeleton'; import { useWorkspaceInfo } from '../../../hooks/useWorkspaceInfo'; import { downloadJsonAs } from '../../../lib/download'; diff --git a/apps/meteor/client/views/audit/AuditLogPage.tsx b/apps/meteor/client/views/audit/AuditLogPage.tsx index 261715506c19d..64cb206b47eb2 100644 --- a/apps/meteor/client/views/audit/AuditLogPage.tsx +++ b/apps/meteor/client/views/audit/AuditLogPage.tsx @@ -1,8 +1,8 @@ +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import AuditLogTable from './components/AuditLogTable'; -import { Page, PageHeader, PageContent } from '../../components/Page'; const AuditLogPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/audit/AuditPage.tsx b/apps/meteor/client/views/audit/AuditPage.tsx index a7e793d9a036c..d39133276ad8f 100644 --- a/apps/meteor/client/views/audit/AuditPage.tsx +++ b/apps/meteor/client/views/audit/AuditPage.tsx @@ -1,5 +1,6 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { Box, Callout, Margins, States, StatesIcon, StatesSubtitle, StatesTitle, Tabs } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useState } from 'react'; import { useTranslation } from 'react-i18next'; @@ -7,7 +8,6 @@ import AuditForm from './components/AuditForm'; import AuditResult from './components/AuditResult'; import { useAuditMutation } from './hooks/useAuditMutation'; import { useAuditTab } from './hooks/useAuditTab'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../components/Page'; import MessageListSkeleton from '../../components/message/list/MessageListSkeleton'; import { getErrorMessage } from '../../lib/errorHandling'; diff --git a/apps/meteor/client/views/audit/SecurityLogsPage.tsx b/apps/meteor/client/views/audit/SecurityLogsPage.tsx index ae6a67db259ca..82cc3dec0def9 100644 --- a/apps/meteor/client/views/audit/SecurityLogsPage.tsx +++ b/apps/meteor/client/views/audit/SecurityLogsPage.tsx @@ -1,8 +1,8 @@ +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { type ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import SecurityLogsTable from './components/SecurityLogsTable'; -import { Page, PageHeader, PageContent } from '../../components/Page'; const SecurityLogsPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/conference/ConferencePageError.tsx b/apps/meteor/client/views/conference/ConferencePageError.tsx index 1f4ccfd0b17e6..0fc0db3864132 100644 --- a/apps/meteor/client/views/conference/ConferencePageError.tsx +++ b/apps/meteor/client/views/conference/ConferencePageError.tsx @@ -1,8 +1,7 @@ import { States, StatesIcon, StatesTitle, StatesSubtitle, StatesActions, StatesAction } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useTranslation, useUser, useRoute } from '@rocket.chat/ui-contexts'; -import { Page, PageHeader, PageContent } from '../../components/Page'; - const ConferencePageError = () => { const t = useTranslation(); const user = useUser(); diff --git a/apps/meteor/client/views/directory/DirectoryPage.tsx b/apps/meteor/client/views/directory/DirectoryPage.tsx index 687a7c3a2b825..da056be8acdb9 100644 --- a/apps/meteor/client/views/directory/DirectoryPage.tsx +++ b/apps/meteor/client/views/directory/DirectoryPage.tsx @@ -1,10 +1,10 @@ import { Tabs } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouter, useRouteParameter, useSetting } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useEffect, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; -import { Page, PageHeader, PageContent } from '../../components/Page'; import ChannelsTab from './tabs/channels/ChannelsTab'; import TeamsTab from './tabs/teams/TeamsTab'; import UsersTab from './tabs/users/UsersTab'; diff --git a/apps/meteor/client/views/home/CustomHomePage.tsx b/apps/meteor/client/views/home/CustomHomePage.tsx index b4e5fe3d97201..ad7c2a7da62dc 100644 --- a/apps/meteor/client/views/home/CustomHomePage.tsx +++ b/apps/meteor/client/views/home/CustomHomePage.tsx @@ -1,9 +1,8 @@ +import { Page, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import HomePageHeader from './HomePageHeader'; import CustomContentCard from './cards/CustomContentCard'; -import Page from '../../components/Page/Page'; -import PageScrollableContentWithShadow from '../../components/Page/PageScrollableContentWithShadow'; const CustomHomePage = (): ReactElement => { return ( diff --git a/apps/meteor/client/views/home/DefaultHomePage.tsx b/apps/meteor/client/views/home/DefaultHomePage.tsx index 1e4ad5f14ba67..1c8e5fd680dec 100644 --- a/apps/meteor/client/views/home/DefaultHomePage.tsx +++ b/apps/meteor/client/views/home/DefaultHomePage.tsx @@ -1,5 +1,5 @@ import { Box, CardGroup } from '@rocket.chat/fuselage'; -import { PageScrollableContent } from '@rocket.chat/ui-client'; +import { PageScrollableContent, Page } from '@rocket.chat/ui-client'; import { useAtLeastOnePermission, useSetting, useTranslation, useRole, usePermission } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; @@ -11,7 +11,6 @@ import DesktopAppsCard from './cards/DesktopAppsCard'; import DocumentationCard from './cards/DocumentationCard'; import JoinRoomsCard from './cards/JoinRoomsCard'; import MobileAppsCard from './cards/MobileAppsCard'; -import Page from '../../components/Page/Page'; const CREATE_CHANNEL_PERMISSIONS = ['create-c', 'create-p']; diff --git a/apps/meteor/client/views/home/HomePageHeader.tsx b/apps/meteor/client/views/home/HomePageHeader.tsx index 207f5be82d7e8..a8a46043f51d7 100644 --- a/apps/meteor/client/views/home/HomePageHeader.tsx +++ b/apps/meteor/client/views/home/HomePageHeader.tsx @@ -1,9 +1,8 @@ import { Button } from '@rocket.chat/fuselage'; +import { PageHeader } from '@rocket.chat/ui-client'; import { useSetting, useTranslation, useAllPermissions, useRoute } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; -import PageHeader from '../../components/Page/PageHeader'; - const EDIT_LAYOUT_PERMISSIONS = ['view-privileged-setting', 'edit-privileged-setting', 'manage-selected-settings']; const HomepageHeader = (): ReactElement => { diff --git a/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.spec.tsx b/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.spec.tsx index da8f0eaad329a..59a544526b6b7 100644 --- a/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.spec.tsx +++ b/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.spec.tsx @@ -21,8 +21,8 @@ jest.mock('@rocket.chat/ui-contexts', () => { }; }); -jest.mock('../../../components/Page', () => { - const originalModule = jest.requireActual('../../../components/Page'); +jest.mock('@rocket.chat/ui-client', () => { + const originalModule = jest.requireActual('@rocket.chat/ui-client'); return { ...originalModule, PageHeader: ({ children }: { children: React.ReactNode }) =>
{children}
, diff --git a/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.tsx b/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.tsx index 09612c9fa90d0..eed2e5003868d 100644 --- a/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.tsx +++ b/apps/meteor/client/views/marketplace/AppDetailsPage/AppDetailsPage.tsx @@ -2,6 +2,7 @@ import type { ISetting } from '@rocket.chat/apps-engine/definition/settings'; import type { App, SettingValue } from '@rocket.chat/core-typings'; import { Button, ButtonGroup, Box } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageFooter, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useTranslation, useRouteParameter, useToastMessageDispatch, usePermission, useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useMemo, useCallback } from 'react'; @@ -23,7 +24,6 @@ import AppSecurity from './tabs/AppSecurity/AppSecurity'; import AppSettings from './tabs/AppSettings'; import { useCompactMode } from './useCompactMode'; import { AppClientOrchestratorInstance } from '../../../apps/orchestrator'; -import { Page, PageFooter, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; type AppDetailsPageFormData = Record; diff --git a/apps/meteor/client/views/marketplace/AppInstallPage.tsx b/apps/meteor/client/views/marketplace/AppInstallPage.tsx index cbd20b57ee7e9..408b55ab94b71 100644 --- a/apps/meteor/client/views/marketplace/AppInstallPage.tsx +++ b/apps/meteor/client/views/marketplace/AppInstallPage.tsx @@ -1,11 +1,10 @@ import { Button, ButtonGroup, Field, FieldGroup, FieldLabel, FieldRow, TextInput } from '@rocket.chat/fuselage'; -import { PageScrollableContent } from '@rocket.chat/ui-client'; +import { PageScrollableContent, Page, PageHeader } from '@rocket.chat/ui-client'; import { useTranslation, useRouter } from '@rocket.chat/ui-contexts'; import { useCallback, useId } from 'react'; import { useForm, Controller } from 'react-hook-form'; import { useInstallApp } from './hooks/useInstallApp'; -import { Page, PageHeader } from '../../components/Page'; import { useSingleFileInput } from '../../hooks/useSingleFileInput'; const AppInstallPage = () => { diff --git a/apps/meteor/client/views/marketplace/AppsPage/AppsPage.tsx b/apps/meteor/client/views/marketplace/AppsPage/AppsPage.tsx index 12798941974fb..764fc38cee766 100644 --- a/apps/meteor/client/views/marketplace/AppsPage/AppsPage.tsx +++ b/apps/meteor/client/views/marketplace/AppsPage/AppsPage.tsx @@ -1,7 +1,7 @@ +import { Page } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import AppsPageContent from './AppsPageContent'; -import { Page } from '../../../components/Page'; const AppsPage = (): ReactElement => { return ( diff --git a/apps/meteor/client/views/marketplace/components/MarketplaceHeader.tsx b/apps/meteor/client/views/marketplace/components/MarketplaceHeader.tsx index 4bf2ab85edc5d..12fda34a88c0d 100644 --- a/apps/meteor/client/views/marketplace/components/MarketplaceHeader.tsx +++ b/apps/meteor/client/views/marketplace/components/MarketplaceHeader.tsx @@ -1,10 +1,10 @@ import { Button, ButtonGroup, Margins } from '@rocket.chat/fuselage'; +import { PageHeader } from '@rocket.chat/ui-client'; import { usePermission, useRoute, useRouteParameter, useSetModal } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import { GenericResourceUsageSkeleton } from '../../../components/GenericResourceUsage'; -import { PageHeader } from '../../../components/Page'; import UpgradeButton from '../../admin/subscription/components/UpgradeButton'; import UnlimitedAppsUpsellModal from '../UnlimitedAppsUpsellModal'; import EnabledAppsCount from './EnabledAppsCount'; diff --git a/apps/meteor/client/views/meet/MeetPage.tsx b/apps/meteor/client/views/meet/MeetPage.tsx index e0f86d0054c5a..33b43362a6dfc 100644 --- a/apps/meteor/client/views/meet/MeetPage.tsx +++ b/apps/meteor/client/views/meet/MeetPage.tsx @@ -1,12 +1,12 @@ import { Button, Box, Flex } from '@rocket.chat/fuselage'; import { UserAvatar } from '@rocket.chat/ui-avatar'; +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import { useRouteParameter, useSearchParameter, useUserId } from '@rocket.chat/ui-contexts'; import { useEffect, useState, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; import CallPage from './CallPage'; import { sdk } from '../../../app/utils/client/lib/SDKClient'; -import { useEmbeddedLayout } from '../../hooks/useEmbeddedLayout'; import NotFoundPage from '../notFound/NotFoundPage'; import PageLoading from '../root/PageLoading'; import './styles.css'; diff --git a/apps/meteor/client/views/notAuthorized/NotAuthorizedPage.tsx b/apps/meteor/client/views/notAuthorized/NotAuthorizedPage.tsx index 7646bbcc43c54..0ab0f17961474 100644 --- a/apps/meteor/client/views/notAuthorized/NotAuthorizedPage.tsx +++ b/apps/meteor/client/views/notAuthorized/NotAuthorizedPage.tsx @@ -1,9 +1,8 @@ import { Box } from '@rocket.chat/fuselage'; +import { Page, PageContent } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; -import { Page, PageContent } from '../../components/Page'; - const NotAuthorizedPage = (): ReactElement => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/agents/AgentsPage.tsx b/apps/meteor/client/views/omnichannel/agents/AgentsPage.tsx index 165e147de1c41..ae6ac7c0a7d07 100644 --- a/apps/meteor/client/views/omnichannel/agents/AgentsPage.tsx +++ b/apps/meteor/client/views/omnichannel/agents/AgentsPage.tsx @@ -1,5 +1,5 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ContextualbarDialog } from '@rocket.chat/ui-client'; +import { ContextualbarDialog, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { usePermission, useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; @@ -7,7 +7,6 @@ import { useTranslation } from 'react-i18next'; import AgentEditWithData from './AgentEditWithData'; import AgentInfo from './AgentInfo'; import AgentsTable from './AgentsTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; const AgentsPage = (): ReactElement => { diff --git a/apps/meteor/client/views/omnichannel/analytics/AnalyticsPage.tsx b/apps/meteor/client/views/omnichannel/analytics/AnalyticsPage.tsx index 3505a3df2f10f..e2a839572d82a 100644 --- a/apps/meteor/client/views/omnichannel/analytics/AnalyticsPage.tsx +++ b/apps/meteor/client/views/omnichannel/analytics/AnalyticsPage.tsx @@ -1,5 +1,6 @@ import type { SelectOption } from '@rocket.chat/fuselage'; import { Box, Select, Margins, Field, FieldLabel, FieldRow, Label, Option } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useMemo, useState, useEffect } from 'react'; import { useTranslation } from 'react-i18next'; @@ -7,7 +8,6 @@ import AgentOverview from './AgentOverview'; import DateRangePicker from './DateRangePicker'; import InterchangeableChart from './InterchangeableChart'; import Overview from './Overview'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import AutoCompleteDepartment from '../components/AutoCompleteDepartment'; const useOptions = (type: string): SelectOption[] => { diff --git a/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx b/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx index c3f0ce593e1dd..390ab0391b2a3 100644 --- a/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx +++ b/apps/meteor/client/views/omnichannel/appearance/AppearancePage.tsx @@ -1,13 +1,13 @@ import type { ISetting, Serialized } from '@rocket.chat/core-typings'; import { ButtonGroup, Button, Box } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useEndpoint } from '@rocket.chat/ui-contexts'; import { useId } from 'react'; import { useForm, FormProvider } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; import AppearanceForm from './AppearanceForm'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../components/Page'; type LivechatAppearanceSettings = { Livechat_title: string; diff --git a/apps/meteor/client/views/omnichannel/appearance/AppearancePageContainer.tsx b/apps/meteor/client/views/omnichannel/appearance/AppearancePageContainer.tsx index 9981a5b061ed2..bfbf4c0c698b8 100644 --- a/apps/meteor/client/views/omnichannel/appearance/AppearancePageContainer.tsx +++ b/apps/meteor/client/views/omnichannel/appearance/AppearancePageContainer.tsx @@ -1,10 +1,10 @@ import { Callout } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useEndpoint, usePermission } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; import AppearancePage from './AppearancePage'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import PageSkeleton from '../../../components/PageSkeleton'; import { omnichannelQueryKeys } from '../../../lib/queryKeys'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; diff --git a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursDisabledPage.tsx b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursDisabledPage.tsx index 858212d4eb23c..367bf7486b586 100644 --- a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursDisabledPage.tsx +++ b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursDisabledPage.tsx @@ -1,8 +1,8 @@ import { States, StatesIcon, StatesTitle, StatesSubtitle, StatesActions, StatesAction, StatesLink, Box } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRole, useRouter } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import { links } from '../../../lib/links'; const BusinessHoursDisabledPage = () => { diff --git a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursMultiplePage.tsx b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursMultiplePage.tsx index cc2307f44105a..cf91c0b52f501 100644 --- a/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursMultiplePage.tsx +++ b/apps/meteor/client/views/omnichannel/businessHours/BusinessHoursMultiplePage.tsx @@ -1,10 +1,9 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouter } from '@rocket.chat/ui-contexts'; import { lazy } from 'react'; import { useTranslation } from 'react-i18next'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; - const BusinessHoursTable = lazy(() => import('./BusinessHoursTable')); const BusinessHoursMultiplePage = () => { diff --git a/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsx b/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsx index 006b420e3b6dd..9c6ad2a986348 100644 --- a/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsx +++ b/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHours.tsx @@ -1,6 +1,7 @@ import type { ILivechatBusinessHour, LivechatBusinessHourTypes, Serialized } from '@rocket.chat/core-typings'; import { Box, Button, ButtonGroup } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageFooter, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useTranslation, useRouter, useEndpoint } from '@rocket.chat/ui-contexts'; import { useId } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; @@ -10,7 +11,6 @@ import BusinessHoursForm from './BusinessHoursForm'; import { defaultWorkHours } from './mapBusinessHoursForm'; import { useIsSingleBusinessHours } from './useIsSingleBusinessHours'; import { useRemoveBusinessHour } from './useRemoveBusinessHour'; -import { Page, PageFooter, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; const getInitialData = (businessHourData: Serialized | undefined) => ({ name: businessHourData?.name || '', diff --git a/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsx b/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsx index dbf1a71a1ae91..28332d520fcbc 100644 --- a/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsx +++ b/apps/meteor/client/views/omnichannel/businessHours/EditBusinessHoursWithData.tsx @@ -1,11 +1,11 @@ import type { ILivechatBusinessHour, LivechatBusinessHourTypes } from '@rocket.chat/core-typings'; import { Button, States, StatesAction, StatesActions, StatesIcon, StatesTitle } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useEndpoint, useRouter } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; import EditBusinessHours from './EditBusinessHours'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import PageSkeleton from '../../../components/PageSkeleton'; const EditBusinessHoursWidthData = ({ id, type }: { id?: ILivechatBusinessHour['_id']; type: LivechatBusinessHourTypes }) => { diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsx index da70659a2b26c..9003ef8acd3f5 100644 --- a/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsx +++ b/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponseEdit.tsx @@ -1,11 +1,11 @@ import type { ILivechatDepartment, IOmnichannelCannedResponse, Serialized } from '@rocket.chat/core-typings'; import { Box, Button, ButtonGroup } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useEndpoint, useTranslation, useRouter } from '@rocket.chat/ui-contexts'; import { useQueryClient } from '@tanstack/react-query'; import { useId, memo, useCallback } from 'react'; import { FormProvider, useForm } from 'react-hook-form'; -import { Page, PageHeader, PageScrollableContentWithShadow, PageFooter } from '../../../../components/Page'; import CannedResponseForm from '../components/CannedResponseForm'; export type CannedResponseEditFormData = { diff --git a/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesPage.tsx b/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesPage.tsx index 216b9e08ee784..9cf8c4e81bf46 100644 --- a/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesPage.tsx +++ b/apps/meteor/client/views/omnichannel/cannedResponses/modals/CannedResponsesPage.tsx @@ -1,11 +1,11 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; import CannedResponseEdit from './CannedResponseEdit'; import CannedResponseEditWithData from './CannedResponseEditWithData'; import CannedResponsesTable from './CannedResponsesTable'; -import { Page, PageHeader, PageContent } from '../../../../components/Page'; const CannedResponsesPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/components/outboundMessage/modals/OutboundMessageUpsellModal/useOutboundMessageUpsellModal.tsx b/apps/meteor/client/views/omnichannel/components/outboundMessage/modals/OutboundMessageUpsellModal/useOutboundMessageUpsellModal.tsx index 42e92bf2248e6..6234176c44f53 100644 --- a/apps/meteor/client/views/omnichannel/components/outboundMessage/modals/OutboundMessageUpsellModal/useOutboundMessageUpsellModal.tsx +++ b/apps/meteor/client/views/omnichannel/components/outboundMessage/modals/OutboundMessageUpsellModal/useOutboundMessageUpsellModal.tsx @@ -1,10 +1,10 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { useLicense } from '@rocket.chat/ui-client'; import { useRole, useSetModal } from '@rocket.chat/ui-contexts'; import { useMemo } from 'react'; import OutboundMessageUpsellModal from './OutboundMessageUpsellModal'; import { useHasLicenseModule } from '../../../../../../hooks/useHasLicenseModule'; -import { useLicense } from '../../../../../../hooks/useLicense'; export const useOutboundMessageUpsellModal = () => { const setModal = useSetModal(); diff --git a/apps/meteor/client/views/omnichannel/contactInfo/EditContactInfo.tsx b/apps/meteor/client/views/omnichannel/contactInfo/EditContactInfo.tsx index d6d4a0f7cca95..2901b147215df 100644 --- a/apps/meteor/client/views/omnichannel/contactInfo/EditContactInfo.tsx +++ b/apps/meteor/client/views/omnichannel/contactInfo/EditContactInfo.tsx @@ -1,5 +1,6 @@ import type { ILivechatContact, Serialized } from '@rocket.chat/core-typings'; import { Field, FieldLabel, FieldRow, FieldError, TextInput, ButtonGroup, Button, IconButton, Divider } from '@rocket.chat/fuselage'; +import { validateEmail } from '@rocket.chat/tools'; import { CustomFieldsForm, ContextualbarScrollableContent, @@ -22,7 +23,6 @@ import AdvancedContactModal from './AdvancedContactModal'; import { useCreateContact } from './hooks/useCreateContact'; import { useEditContact } from './hooks/useEditContact'; import { hasAtLeastOnePermission } from '../../../../app/authorization/client'; -import { validateEmail } from '../../../../lib/emailValidator'; import { useHasLicenseModule } from '../../../hooks/useHasLicenseModule'; import { omnichannelQueryKeys } from '../../../lib/queryKeys'; import { ContactManagerInput } from '../additionalForms'; diff --git a/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx b/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx index 6b5b729e282c8..5bbe454ad0c55 100644 --- a/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx +++ b/apps/meteor/client/views/omnichannel/currentChats/CurrentChatsPage.tsx @@ -12,6 +12,9 @@ import { GenericTableRow, usePagination, useSort, + Page, + PageHeader, + PageContent, } from '@rocket.chat/ui-client'; import { usePermission, useRouter } from '@rocket.chat/ui-contexts'; import { hashKey } from '@tanstack/react-query'; @@ -25,7 +28,6 @@ import FilterByText from './FilterByText'; import RemoveChatButton from './RemoveChatButton'; import { useCurrentChats } from './hooks/useCurrentChats'; import GenericNoResults from '../../../components/GenericNoResults'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import { links } from '../../../lib/links'; import RoomActivityIcon from '../components/RoomActivityIcon'; import { useCustomFieldsQuery } from '../hooks/useCustomFieldsQuery'; diff --git a/apps/meteor/client/views/omnichannel/customFields/CustomFieldsPage.tsx b/apps/meteor/client/views/omnichannel/customFields/CustomFieldsPage.tsx index f191cd555cfcd..e5688517642e5 100644 --- a/apps/meteor/client/views/omnichannel/customFields/CustomFieldsPage.tsx +++ b/apps/meteor/client/views/omnichannel/customFields/CustomFieldsPage.tsx @@ -1,13 +1,12 @@ import { Button } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ContextualbarDialog } from '@rocket.chat/ui-client'; +import { ContextualbarDialog, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; import CustomFieldsTable from './CustomFieldsTable'; import EditCustomFields from './EditCustomFields'; import EditCustomFieldsWithData from './EditCustomFieldsWithData'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const CustomFieldsPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/departments/DepartmentsPage.tsx b/apps/meteor/client/views/omnichannel/departments/DepartmentsPage.tsx index faa32004aa3b0..46557d40baa2e 100644 --- a/apps/meteor/client/views/omnichannel/departments/DepartmentsPage.tsx +++ b/apps/meteor/client/views/omnichannel/departments/DepartmentsPage.tsx @@ -1,11 +1,11 @@ import { Tabs, Button } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRoute, useTranslation, useRouteParameter } from '@rocket.chat/ui-contexts'; import DepartmentsTableV2 from './DepartmentsTable'; import EditDepartmentWithData from './EditDepartmentWithData'; import NewDepartment from './NewDepartment'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const DepartmentsPage = () => { const t = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx b/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx index 07ea1422c0738..c658e6630668b 100644 --- a/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx +++ b/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx @@ -18,6 +18,8 @@ import { Option, } from '@rocket.chat/fuselage'; import { useDebouncedValue, useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { validateEmail } from '@rocket.chat/tools'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useEndpoint, useTranslation, useRouter, usePermission } from '@rocket.chat/ui-contexts'; import { useQueryClient } from '@tanstack/react-query'; import { useId, useMemo, useState } from 'react'; @@ -29,8 +31,6 @@ import type { EditDepartmentFormData } from './definitions'; import { formatAgentListPayload } from './utils/formatAgentListPayload'; import { formatEditDepartmentPayload } from './utils/formatEditDepartmentPayload'; import { getFormInitialValues } from './utils/getFormInititalValues'; -import { validateEmail } from '../../../../lib/emailValidator'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { useRecordList } from '../../../hooks/lists/useRecordList'; import { useHasLicenseModule } from '../../../hooks/useHasLicenseModule'; import { useRoomsList } from '../../../hooks/useRoomsList'; diff --git a/apps/meteor/client/views/omnichannel/directory/OmnichannelDirectoryPage.tsx b/apps/meteor/client/views/omnichannel/directory/OmnichannelDirectoryPage.tsx index 671d19af11820..eabf22334b1ba 100644 --- a/apps/meteor/client/views/omnichannel/directory/OmnichannelDirectoryPage.tsx +++ b/apps/meteor/client/views/omnichannel/directory/OmnichannelDirectoryPage.tsx @@ -1,4 +1,5 @@ import { Tabs } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import { useEffect, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; @@ -8,7 +9,6 @@ import CallTab from './calls/CallTab'; import ChatsTab from './chats/ChatsTab'; import ContactTab from './contacts/ContactTab'; import ChatsProvider from './providers/ChatsProvider'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const DEFAULT_TAB = 'chats'; diff --git a/apps/meteor/client/views/omnichannel/installation/Installation.tsx b/apps/meteor/client/views/omnichannel/installation/Installation.tsx index add1fb3d85978..e4755ae79338b 100644 --- a/apps/meteor/client/views/omnichannel/installation/Installation.tsx +++ b/apps/meteor/client/views/omnichannel/installation/Installation.tsx @@ -1,10 +1,10 @@ import { Box } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useAbsoluteUrl, useSetting } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import Wrapper from './Wrapper'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import RawText from '../../../components/RawText'; import TextCopy from '../../../components/TextCopy'; diff --git a/apps/meteor/client/views/omnichannel/managers/ManagersRoute.tsx b/apps/meteor/client/views/omnichannel/managers/ManagersRoute.tsx index ff1ab17e2d34a..944af4d0633f3 100644 --- a/apps/meteor/client/views/omnichannel/managers/ManagersRoute.tsx +++ b/apps/meteor/client/views/omnichannel/managers/ManagersRoute.tsx @@ -1,9 +1,9 @@ +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { usePermission } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import ManagersTable from './ManagersTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; const ManagersRoute = (): ReactElement => { diff --git a/apps/meteor/client/views/omnichannel/monitors/MonitorsPage.tsx b/apps/meteor/client/views/omnichannel/monitors/MonitorsPage.tsx index fe98503b0e491..b265aa12cfc0c 100644 --- a/apps/meteor/client/views/omnichannel/monitors/MonitorsPage.tsx +++ b/apps/meteor/client/views/omnichannel/monitors/MonitorsPage.tsx @@ -1,7 +1,7 @@ +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useTranslation } from 'react-i18next'; import MonitorsTable from './MonitorsTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const MonitorsPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/priorities/PrioritiesPage.tsx b/apps/meteor/client/views/omnichannel/priorities/PrioritiesPage.tsx index b364bca75ab64..5f6c19ef38e77 100644 --- a/apps/meteor/client/views/omnichannel/priorities/PrioritiesPage.tsx +++ b/apps/meteor/client/views/omnichannel/priorities/PrioritiesPage.tsx @@ -1,5 +1,6 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useEndpoint, useRoute, useSetModal, useToastMessageDispatch } from '@rocket.chat/ui-contexts'; import { useQueryClient } from '@tanstack/react-query'; import type { ReactElement } from 'react'; @@ -10,7 +11,6 @@ import { PrioritiesResetModal } from './PrioritiesResetModal'; import { PrioritiesTable } from './PrioritiesTable'; import type { PriorityFormData } from './PriorityEditForm'; import PriorityList from './PriorityList'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; import { useOmnichannelPriorities } from '../hooks/useOmnichannelPriorities'; type PrioritiesPageProps = { diff --git a/apps/meteor/client/views/omnichannel/queueList/QueueListPage.tsx b/apps/meteor/client/views/omnichannel/queueList/QueueListPage.tsx index 3dc4f090517b4..9c0b220378ada 100644 --- a/apps/meteor/client/views/omnichannel/queueList/QueueListPage.tsx +++ b/apps/meteor/client/views/omnichannel/queueList/QueueListPage.tsx @@ -1,7 +1,7 @@ +import { Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useTranslation } from 'react-i18next'; import QueueListTable from './QueueListTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const QueueListPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/realTimeMonitoring/RealTimeMonitoringPage.tsx b/apps/meteor/client/views/omnichannel/realTimeMonitoring/RealTimeMonitoringPage.tsx index e87a5821032c0..43350756b77e6 100644 --- a/apps/meteor/client/views/omnichannel/realTimeMonitoring/RealTimeMonitoringPage.tsx +++ b/apps/meteor/client/views/omnichannel/realTimeMonitoring/RealTimeMonitoringPage.tsx @@ -1,12 +1,12 @@ import type { SelectOption } from '@rocket.chat/fuselage'; import { Box, Select, Margins, Option } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useQueryClient } from '@tanstack/react-query'; import type { Key } from 'react'; import { useState, useMemo, useEffect, Fragment } from 'react'; import { useTranslation } from 'react-i18next'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { getDateRange } from '../../../lib/utils/getDateRange'; import AutoCompleteDepartment from '../components/AutoCompleteDepartment'; import Label from '../components/Label'; diff --git a/apps/meteor/client/views/omnichannel/reports/ReportsPage.tsx b/apps/meteor/client/views/omnichannel/reports/ReportsPage.tsx index a05b0577d416a..0e1f390c30e35 100644 --- a/apps/meteor/client/views/omnichannel/reports/ReportsPage.tsx +++ b/apps/meteor/client/views/omnichannel/reports/ReportsPage.tsx @@ -1,9 +1,9 @@ import { Box, Grid, GridItem } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { usePermission } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; import { AgentsSection, ChannelsSection, DepartmentsSection, StatusSection, TagsSection } from './sections'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { useHasLicenseModule } from '../../../hooks/useHasLicenseModule'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; diff --git a/apps/meteor/client/views/omnichannel/slaPolicies/SlaPage.tsx b/apps/meteor/client/views/omnichannel/slaPolicies/SlaPage.tsx index 878d0cff654db..5ddfe97c49a96 100644 --- a/apps/meteor/client/views/omnichannel/slaPolicies/SlaPage.tsx +++ b/apps/meteor/client/views/omnichannel/slaPolicies/SlaPage.tsx @@ -1,6 +1,14 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ContextualbarTitle, ContextualbarHeader, ContextualbarClose, ContextualbarDialog } from '@rocket.chat/ui-client'; +import { + ContextualbarTitle, + ContextualbarHeader, + ContextualbarClose, + ContextualbarDialog, + Page, + PageHeader, + PageContent, +} from '@rocket.chat/ui-client'; import { useRouteParameter, useRoute } from '@rocket.chat/ui-contexts'; import { useRef, useCallback } from 'react'; import { useTranslation } from 'react-i18next'; @@ -8,7 +16,6 @@ import { useTranslation } from 'react-i18next'; import SlaEditWithData from './SlaEditWithData'; import SlaNew from './SlaNew'; import SlaTable from './SlaTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const SlaPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/tags/TagsPage.tsx b/apps/meteor/client/views/omnichannel/tags/TagsPage.tsx index 562ee0d2f18b2..41e365fc26c58 100644 --- a/apps/meteor/client/views/omnichannel/tags/TagsPage.tsx +++ b/apps/meteor/client/views/omnichannel/tags/TagsPage.tsx @@ -1,12 +1,11 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ContextualbarDialog } from '@rocket.chat/ui-client'; +import { ContextualbarDialog, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouter, useTranslation, useRouteParameter } from '@rocket.chat/ui-contexts'; import TagEdit from './TagEdit'; import TagEditWithData from './TagEditWithData'; import TagsTable from './TagsTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const TagsPage = () => { const t = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/triggers/TriggersPage.tsx b/apps/meteor/client/views/omnichannel/triggers/TriggersPage.tsx index 5d5d4b044c0ed..50eeb1dddb469 100644 --- a/apps/meteor/client/views/omnichannel/triggers/TriggersPage.tsx +++ b/apps/meteor/client/views/omnichannel/triggers/TriggersPage.tsx @@ -1,13 +1,12 @@ import { Button } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ContextualbarDialog } from '@rocket.chat/ui-client'; +import { ContextualbarDialog, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import { useTranslation } from 'react-i18next'; import EditTrigger from './EditTrigger'; import EditTriggerWithData from './EditTriggerWithData'; import TriggersTable from './TriggersTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const TriggersPage = () => { const { t } = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/units/UnitsPage.tsx b/apps/meteor/client/views/omnichannel/units/UnitsPage.tsx index 2efd31e6a9a53..1bcd3c2eed990 100644 --- a/apps/meteor/client/views/omnichannel/units/UnitsPage.tsx +++ b/apps/meteor/client/views/omnichannel/units/UnitsPage.tsx @@ -1,12 +1,11 @@ import { Button, ButtonGroup } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ContextualbarDialog } from '@rocket.chat/ui-client'; +import { ContextualbarDialog, Page, PageHeader, PageContent } from '@rocket.chat/ui-client'; import { useTranslation, useRouteParameter, useRouter } from '@rocket.chat/ui-contexts'; import UnitEdit from './UnitEdit'; import UnitEditWithData from './UnitEditWithData'; import UnitsTable from './UnitsTable'; -import { Page, PageHeader, PageContent } from '../../../components/Page'; const UnitsPage = () => { const t = useTranslation(); diff --git a/apps/meteor/client/views/omnichannel/webhooks/WebhooksPage.tsx b/apps/meteor/client/views/omnichannel/webhooks/WebhooksPage.tsx index 6e670f316f43a..fc4c73f3c2cb0 100644 --- a/apps/meteor/client/views/omnichannel/webhooks/WebhooksPage.tsx +++ b/apps/meteor/client/views/omnichannel/webhooks/WebhooksPage.tsx @@ -13,13 +13,12 @@ import { FieldLabel, } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { ExternalLink } from '@rocket.chat/ui-client'; +import { ExternalLink, Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useToastMessageDispatch, useTranslation, useEndpoint } from '@rocket.chat/ui-contexts'; import { useMutation } from '@tanstack/react-query'; import { useMemo } from 'react'; import { Controller, useForm, useWatch } from 'react-hook-form'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import { links } from '../../../lib/links'; type WebhooksPageProps = { diff --git a/apps/meteor/client/views/omnichannel/webhooks/WebhooksPageContainer.tsx b/apps/meteor/client/views/omnichannel/webhooks/WebhooksPageContainer.tsx index 579c5a0236017..314e490f91085 100644 --- a/apps/meteor/client/views/omnichannel/webhooks/WebhooksPageContainer.tsx +++ b/apps/meteor/client/views/omnichannel/webhooks/WebhooksPageContainer.tsx @@ -1,11 +1,11 @@ import type { ISetting, Serialized, SettingValue } from '@rocket.chat/core-typings'; import { Callout } from '@rocket.chat/fuselage'; +import { Page, PageHeader, PageScrollableContentWithShadow } from '@rocket.chat/ui-client'; import { useEndpoint, usePermission } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; import { useTranslation } from 'react-i18next'; import WebhooksPage from './WebhooksPage'; -import { Page, PageHeader, PageScrollableContentWithShadow } from '../../../components/Page'; import PageSkeleton from '../../../components/PageSkeleton'; import NotAuthorizedPage from '../../notAuthorized/NotAuthorizedPage'; diff --git a/apps/meteor/client/views/room/Header/FederatedRoomOriginServer.tsx b/apps/meteor/client/views/room/Header/FederatedRoomOriginServer.tsx index a1bf9df82b684..801bc7e90ca19 100644 --- a/apps/meteor/client/views/room/Header/FederatedRoomOriginServer.tsx +++ b/apps/meteor/client/views/room/Header/FederatedRoomOriginServer.tsx @@ -1,7 +1,7 @@ +import { HeaderTag, HeaderTagIcon } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useMemo } from 'react'; -import { HeaderTag, HeaderTagIcon } from '../../../components/Header'; import type { IRoomWithFederationOriginalName } from '../contexts/RoomContext'; type FederatedRoomProps = { diff --git a/apps/meteor/client/views/room/Header/Header.tsx b/apps/meteor/client/views/room/Header/Header.tsx index 9f10555d26a7e..48f480399c4ee 100644 --- a/apps/meteor/client/views/room/Header/Header.tsx +++ b/apps/meteor/client/views/room/Header/Header.tsx @@ -1,12 +1,10 @@ import type { IRoom, ISubscription } from '@rocket.chat/core-typings'; import { isDirectMessageRoom, isVoipRoom, isInviteSubscription } from '@rocket.chat/core-typings'; +import { HeaderToolbar, SidebarToggler } from '@rocket.chat/ui-client'; import { useLayout, useSetting } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { lazy, memo, useMemo } from 'react'; -import { HeaderToolbar } from '../../../components/Header'; -import SidebarToggler from '../../../components/SidebarToggler'; - const RoomInviteHeader = lazy(() => import('./RoomInviteHeader')); const OmnichannelRoomHeader = lazy(() => import('./Omnichannel/OmnichannelRoomHeader')); const VoipRoomHeader = lazy(() => import('./Omnichannel/VoipRoomHeader')); diff --git a/apps/meteor/client/views/room/Header/HeaderIconWithRoom.tsx b/apps/meteor/client/views/room/Header/HeaderIconWithRoom.tsx index 43997b9344fbd..b77d2ced125fc 100644 --- a/apps/meteor/client/views/room/Header/HeaderIconWithRoom.tsx +++ b/apps/meteor/client/views/room/Header/HeaderIconWithRoom.tsx @@ -1,8 +1,8 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { isOmnichannelRoom } from '@rocket.chat/core-typings'; +import { HeaderIcon } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; -import { HeaderIcon } from '../../../components/Header'; import { OmnichannelRoomIcon } from '../../../components/RoomIcon/OmnichannelRoomIcon'; import { useRoomIcon } from '../../../hooks/useRoomIcon'; diff --git a/apps/meteor/client/views/room/Header/HeaderSkeleton.tsx b/apps/meteor/client/views/room/Header/HeaderSkeleton.tsx index cd0c69eed075b..77b6479454c5d 100644 --- a/apps/meteor/client/views/room/Header/HeaderSkeleton.tsx +++ b/apps/meteor/client/views/room/Header/HeaderSkeleton.tsx @@ -1,6 +1,5 @@ import { Skeleton } from '@rocket.chat/fuselage'; - -import { Header, HeaderAvatar, HeaderContent, HeaderContentRow } from '../../../components/Header'; +import { Header, HeaderAvatar, HeaderContent, HeaderContentRow } from '@rocket.chat/ui-client'; const HeaderSkeleton = () => { return ( diff --git a/apps/meteor/client/views/room/Header/Omnichannel/BackButton.tsx b/apps/meteor/client/views/room/Header/Omnichannel/BackButton.tsx index c952ceb8d13af..ede383afd3386 100644 --- a/apps/meteor/client/views/room/Header/Omnichannel/BackButton.tsx +++ b/apps/meteor/client/views/room/Header/Omnichannel/BackButton.tsx @@ -1,10 +1,9 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { HeaderToolbarAction } from '@rocket.chat/ui-client'; import { useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderToolbarAction } from '../../../../components/Header'; - export const BackButton = ({ routeName }: { routeName?: string }): ReactElement => { const router = useRouter(); const { t } = useTranslation(); diff --git a/apps/meteor/client/views/room/Header/Omnichannel/OmnichannelRoomHeader.tsx b/apps/meteor/client/views/room/Header/Omnichannel/OmnichannelRoomHeader.tsx index e73e9238b7bdb..43fba48b74b1d 100644 --- a/apps/meteor/client/views/room/Header/Omnichannel/OmnichannelRoomHeader.tsx +++ b/apps/meteor/client/views/room/Header/Omnichannel/OmnichannelRoomHeader.tsx @@ -1,9 +1,8 @@ +import { HeaderToolbar, SidebarToggler } from '@rocket.chat/ui-client'; import { useLayout, useRouter } from '@rocket.chat/ui-contexts'; import type { ReactNode } from 'react'; import { useCallback, useMemo, useSyncExternalStore } from 'react'; -import { HeaderToolbar } from '../../../../components/Header'; -import SidebarToggler from '../../../../components/SidebarToggler'; import { useOmnichannelRoom } from '../../contexts/RoomContext'; import RoomHeader from '../RoomHeader'; import { BackButton } from './BackButton'; diff --git a/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActionOptions.tsx b/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActionOptions.tsx index 5c498b0d7dff2..48fad332bd193 100644 --- a/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActionOptions.tsx +++ b/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActionOptions.tsx @@ -1,10 +1,10 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { Box, Dropdown, Option } from '@rocket.chat/fuselage'; import type { Keys as IconName } from '@rocket.chat/icons'; +import { HeaderToolbarAction } from '@rocket.chat/ui-client'; import { memo, useRef } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderToolbarAction } from '../../../../../components/Header'; import { useDropdownVisibility } from '../../../../../sidebar/header/hooks/useDropdownVisibility'; import type { QuickActionsActionOptions } from '../../../lib/quickActions'; diff --git a/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActions.tsx b/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActions.tsx index 204733dac6037..edcf9d2576277 100644 --- a/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActions.tsx +++ b/apps/meteor/client/views/room/Header/Omnichannel/QuickActions/QuickActions.tsx @@ -1,11 +1,11 @@ import type { Box } from '@rocket.chat/fuselage'; +import { HeaderToolbar, HeaderToolbarAction, HeaderToolbarDivider } from '@rocket.chat/ui-client'; import type { ComponentProps } from 'react'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import QuickActionOptions from './QuickActionOptions'; import { useQuickActions } from './hooks/useQuickActions'; -import { HeaderToolbar, HeaderToolbarAction, HeaderToolbarDivider } from '../../../../../components/Header'; import { useOmnichannelRoom } from '../../../contexts/RoomContext'; type QuickActionsProps = { diff --git a/apps/meteor/client/views/room/Header/Omnichannel/VoipRoomHeader.tsx b/apps/meteor/client/views/room/Header/Omnichannel/VoipRoomHeader.tsx index 038d42a6898b2..7e32e4f6bdd62 100644 --- a/apps/meteor/client/views/room/Header/Omnichannel/VoipRoomHeader.tsx +++ b/apps/meteor/client/views/room/Header/Omnichannel/VoipRoomHeader.tsx @@ -1,9 +1,8 @@ import type { IVoipRoom } from '@rocket.chat/core-typings'; +import { HeaderToolbar, SidebarToggler } from '@rocket.chat/ui-client'; import { useLayout, useRouter } from '@rocket.chat/ui-contexts'; import { useCallback, useMemo, useSyncExternalStore } from 'react'; -import { HeaderToolbar } from '../../../../components/Header'; -import SidebarToggler from '../../../../components/SidebarToggler'; import { parseOutboundPhoneNumber } from '../../../../lib/voip/parseOutboundPhoneNumber'; import type { RoomHeaderProps } from '../RoomHeader'; import RoomHeader from '../RoomHeader'; diff --git a/apps/meteor/client/views/room/Header/ParentRoom.tsx b/apps/meteor/client/views/room/Header/ParentRoom.tsx index f97462282d8ce..32a8b942f9e50 100644 --- a/apps/meteor/client/views/room/Header/ParentRoom.tsx +++ b/apps/meteor/client/views/room/Header/ParentRoom.tsx @@ -1,8 +1,8 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { useButtonPattern } from '@rocket.chat/fuselage-hooks'; +import { HeaderTag, HeaderTagIcon } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; -import { HeaderTag, HeaderTagIcon } from '../../../components/Header'; import { useRoomIcon } from '../../../hooks/useRoomIcon'; import { roomCoordinator } from '../../../lib/rooms/roomCoordinator'; diff --git a/apps/meteor/client/views/room/Header/ParentRoomWithEndpointData.tsx b/apps/meteor/client/views/room/Header/ParentRoomWithEndpointData.tsx index ceb6041c76d37..4def981a840eb 100644 --- a/apps/meteor/client/views/room/Header/ParentRoomWithEndpointData.tsx +++ b/apps/meteor/client/views/room/Header/ParentRoomWithEndpointData.tsx @@ -1,8 +1,8 @@ import type { IRoom } from '@rocket.chat/core-typings'; +import { HeaderTagSkeleton } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import ParentRoom from './ParentRoom'; -import { HeaderTagSkeleton } from '../../../components/Header'; import { useRoomInfoEndpoint } from '../../../hooks/useRoomInfoEndpoint'; type ParentRoomWithEndpointDataProps = { diff --git a/apps/meteor/client/views/room/Header/ParentTeam.tsx b/apps/meteor/client/views/room/Header/ParentTeam.tsx index 009362a3391f8..6f25d13ff55b7 100644 --- a/apps/meteor/client/views/room/Header/ParentTeam.tsx +++ b/apps/meteor/client/views/room/Header/ParentTeam.tsx @@ -1,10 +1,10 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { TEAM_TYPE } from '@rocket.chat/core-typings'; import { useButtonPattern } from '@rocket.chat/fuselage-hooks'; +import { HeaderTag, HeaderTagIcon, HeaderTagSkeleton } from '@rocket.chat/ui-client'; import { useUserId } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; -import { HeaderTag, HeaderTagIcon, HeaderTagSkeleton } from '../../../components/Header'; import { useTeamInfoQuery } from '../../../hooks/useTeamInfoQuery'; import { goToRoomById } from '../../../lib/utils/goToRoomById'; import { useUserTeamsQuery } from '../hooks/useUserTeamsQuery'; diff --git a/apps/meteor/client/views/room/Header/RoomHeader.tsx b/apps/meteor/client/views/room/Header/RoomHeader.tsx index 5d943f65afd81..ab56a073cb62c 100644 --- a/apps/meteor/client/views/room/Header/RoomHeader.tsx +++ b/apps/meteor/client/views/room/Header/RoomHeader.tsx @@ -1,6 +1,7 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { isRoomFederated } from '@rocket.chat/core-typings'; import { RoomAvatar } from '@rocket.chat/ui-avatar'; +import { Header, HeaderAvatar, HeaderContent, HeaderContentRow, HeaderSubtitle, HeaderToolbar } from '@rocket.chat/ui-client'; import type { ReactNode } from 'react'; import { Suspense } from 'react'; import { useTranslation } from 'react-i18next'; @@ -13,7 +14,6 @@ import RoomToolbox from './RoomToolbox'; import Encrypted from './icons/Encrypted'; import Favorite from './icons/Favorite'; import Translate from './icons/Translate'; -import { Header, HeaderAvatar, HeaderContent, HeaderContentRow, HeaderSubtitle, HeaderToolbar } from '../../../components/Header'; import MarkdownText from '../../../components/MarkdownText'; export type RoomHeaderProps = { diff --git a/apps/meteor/client/views/room/Header/RoomTitle.tsx b/apps/meteor/client/views/room/Header/RoomTitle.tsx index bd287a2c69814..87d9ffa2d3709 100644 --- a/apps/meteor/client/views/room/Header/RoomTitle.tsx +++ b/apps/meteor/client/views/room/Header/RoomTitle.tsx @@ -1,11 +1,10 @@ import { isTeamRoom, type IRoom } from '@rocket.chat/core-typings'; import { useButtonPattern, useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { useDocumentTitle } from '@rocket.chat/ui-client'; +import { useDocumentTitle, HeaderTitle, HeaderTitleButton } from '@rocket.chat/ui-client'; import { useRoomToolbox } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import HeaderIconWithRoom from './HeaderIconWithRoom'; -import { HeaderTitle, HeaderTitleButton } from '../../../components/Header'; const RoomTitle = ({ room }: { room: IRoom }): ReactElement => { useDocumentTitle(room.name, false); diff --git a/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolbox.tsx b/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolbox.tsx index 36be4915a65b4..24a056c9adb18 100644 --- a/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolbox.tsx +++ b/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolbox.tsx @@ -1,13 +1,12 @@ import type { Box } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { GenericMenu } from '@rocket.chat/ui-client'; +import { GenericMenu, HeaderToolbarAction, HeaderToolbarDivider } from '@rocket.chat/ui-client'; import { useRoomToolbox, type RenderToolboxItemParams, type RoomToolboxActionConfig } from '@rocket.chat/ui-contexts'; import type { ComponentProps } from 'react'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import { useRoomToolboxActions } from './hooks/useRoomToolboxActions'; -import { HeaderToolbarAction, HeaderToolbarDivider } from '../../../../components/Header'; type RoomToolboxProps = { className?: ComponentProps['className']; diff --git a/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolboxE2EESetup.tsx b/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolboxE2EESetup.tsx index 6522ba91f9f7e..6cc8db6b27d5c 100644 --- a/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolboxE2EESetup.tsx +++ b/apps/meteor/client/views/room/Header/RoomToolbox/RoomToolboxE2EESetup.tsx @@ -1,10 +1,10 @@ import type { Box } from '@rocket.chat/fuselage'; import { useStableArray } from '@rocket.chat/fuselage-hooks'; +import { HeaderToolbarAction } from '@rocket.chat/ui-client'; import { useRoomToolbox, type RoomToolboxActionConfig } from '@rocket.chat/ui-contexts'; import type { ComponentProps } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderToolbarAction } from '../../../../components/Header'; import { roomActionHooksForE2EESetup } from '../../../../ui'; import { useRoom } from '../../contexts/RoomContext'; import { getRoomGroup } from '../../lib/getRoomGroup'; diff --git a/apps/meteor/client/views/room/Header/icons/Encrypted.tsx b/apps/meteor/client/views/room/Header/icons/Encrypted.tsx index 3e376e3b9d661..a4386d6b86336 100644 --- a/apps/meteor/client/views/room/Header/icons/Encrypted.tsx +++ b/apps/meteor/client/views/room/Header/icons/Encrypted.tsx @@ -1,11 +1,10 @@ import type { IRoom } from '@rocket.chat/core-typings'; import colors from '@rocket.chat/fuselage-tokens/colors'; +import { HeaderState } from '@rocket.chat/ui-client'; import { useSetting } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderState } from '../../../../components/Header'; - const Encrypted = ({ room }: { room: IRoom }) => { const { t } = useTranslation(); const e2eEnabled = useSetting('E2E_Enable'); diff --git a/apps/meteor/client/views/room/Header/icons/Favorite.tsx b/apps/meteor/client/views/room/Header/icons/Favorite.tsx index 5afbac0355c84..c163c30977928 100644 --- a/apps/meteor/client/views/room/Header/icons/Favorite.tsx +++ b/apps/meteor/client/views/room/Header/icons/Favorite.tsx @@ -1,9 +1,9 @@ import type { IRoom, ISubscription } from '@rocket.chat/core-typings'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { HeaderState } from '@rocket.chat/ui-client'; import { useSetting, useTranslation } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; -import { HeaderState } from '../../../../components/Header'; import { useUserIsSubscribed } from '../../contexts/RoomContext'; import { useToggleFavoriteMutation } from '../../hooks/useToggleFavoriteMutation'; diff --git a/apps/meteor/client/views/room/Header/icons/Translate.tsx b/apps/meteor/client/views/room/Header/icons/Translate.tsx index 97df8b96549bf..3690d801eda60 100644 --- a/apps/meteor/client/views/room/Header/icons/Translate.tsx +++ b/apps/meteor/client/views/room/Header/icons/Translate.tsx @@ -1,10 +1,9 @@ import type { IRoom } from '@rocket.chat/core-typings'; +import { HeaderState } from '@rocket.chat/ui-client'; import { useSetting } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderState } from '../../../../components/Header'; - type TranslateProps = { room: IRoom; }; diff --git a/apps/meteor/client/views/room/HeaderV2/FederatedRoomOriginServer.tsx b/apps/meteor/client/views/room/HeaderV2/FederatedRoomOriginServer.tsx index 846787269d700..b1d569f04ebae 100644 --- a/apps/meteor/client/views/room/HeaderV2/FederatedRoomOriginServer.tsx +++ b/apps/meteor/client/views/room/HeaderV2/FederatedRoomOriginServer.tsx @@ -1,7 +1,7 @@ +import { HeaderTag, HeaderTagIcon } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { useMemo } from 'react'; -import { HeaderTag, HeaderTagIcon } from '../../../components/Header'; import type { IRoomWithFederationOriginalName } from '../contexts/RoomContext'; type FederatedRoomOriginServerProps = { diff --git a/apps/meteor/client/views/room/HeaderV2/HeaderIconWithRoom.tsx b/apps/meteor/client/views/room/HeaderV2/HeaderIconWithRoom.tsx index 120e5fe4eb59b..993bab2d1e257 100644 --- a/apps/meteor/client/views/room/HeaderV2/HeaderIconWithRoom.tsx +++ b/apps/meteor/client/views/room/HeaderV2/HeaderIconWithRoom.tsx @@ -1,8 +1,8 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { isOmnichannelRoom } from '@rocket.chat/core-typings'; +import { HeaderIcon } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; -import { HeaderIcon } from '../../../components/Header'; import { OmnichannelRoomIcon } from '../../../components/RoomIcon/OmnichannelRoomIcon'; import { useRoomIcon } from '../../../hooks/useRoomIcon'; diff --git a/apps/meteor/client/views/room/HeaderV2/HeaderSkeleton.tsx b/apps/meteor/client/views/room/HeaderV2/HeaderSkeleton.tsx index 25d78f466024d..221bd7f383e43 100644 --- a/apps/meteor/client/views/room/HeaderV2/HeaderSkeleton.tsx +++ b/apps/meteor/client/views/room/HeaderV2/HeaderSkeleton.tsx @@ -1,6 +1,5 @@ import { Skeleton } from '@rocket.chat/fuselage'; - -import { Header, HeaderContent, HeaderContentRow } from '../../../components/Header'; +import { Header, HeaderContent, HeaderContentRow } from '@rocket.chat/ui-client'; const HeaderSkeleton = () => { return ( diff --git a/apps/meteor/client/views/room/HeaderV2/Omnichannel/BackButton.tsx b/apps/meteor/client/views/room/HeaderV2/Omnichannel/BackButton.tsx index fb64ff04dc108..28ac09742b801 100644 --- a/apps/meteor/client/views/room/HeaderV2/Omnichannel/BackButton.tsx +++ b/apps/meteor/client/views/room/HeaderV2/Omnichannel/BackButton.tsx @@ -1,10 +1,9 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { HeaderToolbarAction } from '@rocket.chat/ui-client'; import { useRouter } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderToolbarAction } from '../../../../components/Header'; - type BackButtonProps = { routeName?: string }; const BackButton = ({ routeName }: BackButtonProps): ReactElement => { diff --git a/apps/meteor/client/views/room/HeaderV2/Omnichannel/OmnichannelRoomHeader.tsx b/apps/meteor/client/views/room/HeaderV2/Omnichannel/OmnichannelRoomHeader.tsx index a937bc93e7208..92c89b6a267da 100644 --- a/apps/meteor/client/views/room/HeaderV2/Omnichannel/OmnichannelRoomHeader.tsx +++ b/apps/meteor/client/views/room/HeaderV2/Omnichannel/OmnichannelRoomHeader.tsx @@ -1,7 +1,7 @@ +import { HeaderToolbar } from '@rocket.chat/ui-client'; import { useRouter } from '@rocket.chat/ui-contexts'; import { useCallback, useMemo, useSyncExternalStore } from 'react'; -import { HeaderToolbar } from '../../../../components/Header'; import { useOmnichannelRoom } from '../../contexts/RoomContext'; import RoomHeader from '../RoomHeader'; import BackButton from './BackButton'; diff --git a/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActionOptions.tsx b/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActionOptions.tsx index 5c498b0d7dff2..48fad332bd193 100644 --- a/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActionOptions.tsx +++ b/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActionOptions.tsx @@ -1,10 +1,10 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { Box, Dropdown, Option } from '@rocket.chat/fuselage'; import type { Keys as IconName } from '@rocket.chat/icons'; +import { HeaderToolbarAction } from '@rocket.chat/ui-client'; import { memo, useRef } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderToolbarAction } from '../../../../../components/Header'; import { useDropdownVisibility } from '../../../../../sidebar/header/hooks/useDropdownVisibility'; import type { QuickActionsActionOptions } from '../../../lib/quickActions'; diff --git a/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActions.tsx b/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActions.tsx index e50476671cd29..422c1e3c0751a 100644 --- a/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActions.tsx +++ b/apps/meteor/client/views/room/HeaderV2/Omnichannel/QuickActions/QuickActions.tsx @@ -1,11 +1,11 @@ import type { Box } from '@rocket.chat/fuselage'; +import { HeaderToolbar, HeaderToolbarAction, HeaderToolbarDivider } from '@rocket.chat/ui-client'; import type { ComponentProps } from 'react'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import QuickActionOptions from './QuickActionOptions'; import { useQuickActions } from './hooks/useQuickActions'; -import { HeaderToolbar, HeaderToolbarAction, HeaderToolbarDivider } from '../../../../../components/Header'; import { useOmnichannelRoom } from '../../../contexts/RoomContext'; type QuickActionsProps = { diff --git a/apps/meteor/client/views/room/HeaderV2/Omnichannel/VoipRoomHeader.tsx b/apps/meteor/client/views/room/HeaderV2/Omnichannel/VoipRoomHeader.tsx index e8e492478bfc2..24c47cb4fd7e7 100644 --- a/apps/meteor/client/views/room/HeaderV2/Omnichannel/VoipRoomHeader.tsx +++ b/apps/meteor/client/views/room/HeaderV2/Omnichannel/VoipRoomHeader.tsx @@ -1,8 +1,8 @@ import type { IVoipRoom } from '@rocket.chat/core-typings'; +import { HeaderToolbar } from '@rocket.chat/ui-client'; import { useRouter } from '@rocket.chat/ui-contexts'; import { useCallback, useMemo, useSyncExternalStore } from 'react'; -import { HeaderToolbar } from '../../../../components/Header'; import { parseOutboundPhoneNumber } from '../../../../lib/voip/parseOutboundPhoneNumber'; import type { RoomHeaderProps } from '../RoomHeader'; import RoomHeader from '../RoomHeader'; diff --git a/apps/meteor/client/views/room/HeaderV2/RoomHeader.tsx b/apps/meteor/client/views/room/HeaderV2/RoomHeader.tsx index 711b1471cb63a..3d0cb83ebbcc6 100644 --- a/apps/meteor/client/views/room/HeaderV2/RoomHeader.tsx +++ b/apps/meteor/client/views/room/HeaderV2/RoomHeader.tsx @@ -1,5 +1,6 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { isRoomFederated } from '@rocket.chat/core-typings'; +import { Header, HeaderContent, HeaderContentRow, HeaderToolbar } from '@rocket.chat/ui-client'; import type { ReactNode } from 'react'; import { Suspense } from 'react'; import { useTranslation } from 'react-i18next'; @@ -12,7 +13,6 @@ import RoomTopic from './RoomTopic'; import Encrypted from './icons/Encrypted'; import Favorite from './icons/Favorite'; import Translate from './icons/Translate'; -import { Header, HeaderContent, HeaderContentRow, HeaderToolbar } from '../../../components/Header'; export type RoomHeaderProps = { room: IRoom; diff --git a/apps/meteor/client/views/room/HeaderV2/RoomTitle.tsx b/apps/meteor/client/views/room/HeaderV2/RoomTitle.tsx index 6b688006b71a4..8dd898e10f4a3 100644 --- a/apps/meteor/client/views/room/HeaderV2/RoomTitle.tsx +++ b/apps/meteor/client/views/room/HeaderV2/RoomTitle.tsx @@ -1,10 +1,9 @@ import { isTeamRoom, type IRoom } from '@rocket.chat/core-typings'; import { useButtonPattern, useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { useDocumentTitle } from '@rocket.chat/ui-client'; +import { useDocumentTitle, HeaderTitle, HeaderTitleButton } from '@rocket.chat/ui-client'; import { useRoomToolbox } from '@rocket.chat/ui-contexts'; import HeaderIconWithRoom from './HeaderIconWithRoom'; -import { HeaderTitle, HeaderTitleButton } from '../../../components/Header'; type RoomTitleProps = { room: IRoom }; diff --git a/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolbox.tsx b/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolbox.tsx index 36be4915a65b4..24a056c9adb18 100644 --- a/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolbox.tsx +++ b/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolbox.tsx @@ -1,13 +1,12 @@ import type { Box } from '@rocket.chat/fuselage'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; -import { GenericMenu } from '@rocket.chat/ui-client'; +import { GenericMenu, HeaderToolbarAction, HeaderToolbarDivider } from '@rocket.chat/ui-client'; import { useRoomToolbox, type RenderToolboxItemParams, type RoomToolboxActionConfig } from '@rocket.chat/ui-contexts'; import type { ComponentProps } from 'react'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; import { useRoomToolboxActions } from './hooks/useRoomToolboxActions'; -import { HeaderToolbarAction, HeaderToolbarDivider } from '../../../../components/Header'; type RoomToolboxProps = { className?: ComponentProps['className']; diff --git a/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolboxE2EESetup.tsx b/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolboxE2EESetup.tsx index de924f1ebf3d0..40907ea62d21b 100644 --- a/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolboxE2EESetup.tsx +++ b/apps/meteor/client/views/room/HeaderV2/RoomToolbox/RoomToolboxE2EESetup.tsx @@ -1,10 +1,10 @@ import type { Box } from '@rocket.chat/fuselage'; import { useStableArray } from '@rocket.chat/fuselage-hooks'; +import { HeaderToolbarAction } from '@rocket.chat/ui-client'; import { useRoomToolbox, type RoomToolboxActionConfig } from '@rocket.chat/ui-contexts'; import type { ComponentProps } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderToolbarAction } from '../../../../components/Header'; import { roomActionHooksForE2EESetup } from '../../../../ui'; type RoomToolboxE2EESetupProps = { diff --git a/apps/meteor/client/views/room/HeaderV2/icons/Encrypted.tsx b/apps/meteor/client/views/room/HeaderV2/icons/Encrypted.tsx index 3e376e3b9d661..a4386d6b86336 100644 --- a/apps/meteor/client/views/room/HeaderV2/icons/Encrypted.tsx +++ b/apps/meteor/client/views/room/HeaderV2/icons/Encrypted.tsx @@ -1,11 +1,10 @@ import type { IRoom } from '@rocket.chat/core-typings'; import colors from '@rocket.chat/fuselage-tokens/colors'; +import { HeaderState } from '@rocket.chat/ui-client'; import { useSetting } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderState } from '../../../../components/Header'; - const Encrypted = ({ room }: { room: IRoom }) => { const { t } = useTranslation(); const e2eEnabled = useSetting('E2E_Enable'); diff --git a/apps/meteor/client/views/room/HeaderV2/icons/Favorite.tsx b/apps/meteor/client/views/room/HeaderV2/icons/Favorite.tsx index 5afbac0355c84..c163c30977928 100644 --- a/apps/meteor/client/views/room/HeaderV2/icons/Favorite.tsx +++ b/apps/meteor/client/views/room/HeaderV2/icons/Favorite.tsx @@ -1,9 +1,9 @@ import type { IRoom, ISubscription } from '@rocket.chat/core-typings'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { HeaderState } from '@rocket.chat/ui-client'; import { useSetting, useTranslation } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; -import { HeaderState } from '../../../../components/Header'; import { useUserIsSubscribed } from '../../contexts/RoomContext'; import { useToggleFavoriteMutation } from '../../hooks/useToggleFavoriteMutation'; diff --git a/apps/meteor/client/views/room/HeaderV2/icons/Translate.tsx b/apps/meteor/client/views/room/HeaderV2/icons/Translate.tsx index 97df8b96549bf..3690d801eda60 100644 --- a/apps/meteor/client/views/room/HeaderV2/icons/Translate.tsx +++ b/apps/meteor/client/views/room/HeaderV2/icons/Translate.tsx @@ -1,10 +1,9 @@ import type { IRoom } from '@rocket.chat/core-typings'; +import { HeaderState } from '@rocket.chat/ui-client'; import { useSetting } from '@rocket.chat/ui-contexts'; import { memo } from 'react'; import { useTranslation } from 'react-i18next'; -import { HeaderState } from '../../../../components/Header'; - type TranslateProps = { room: IRoom; }; diff --git a/apps/meteor/client/views/room/NotSubscribedRoom.tsx b/apps/meteor/client/views/room/NotSubscribedRoom.tsx index f2ece26605932..933ba44fb88b0 100644 --- a/apps/meteor/client/views/room/NotSubscribedRoom.tsx +++ b/apps/meteor/client/views/room/NotSubscribedRoom.tsx @@ -1,12 +1,11 @@ import type { IRoom } from '@rocket.chat/core-typings'; import { Box, States, StatesAction, StatesActions, StatesIcon, StatesSubtitle, StatesTitle } from '@rocket.chat/fuselage'; -import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn, Header, HeaderToolbar } from '@rocket.chat/ui-client'; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn, HeaderV1, HeaderV1Toolbar, SidebarToggler } from '@rocket.chat/ui-client'; import { useLayout } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { Trans, useTranslation } from 'react-i18next'; import RoomLayout from './layout/RoomLayout'; -import SidebarToggler from '../../components/SidebarToggler'; import { useJoinRoom } from '../../hooks/useJoinRoom'; type NotSubscribedRoomProps = { @@ -28,11 +27,11 @@ const NotSubscribedRoom = ({ rid, reference, type }: NotSubscribedRoomProps): Re isMobile && ( -
- + + - -
+ +
{null}
diff --git a/apps/meteor/client/views/room/RoomNotFound.tsx b/apps/meteor/client/views/room/RoomNotFound.tsx index ca4945ba96d58..08e39739312ac 100644 --- a/apps/meteor/client/views/room/RoomNotFound.tsx +++ b/apps/meteor/client/views/room/RoomNotFound.tsx @@ -1,12 +1,11 @@ import { Box } from '@rocket.chat/fuselage'; -import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn, Header, HeaderToolbar } from '@rocket.chat/ui-client'; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn, HeaderV1, HeaderV1Toolbar, SidebarToggler } from '@rocket.chat/ui-client'; import { useLayout } from '@rocket.chat/ui-contexts'; import type { ReactElement } from 'react'; import { useTranslation } from 'react-i18next'; import RoomLayout from './layout/RoomLayout'; import NotFoundState from '../../components/NotFoundState'; -import SidebarToggler from '../../components/SidebarToggler'; const RoomNotFound = (): ReactElement => { const { t } = useTranslation(); @@ -18,11 +17,11 @@ const RoomNotFound = (): ReactElement => { isMobile && ( -
- + + - -
+ +
{null}
diff --git a/apps/meteor/client/views/room/RoomOpener.tsx b/apps/meteor/client/views/room/RoomOpener.tsx index c0868d359bbe7..ac6264eb7562f 100644 --- a/apps/meteor/client/views/room/RoomOpener.tsx +++ b/apps/meteor/client/views/room/RoomOpener.tsx @@ -1,5 +1,6 @@ import type { RoomType } from '@rocket.chat/core-typings'; import { Box, States, StatesIcon, StatesSubtitle, StatesTitle } from '@rocket.chat/fuselage'; +import { Header } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import { lazy, Suspense } from 'react'; import { useTranslation } from 'react-i18next'; @@ -7,7 +8,6 @@ import { useTranslation } from 'react-i18next'; import NotSubscribedRoom from './NotSubscribedRoom'; import RoomSkeleton from './RoomSkeleton'; import { useOpenRoom } from './hooks/useOpenRoom'; -import { Header } from '../../components/Header'; import { getErrorMessage } from '../../lib/errorHandling'; import { NotAuthorizedError } from '../../lib/errors/NotAuthorizedError'; import { NotSubscribedToRoomError } from '../../lib/errors/NotSubscribedToRoomError'; diff --git a/apps/meteor/client/views/room/RoomOpenerEmbedded.tsx b/apps/meteor/client/views/room/RoomOpenerEmbedded.tsx index 4350df68a6a83..542bf68413d83 100644 --- a/apps/meteor/client/views/room/RoomOpenerEmbedded.tsx +++ b/apps/meteor/client/views/room/RoomOpenerEmbedded.tsx @@ -1,5 +1,6 @@ import type { RoomType } from '@rocket.chat/core-typings'; import { Box, States, StatesIcon, StatesSubtitle, StatesTitle } from '@rocket.chat/fuselage'; +import { Header } from '@rocket.chat/ui-client'; import { useEndpoint, useStream, useUserId } from '@rocket.chat/ui-contexts'; import { useQuery } from '@tanstack/react-query'; import type { ReactElement } from 'react'; @@ -11,7 +12,6 @@ import RoomSkeleton from './RoomSkeleton'; import { useOpenRoom } from './hooks/useOpenRoom'; import { LegacyRoomManager } from '../../../app/ui-utils/client'; import { SubscriptionsCachedStore } from '../../cachedStores'; -import { Header } from '../../components/Header'; import { getErrorMessage } from '../../lib/errorHandling'; import { NotAuthorizedError } from '../../lib/errors/NotAuthorizedError'; import { NotSubscribedToRoomError } from '../../lib/errors/NotSubscribedToRoomError'; diff --git a/apps/meteor/client/views/room/RoomRoute.tsx b/apps/meteor/client/views/room/RoomRoute.tsx index c1f719619bad1..d3a344be307c3 100644 --- a/apps/meteor/client/views/room/RoomRoute.tsx +++ b/apps/meteor/client/views/room/RoomRoute.tsx @@ -1,10 +1,10 @@ import type { RoomType } from '@rocket.chat/core-typings'; +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import { useRouter } from '@rocket.chat/ui-contexts'; import { useLayoutEffect, useState } from 'react'; import RoomOpener from './RoomOpener'; import RoomOpenerEmbedded from './RoomOpenerEmbedded'; -import { useEmbeddedLayout } from '../../hooks/useEmbeddedLayout'; type RoomRouteProps = { extractOpenRoomParams: (routeParams: Record) => { diff --git a/apps/meteor/client/views/room/body/RoomBody.tsx b/apps/meteor/client/views/room/body/RoomBody.tsx index 3f80f79c085c5..517fd0782a430 100644 --- a/apps/meteor/client/views/room/body/RoomBody.tsx +++ b/apps/meteor/client/views/room/body/RoomBody.tsx @@ -1,5 +1,5 @@ import { Box } from '@rocket.chat/fuselage'; -import { CustomScrollbars } from '@rocket.chat/ui-client'; +import { CustomScrollbars, useEmbeddedLayout } from '@rocket.chat/ui-client'; import { usePermission, useRole, useSetting, useTranslation, useUser, useUserPreference, useRoomToolbox } from '@rocket.chat/ui-contexts'; import type { MouseEvent, ReactElement } from 'react'; import { memo, useCallback, useMemo } from 'react'; @@ -14,7 +14,6 @@ import { UploadProgressContainer, UploadProgressIndicator } from './UploadProgre import { MessageList } from '../MessageList'; import { useReadMessageWindowEvents } from './hooks/useReadMessageWindowEvents'; import { isTruthy } from '../../../../lib/isTruthy'; -import { useEmbeddedLayout } from '../../../hooks/useEmbeddedLayout'; import { useMergedRefsV2 } from '../../../hooks/useMergedRefsV2'; import { BubbleDate } from '../BubbleDate'; import MessageListErrorBoundary from '../MessageList/MessageListErrorBoundary'; diff --git a/apps/meteor/client/views/room/body/RoomBodyV2.tsx b/apps/meteor/client/views/room/body/RoomBodyV2.tsx index 81b6393906135..8e5bd8da996ef 100644 --- a/apps/meteor/client/views/room/body/RoomBodyV2.tsx +++ b/apps/meteor/client/views/room/body/RoomBodyV2.tsx @@ -1,11 +1,10 @@ import { Box } from '@rocket.chat/fuselage'; -import { CustomScrollbars } from '@rocket.chat/ui-client'; +import { CustomScrollbars, useEmbeddedLayout } from '@rocket.chat/ui-client'; import { usePermission, useRole, useSetting, useTranslation, useUser, useUserPreference, useRoomToolbox } from '@rocket.chat/ui-contexts'; import type { MouseEvent, ReactElement } from 'react'; import { memo, useCallback, useMemo } from 'react'; import { isTruthy } from '../../../../lib/isTruthy'; -import { useEmbeddedLayout } from '../../../hooks/useEmbeddedLayout'; import { useMergedRefsV2 } from '../../../hooks/useMergedRefsV2'; import { BubbleDate } from '../BubbleDate'; import { MessageList } from '../MessageList'; diff --git a/apps/meteor/client/views/room/body/hooks/useHasNewMessages.ts b/apps/meteor/client/views/room/body/hooks/useHasNewMessages.ts index e8e68b8a9a6a9..2616e7ff1f9dd 100644 --- a/apps/meteor/client/views/room/body/hooks/useHasNewMessages.ts +++ b/apps/meteor/client/views/room/body/hooks/useHasNewMessages.ts @@ -1,10 +1,10 @@ import type { IMessage } from '@rocket.chat/core-typings'; import { isEditedMessage } from '@rocket.chat/core-typings'; +import { clientCallbacks } from '@rocket.chat/ui-client'; import type { MutableRefObject } from 'react'; import { useCallback, useEffect, useState } from 'react'; import { RoomHistoryManager } from '../../../../../app/ui-utils/client'; -import { callbacks } from '../../../../../lib/callbacks'; import { withThrottling } from '../../../../../lib/utils/highOrderFunctions'; import { useChat } from '../../contexts/ChatContext'; @@ -49,7 +49,7 @@ export const useHasNewMessages = ( }, [sendToBottomIfNecessary]); useEffect(() => { - callbacks.add( + clientCallbacks.add( 'streamNewMessage', (msg: IMessage) => { if (rid !== msg.rid || isEditedMessage(msg) || msg.tmid) { @@ -66,12 +66,12 @@ export const useHasNewMessages = ( setHasNewMessages(true); } }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, rid, ); return () => { - callbacks.remove('streamNewMessage', rid); + clientCallbacks.remove('streamNewMessage', rid); }; }, [isAtBottom, rid, sendToBottom, uid]); diff --git a/apps/meteor/client/views/room/contextualBar/ExportMessages/ExportMessages.tsx b/apps/meteor/client/views/room/contextualBar/ExportMessages/ExportMessages.tsx index df5f8a4d900de..7b1ce79b56b76 100644 --- a/apps/meteor/client/views/room/contextualBar/ExportMessages/ExportMessages.tsx +++ b/apps/meteor/client/views/room/contextualBar/ExportMessages/ExportMessages.tsx @@ -15,6 +15,7 @@ import { Callout, } from '@rocket.chat/fuselage'; import { useAutoFocus } from '@rocket.chat/fuselage-hooks'; +import { validateEmail } from '@rocket.chat/tools'; import { ContextualbarHeader, ContextualbarScrollableContent, @@ -32,7 +33,6 @@ import { useTranslation } from 'react-i18next'; import { useDownloadExportMutation } from './useDownloadExportMutation'; import { useExportMessagesAsPDFMutation } from './useExportMessagesAsPDFMutation'; import { useRoomExportMutation } from './useRoomExportMutation'; -import { validateEmail } from '../../../../../lib/emailValidator'; import UserAutoCompleteMultiple from '../../../../components/UserAutoCompleteMultiple'; import { roomCoordinator } from '../../../../lib/rooms/roomCoordinator'; import { SelectedMessageContext, useCountSelected } from '../../MessageList/contexts/SelectedMessagesContext'; diff --git a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadChat.tsx b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadChat.tsx index 2fe5a96eace7b..b75bbf924360a 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadChat.tsx +++ b/apps/meteor/client/views/room/contextualBar/Threads/components/ThreadChat.tsx @@ -1,12 +1,11 @@ import type { IMessage, IThreadMainMessage } from '@rocket.chat/core-typings'; import { isEditedMessage } from '@rocket.chat/core-typings'; import { Box, CheckBox, Field, FieldLabel, FieldRow } from '@rocket.chat/fuselage'; -import { ContextualbarContent } from '@rocket.chat/ui-client'; +import { clientCallbacks, ContextualbarContent } from '@rocket.chat/ui-client'; import { useMethod, useTranslation, useUserPreference, useRoomToolbox } from '@rocket.chat/ui-contexts'; import { useState, useEffect, useCallback, useId } from 'react'; import ThreadMessageList from './ThreadMessageList'; -import { callbacks } from '../../../../../../lib/callbacks'; import MessageListErrorBoundary from '../../../MessageList/MessageListErrorBoundary'; import DropTargetOverlay from '../../../body/DropTargetOverlay'; import { useFileUploadDropTarget } from '../../../body/hooks/useFileUploadDropTarget'; @@ -68,7 +67,7 @@ const ThreadChat = ({ mainMessage }: ThreadChatProps) => { const room = useRoom(); const readThreads = useMethod('readThreads'); useEffect(() => { - callbacks.add( + clientCallbacks.add( 'streamNewMessage', (msg: IMessage) => { if (room._id !== msg.rid || isEditedMessage(msg) || msg.tmid !== mainMessage._id) { @@ -77,12 +76,12 @@ const ThreadChat = ({ mainMessage }: ThreadChatProps) => { readThreads(mainMessage._id); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, `thread-${room._id}`, ); return () => { - callbacks.remove('streamNewMessage', `thread-${room._id}`); + clientCallbacks.remove('streamNewMessage', `thread-${room._id}`); }; }, [mainMessage._id, readThreads, room._id]); diff --git a/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessageListScrolling.ts b/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessageListScrolling.ts index 51ccda787b542..b853352e17796 100644 --- a/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessageListScrolling.ts +++ b/apps/meteor/client/views/room/contextualBar/Threads/hooks/useLegacyThreadMessageListScrolling.ts @@ -1,9 +1,9 @@ import type { IMessage } from '@rocket.chat/core-typings'; import { isEditedMessage } from '@rocket.chat/core-typings'; +import { clientCallbacks } from '@rocket.chat/ui-client'; import { useUserId } from '@rocket.chat/ui-contexts'; import { useEffect } from 'react'; -import { callbacks } from '../../../../../../lib/callbacks'; import { useListIsAtBottom } from '../../../body/hooks/useListIsAtBottom'; import { useRoom } from '../../../contexts/RoomContext'; @@ -12,7 +12,7 @@ export const useLegacyThreadMessageListScrolling = (mainMessage: IMessage) => { const room = useRoom(); const uid = useUserId(); useEffect(() => { - callbacks.add( + clientCallbacks.add( 'streamNewMessage', (msg: IMessage) => { if (room._id !== msg.rid || isEditedMessage(msg) || msg.tmid !== mainMessage._id) { @@ -24,12 +24,12 @@ export const useLegacyThreadMessageListScrolling = (mainMessage: IMessage) => { sendToBottomIfNecessary(); } }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, `thread-scroll-${room._id}`, ); return () => { - callbacks.remove('streamNewMessage', `thread-scroll-${room._id}`); + clientCallbacks.remove('streamNewMessage', `thread-scroll-${room._id}`); }; }, [room._id, atBottomRef, sendToBottomIfNecessary, uid, mainMessage._id]); diff --git a/apps/meteor/client/views/room/hooks/useUserInfoActions/useUserInfoActions.ts b/apps/meteor/client/views/room/hooks/useUserInfoActions/useUserInfoActions.ts index a4422e3d6765b..6540fd26e9373 100644 --- a/apps/meteor/client/views/room/hooks/useUserInfoActions/useUserInfoActions.ts +++ b/apps/meteor/client/views/room/hooks/useUserInfoActions/useUserInfoActions.ts @@ -1,6 +1,7 @@ import type { IRoom, IUser } from '@rocket.chat/core-typings'; import type { Icon } from '@rocket.chat/fuselage'; import type { GenericMenuItemProps } from '@rocket.chat/ui-client'; +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import { useLayoutHiddenActions } from '@rocket.chat/ui-contexts'; import type { ComponentProps } from 'react'; import { useMemo } from 'react'; @@ -18,7 +19,6 @@ import { useRemoveUserAction } from './actions/useRemoveUserAction'; import { useReportUser } from './actions/useReportUser'; import { useUserMediaCallAction } from './actions/useUserMediaCallAction'; import { useVideoCallAction } from './actions/useVideoCallAction'; -import { useEmbeddedLayout } from '../../../../hooks/useEmbeddedLayout'; export type UserInfoActionType = 'communication' | 'privileges' | 'management' | 'moderation'; diff --git a/apps/meteor/client/views/root/MainLayout/MainLayout.tsx b/apps/meteor/client/views/root/MainLayout/MainLayout.tsx index 1279c298afd22..907fb5a1df8d9 100644 --- a/apps/meteor/client/views/root/MainLayout/MainLayout.tsx +++ b/apps/meteor/client/views/root/MainLayout/MainLayout.tsx @@ -1,3 +1,4 @@ +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import type { ReactElement, ReactNode } from 'react'; import { Suspense } from 'react'; @@ -5,7 +6,6 @@ import AuthenticationCheck from './AuthenticationCheck'; import EmbeddedPreload from './EmbeddedPreload'; import Preload from './Preload'; import { useCustomScript } from './useCustomScript'; -import { useEmbeddedLayout } from '../../../hooks/useEmbeddedLayout'; type MainLayoutProps = { children?: ReactNode; diff --git a/apps/meteor/client/views/root/hooks/loggedIn/useNotifyUser.ts b/apps/meteor/client/views/root/hooks/loggedIn/useNotifyUser.ts index 93f8e1b78e036..6fcec028341e2 100644 --- a/apps/meteor/client/views/root/hooks/loggedIn/useNotifyUser.ts +++ b/apps/meteor/client/views/root/hooks/loggedIn/useNotifyUser.ts @@ -1,11 +1,11 @@ import type { AtLeast, INotificationDesktop, ISubscription, IUser } from '@rocket.chat/core-typings'; import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { useEmbeddedLayout } from '@rocket.chat/ui-client'; import { useCustomSound, useRouter, useStream, useUserPreference } from '@rocket.chat/ui-contexts'; import { useEffect } from 'react'; import { useDesktopNotification } from '../../../../hooks/notification/useDesktopNotification'; import { useNewMessageNotification } from '../../../../hooks/notification/useNewMessageNotification'; -import { useEmbeddedLayout } from '../../../../hooks/useEmbeddedLayout'; import { RoomManager } from '../../../../lib/RoomManager'; import { fireGlobalEvent } from '../../../../lib/utils/fireGlobalEvent'; diff --git a/apps/meteor/client/views/root/hooks/useAnalyticsEventTracking.ts b/apps/meteor/client/views/root/hooks/useAnalyticsEventTracking.ts index dd443b97e750b..24ba2175ac19f 100644 --- a/apps/meteor/client/views/root/hooks/useAnalyticsEventTracking.ts +++ b/apps/meteor/client/views/root/hooks/useAnalyticsEventTracking.ts @@ -1,8 +1,7 @@ +import { clientCallbacks } from '@rocket.chat/ui-client'; import { useRouter, useSetting, useUserId } from '@rocket.chat/ui-contexts'; import { useEffect } from 'react'; -import { callbacks } from '../../../../lib/callbacks'; - function trackEvent(category: string, action: string, label?: unknown) { const { _paq, ga } = window; @@ -32,17 +31,17 @@ export const useAnalyticsEventTracking = () => { ); useEffect(() => { - callbacks.add( + clientCallbacks.add( 'loginPageStateChange', (state) => { trackEvent('Navigation', 'Login Page State Change', state); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-login-state-change', ); return () => { - callbacks.remove('loginPageStateChange', 'analytics-login-state-change'); + clientCallbacks.remove('loginPageStateChange', 'analytics-login-state-change'); }; }, []); @@ -53,17 +52,17 @@ export const useAnalyticsEventTracking = () => { return; } - callbacks.add( + clientCallbacks.add( 'afterSaveMessage', (_message, { room }) => { trackEvent('Message', 'Send', `${room.name} (${room._id})`); }, - callbacks.priority.LOW, + clientCallbacks.priority.LOW, 'trackEvents', ); return () => { - callbacks.remove('afterSaveMessage', 'trackEvents'); + clientCallbacks.remove('afterSaveMessage', 'trackEvents'); }; }, [featuresMessages]); @@ -74,87 +73,87 @@ export const useAnalyticsEventTracking = () => { return; } - callbacks.add( + clientCallbacks.add( 'afterCreateChannel', (_owner, room) => { trackEvent('Room', 'Create', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-after-create-channel', ); - callbacks.add( + clientCallbacks.add( 'roomNameChanged', (room) => { trackEvent('Room', 'Changed Name', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-room-name-changed', ); - callbacks.add( + clientCallbacks.add( 'roomTopicChanged', (room) => { trackEvent('Room', 'Changed Topic', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-room-topic-changed', ); - callbacks.add( + clientCallbacks.add( 'roomAnnouncementChanged', (room) => { trackEvent('Room', 'Changed Announcement', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-room-announcement-changed', ); - callbacks.add( + clientCallbacks.add( 'roomTypeChanged', (room) => { trackEvent('Room', 'Changed Room Type', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-room-type-changed', ); - callbacks.add( + clientCallbacks.add( 'archiveRoom', (room) => { trackEvent('Room', 'Archived', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-archive-room', ); - callbacks.add( + clientCallbacks.add( 'unarchiveRoom', (room) => { trackEvent('Room', 'Unarchived', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-unarchive-room', ); - callbacks.add( + clientCallbacks.add( 'roomAvatarChanged', (room) => { trackEvent('Room', 'Changed Avatar', `${room.name} (${room._id})`); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-room-avatar-changed', ); return () => { - callbacks.remove('afterCreateChannel', 'analytics-after-create-channel'); - callbacks.remove('roomNameChanged', 'analytics-room-name-changed'); - callbacks.remove('roomTopicChanged', 'analytics-room-topic-changed'); - callbacks.remove('roomAnnouncementChanged', 'analytics-room-announcement-changed'); - callbacks.remove('roomTypeChanged', 'analytics-room-type-changed'); - callbacks.remove('archiveRoom', 'analytics-archive-room'); - callbacks.remove('unarchiveRoom', 'analytics-unarchive-room'); - callbacks.remove('roomAvatarChanged', 'analytics-room-avatar-changed'); + clientCallbacks.remove('afterCreateChannel', 'analytics-after-create-channel'); + clientCallbacks.remove('roomNameChanged', 'analytics-room-name-changed'); + clientCallbacks.remove('roomTopicChanged', 'analytics-room-topic-changed'); + clientCallbacks.remove('roomAnnouncementChanged', 'analytics-room-announcement-changed'); + clientCallbacks.remove('roomTypeChanged', 'analytics-room-type-changed'); + clientCallbacks.remove('archiveRoom', 'analytics-archive-room'); + clientCallbacks.remove('unarchiveRoom', 'analytics-unarchive-room'); + clientCallbacks.remove('roomAvatarChanged', 'analytics-room-avatar-changed'); }; }, [featuresRooms]); @@ -165,77 +164,77 @@ export const useAnalyticsEventTracking = () => { return; } - callbacks.add( + clientCallbacks.add( 'userRegistered', () => { trackEvent('User', 'Registered'); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'piwik-user-resitered', ); - callbacks.add( + clientCallbacks.add( 'usernameSet', () => { trackEvent('User', 'Username Set'); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'piweik-username-set', ); - callbacks.add( + clientCallbacks.add( 'userPasswordReset', () => { trackEvent('User', 'Reset Password'); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'piwik-user-password-reset', ); - callbacks.add( + clientCallbacks.add( 'userConfirmationEmailRequested', () => { trackEvent('User', 'Confirmation Email Requested'); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'piwik-user-confirmation-email-requested', ); - callbacks.add( + clientCallbacks.add( 'userForgotPasswordEmailRequested', () => { trackEvent('User', 'Forgot Password Email Requested'); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'piwik-user-forgot-password-email-requested', ); - callbacks.add( + clientCallbacks.add( 'userStatusManuallySet', (status) => { trackEvent('User', 'Status Manually Changed', status); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-user-status-manually-set', ); - callbacks.add( + clientCallbacks.add( 'userAvatarSet', (service) => { trackEvent('User', 'Avatar Changed', service); }, - callbacks.priority.MEDIUM, + clientCallbacks.priority.MEDIUM, 'analytics-user-avatar-set', ); return () => { - callbacks.remove('userRegistered', 'piwik-user-resitered'); - callbacks.remove('usernameSet', 'piweik-username-set'); - callbacks.remove('userPasswordReset', 'piwik-user-password-reset'); - callbacks.remove('userConfirmationEmailRequested', 'piwik-user-confirmation-email-requested'); - callbacks.remove('userForgotPasswordEmailRequested', 'piwik-user-forgot-password-email-requested'); - callbacks.remove('userStatusManuallySet', 'analytics-user-status-manually-set'); - callbacks.remove('userAvatarSet', 'analytics-user-avatar-set'); + clientCallbacks.remove('userRegistered', 'piwik-user-resitered'); + clientCallbacks.remove('usernameSet', 'piweik-username-set'); + clientCallbacks.remove('userPasswordReset', 'piwik-user-password-reset'); + clientCallbacks.remove('userConfirmationEmailRequested', 'piwik-user-confirmation-email-requested'); + clientCallbacks.remove('userForgotPasswordEmailRequested', 'piwik-user-forgot-password-email-requested'); + clientCallbacks.remove('userStatusManuallySet', 'analytics-user-status-manually-set'); + clientCallbacks.remove('userAvatarSet', 'analytics-user-avatar-set'); }; }, [featuresUsers]); diff --git a/apps/meteor/ee/app/authorization/server/callback.ts b/apps/meteor/ee/app/authorization/server/callback.ts index d86df56c2ec6c..4f6f506e3e1a2 100644 --- a/apps/meteor/ee/app/authorization/server/callback.ts +++ b/apps/meteor/ee/app/authorization/server/callback.ts @@ -2,7 +2,7 @@ import { MeteorError } from '@rocket.chat/core-services'; import { License } from '@rocket.chat/license'; import { validateUserRoles } from './validateUserRoles'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; License.onInstall(() => { diff --git a/apps/meteor/ee/app/canned-responses/server/hooks/onRemoveAgentDepartment.ts b/apps/meteor/ee/app/canned-responses/server/hooks/onRemoveAgentDepartment.ts index 8122fd4c5fa77..a05917dcf3fd8 100644 --- a/apps/meteor/ee/app/canned-responses/server/hooks/onRemoveAgentDepartment.ts +++ b/apps/meteor/ee/app/canned-responses/server/hooks/onRemoveAgentDepartment.ts @@ -1,7 +1,7 @@ import { CannedResponse } from '@rocket.chat/models'; import notifications from '../../../../../app/notifications/server/lib/Notifications'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.removeAgentDepartment', diff --git a/apps/meteor/ee/app/canned-responses/server/hooks/onSaveAgentDepartment.ts b/apps/meteor/ee/app/canned-responses/server/hooks/onSaveAgentDepartment.ts index 8ad879d909b6e..348fe23a674d5 100644 --- a/apps/meteor/ee/app/canned-responses/server/hooks/onSaveAgentDepartment.ts +++ b/apps/meteor/ee/app/canned-responses/server/hooks/onSaveAgentDepartment.ts @@ -1,7 +1,7 @@ import { CannedResponse } from '@rocket.chat/models'; import notifications from '../../../../../app/notifications/server/lib/Notifications'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.saveAgentDepartment', diff --git a/apps/meteor/ee/app/license/server/startup.ts b/apps/meteor/ee/app/license/server/startup.ts index ce67db609c551..b81dc8191b43c 100644 --- a/apps/meteor/ee/app/license/server/startup.ts +++ b/apps/meteor/ee/app/license/server/startup.ts @@ -9,7 +9,7 @@ import { getAppCount } from './lib/getAppCount'; import { syncWorkspace } from '../../../../app/cloud/server/functions/syncWorkspace'; import { notifyOnSettingChangedById } from '../../../../app/lib/server/lib/notifyListener'; import { settings } from '../../../../app/settings/server'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; export const startLicense = async () => { settings.watch('Site_Url', (value) => { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToAgent.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToAgent.ts index 933cb5b5d9fff..8316251403f8d 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToAgent.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToAgent.ts @@ -1,6 +1,6 @@ import { LivechatRooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.afterForwardChatToAgent', diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToDepartment.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToDepartment.ts index 063aeb1c4a109..cd69272d33168 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToDepartment.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterForwardChatToDepartment.ts @@ -1,7 +1,7 @@ import type { ILivechatDepartment, IOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatRooms, LivechatDepartment } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { cbLogger } from '../lib/logger'; callbacks.add( diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHold.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHold.ts index 11a9593b0c374..bb38b53773602 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHold.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHold.ts @@ -1,7 +1,7 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; import { AutoCloseOnHoldScheduler } from '../lib/AutoCloseOnHoldScheduler'; import { cbLogger } from '../lib/logger'; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHoldChatResumed.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHoldChatResumed.ts index 0263efa5fe391..9ebdfcacb539a 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHoldChatResumed.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterOnHoldChatResumed.ts @@ -1,6 +1,6 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { AutoCloseOnHoldScheduler } from '../lib/AutoCloseOnHoldScheduler'; import { cbLogger } from '../lib/logger'; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterRemoveDepartment.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterRemoveDepartment.ts index 64d92cca5f1e1..4c692c72edbf3 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterRemoveDepartment.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterRemoveDepartment.ts @@ -1,7 +1,7 @@ import type { AtLeast, ILivechatAgent, ILivechatDepartment } from '@rocket.chat/core-typings'; import { LivechatDepartment, LivechatUnit } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { cbLogger } from '../lib/logger'; const afterRemoveDepartment = async (options: { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterReturnRoomAsInquiry.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterReturnRoomAsInquiry.ts index cecf6b5e7f4ae..7b64957bbfa00 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterReturnRoomAsInquiry.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterReturnRoomAsInquiry.ts @@ -2,7 +2,7 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; settings.watch('Livechat_abandoned_rooms_action', (value) => { if (!value || value === 'none') { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterTagRemoved.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterTagRemoved.ts index 6066647c79a44..cff97b5cfac0b 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterTagRemoved.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/afterTagRemoved.ts @@ -1,6 +1,6 @@ import { CannedResponse } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.afterTagRemoved', diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/applyRoomRestrictions.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/applyRoomRestrictions.ts index 81799e89170fb..92cf49e763402 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/applyRoomRestrictions.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/applyRoomRestrictions.ts @@ -1,7 +1,7 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import type { FilterOperators } from 'mongodb'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { restrictQuery } from '../lib/restrictQuery'; callbacks.add( diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/applySimultaneousChatsRestrictions.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/applySimultaneousChatsRestrictions.ts index 2de13028e12e4..bc8bf4a595ec4 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/applySimultaneousChatsRestrictions.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/applySimultaneousChatsRestrictions.ts @@ -3,7 +3,7 @@ import { LivechatDepartment } from '@rocket.chat/models'; import type { Filter } from 'mongodb'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; export async function getChatLimitsQuery(departmentId?: string): Promise> { const limitFilter: Filter = []; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeForwardRoomToDepartment.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeForwardRoomToDepartment.ts index 5a16b7014bd6b..8f0f31b7b1489 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeForwardRoomToDepartment.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeForwardRoomToDepartment.ts @@ -2,7 +2,7 @@ import type { ILivechatDepartment } from '@rocket.chat/core-typings'; import { LivechatDepartment } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.beforeForwardRoomToDepartment', diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeJoinRoom.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeJoinRoom.ts index b17f0281d5c00..4e6f7b6303d3e 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeJoinRoom.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeJoinRoom.ts @@ -3,7 +3,7 @@ import type { IUser, IRoom } from '@rocket.chat/core-typings'; import { Users } from '@rocket.chat/models'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { isAgentWithinChatLimits } from '../lib/Helper'; callbacks.add( diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeListTags.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeListTags.ts index d496dc73283f1..f6fbdac43e6ad 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeListTags.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeListTags.ts @@ -1,6 +1,6 @@ import { LivechatTag } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.beforeListTags', diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeNewInquiry.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeNewInquiry.ts index 21ee8c8b5e567..92a3fe31c591b 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeNewInquiry.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/beforeNewInquiry.ts @@ -2,7 +2,7 @@ import type { ILivechatInquiryRecord, ILivechatPriority, IOmnichannelServiceLeve import { LivechatPriority, OmnichannelServiceLevelAgreements } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.beforeInquiry', diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/checkAgentBeforeTakeInquiry.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/checkAgentBeforeTakeInquiry.ts index b0f874d4a174a..a76cc7871f45b 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/checkAgentBeforeTakeInquiry.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/checkAgentBeforeTakeInquiry.ts @@ -3,7 +3,7 @@ import { Users } from '@rocket.chat/models'; import { allowAgentSkipQueue } from '../../../../../app/livechat/server/lib/Helper'; import { checkOnlineAgents } from '../../../../../app/livechat/server/lib/service-status'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { isAgentWithinChatLimits } from '../lib/Helper'; import { cbLogger } from '../lib/logger'; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/handleNextAgentPreferredEvents.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/handleNextAgentPreferredEvents.ts index 7aa1f5acd0f18..f7ed6e38282c7 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/handleNextAgentPreferredEvents.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/handleNextAgentPreferredEvents.ts @@ -6,7 +6,7 @@ import { RoutingManager } from '../../../../../app/livechat/server/lib/RoutingMa import { migrateVisitorIfMissingContact } from '../../../../../app/livechat/server/lib/contacts/migrateVisitorIfMissingContact'; import { checkDefaultAgentOnNewRoom } from '../../../../../app/livechat/server/lib/hooks'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; const normalizeDefaultAgent = (agent?: Pick | null): SelectedAgent | undefined => { if (!agent) { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/manageDepartmentUnit.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/manageDepartmentUnit.ts index 86c214e60a52b..8003d7d1cd044 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/manageDepartmentUnit.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/manageDepartmentUnit.ts @@ -3,7 +3,7 @@ import { LivechatDepartment, LivechatUnit } from '@rocket.chat/models'; import { getUnitsFromUser } from '@rocket.chat/omni-core-ee'; import { hasAnyRoleAsync } from '../../../../../app/authorization/server/functions/hasRole'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; export const manageDepartmentUnit = async ({ userId, departmentId, unitId }: { userId: string; departmentId: string; unitId: string }) => { const accessibleUnits = await getUnitsFromUser(userId); diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onAgentAssignmentFailed.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onAgentAssignmentFailed.ts index d27f317d3b18e..cb0c4f14c8c91 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onAgentAssignmentFailed.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onAgentAssignmentFailed.ts @@ -1,7 +1,7 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; const handleOnAgentAssignmentFailed = async ( room: IOmnichannelRoom, diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onBusinessHourStart.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onBusinessHourStart.ts index 5039088e2b173..3dcdc77f7da45 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onBusinessHourStart.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onBusinessHourStart.ts @@ -1,7 +1,7 @@ import { LivechatBusinessHourBehaviors } from '@rocket.chat/core-typings'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { MultipleBusinessHoursBehavior } from '../business-hour/Multiple'; callbacks.add( diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onCloseLivechat.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onCloseLivechat.ts index fd6fd9b8109ce..ada48cd8701d4 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onCloseLivechat.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onCloseLivechat.ts @@ -2,7 +2,7 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { LivechatRooms } from '@rocket.chat/models'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { AutoCloseOnHoldScheduler } from '../lib/AutoCloseOnHoldScheduler'; import { debouncedDispatchWaitingQueueStatus } from '../lib/Helper'; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onLoadForwardDepartmentRestrictions.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onLoadForwardDepartmentRestrictions.ts index 6c2bac798096d..167ee89ec50e7 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onLoadForwardDepartmentRestrictions.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onLoadForwardDepartmentRestrictions.ts @@ -1,7 +1,7 @@ import type { ILivechatDepartment } from '@rocket.chat/core-typings'; import { LivechatDepartment } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'livechat.onLoadForwardDepartmentRestrictions', diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onSaveVisitorInfo.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onSaveVisitorInfo.ts index 9b3f79f6ce3f5..d935e5248beb6 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onSaveVisitorInfo.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onSaveVisitorInfo.ts @@ -1,7 +1,7 @@ import type { IOmnichannelRoom, IOmnichannelServiceLevelAgreements, IUser } from '@rocket.chat/core-typings'; import { OmnichannelServiceLevelAgreements } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { removePriorityFromRoom, updateRoomPriority } from '../api/lib/priorities'; import { removeRoomSLA, updateRoomSLA } from '../api/lib/sla'; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onTransferFailure.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onTransferFailure.ts index 449b240bbccff..17fc7e6503c4a 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/onTransferFailure.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/onTransferFailure.ts @@ -4,7 +4,7 @@ import { LivechatDepartment } from '@rocket.chat/models'; import { forwardRoomToDepartment } from '../../../../../app/livechat/server/lib/Helper'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { cbLogger } from '../lib/logger'; const onTransferFailure = async ( diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/resumeOnHold.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/resumeOnHold.ts index 249f988c76847..85239c4fe1fc9 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/resumeOnHold.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/resumeOnHold.ts @@ -4,7 +4,7 @@ import { isMessageFromVisitor, isEditedMessage } from '@rocket.chat/core-typings import { LivechatRooms, LivechatVisitors, Users } from '@rocket.chat/models'; import { callbackLogger } from '../../../../../app/livechat/server/lib/logger'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; const resumeOnHoldCommentAndUser = async (room: IOmnichannelRoom): Promise<{ comment: string; resumedBy: IUser }> => { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/scheduleAutoTransfer.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/scheduleAutoTransfer.ts index 4f078214c1e8f..3e6efc71e330f 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/scheduleAutoTransfer.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/scheduleAutoTransfer.ts @@ -2,7 +2,7 @@ import type { IMessage, IOmnichannelRoom } from '@rocket.chat/core-typings'; import type { CloseRoomParams } from '../../../../../app/livechat/server/lib/localTypes'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { AutoTransferChatScheduler } from '../lib/AutoTransferChatScheduler'; type LivechatCloseCallbackParams = { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/sendPdfTranscriptOnClose.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/sendPdfTranscriptOnClose.ts index 159945e57c7a9..9a043d59133da 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/sendPdfTranscriptOnClose.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/sendPdfTranscriptOnClose.ts @@ -2,7 +2,7 @@ import type { IOmnichannelRoom } from '@rocket.chat/core-typings'; import { isOmnichannelRoom } from '@rocket.chat/core-typings'; import type { CloseRoomParams } from '../../../../../app/livechat/server/lib/localTypes'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { requestPdfTranscript } from '../lib/requestPdfTranscript'; type LivechatCloseCallbackParams = { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/hooks/setPredictedVisitorAbandonmentTime.ts b/apps/meteor/ee/app/livechat-enterprise/server/hooks/setPredictedVisitorAbandonmentTime.ts index 0fc630b5c260c..93ee3a28bb2fb 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/hooks/setPredictedVisitorAbandonmentTime.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/hooks/setPredictedVisitorAbandonmentTime.ts @@ -4,7 +4,7 @@ import moment from 'moment'; import { markRoomResponded } from '../../../../../app/livechat/server/hooks/markRoomResponded'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { setPredictedVisitorAbandonmentTime } from '../lib/Helper'; function shouldSaveInactivity(message: IMessage): boolean { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/lib/Helper.ts b/apps/meteor/ee/app/livechat-enterprise/server/lib/Helper.ts index d509514645a28..d4a1bcc89f9b4 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/lib/Helper.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/lib/Helper.ts @@ -24,7 +24,7 @@ import { logger } from './logger'; import { getOmniChatSortQuery } from '../../../../../app/livechat/lib/inquiries'; import { getInquirySortMechanismSetting } from '../../../../../app/livechat/server/lib/settings'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; type QueueInfo = { message: { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/lib/LivechatEnterprise.ts b/apps/meteor/ee/app/livechat-enterprise/server/lib/LivechatEnterprise.ts index 545b6ecec0d76..57f29a4d87ede 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/lib/LivechatEnterprise.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/lib/LivechatEnterprise.ts @@ -7,7 +7,7 @@ import { Meteor } from 'meteor/meteor'; import { updateSLAInquiries } from './Helper'; import { removeSLAFromRooms } from './SlaHelper'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { addUserRolesAsync } from '../../../../../server/lib/roles/addUserRoles'; import { removeUserFromRolesAsync } from '../../../../../server/lib/roles/removeUserFromRoles'; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/lib/SlaHelper.ts b/apps/meteor/ee/app/livechat-enterprise/server/lib/SlaHelper.ts index 2fda0cabcee6f..9bcda4bbc33dd 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/lib/SlaHelper.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/lib/SlaHelper.ts @@ -7,7 +7,7 @@ import { notifyOnLivechatInquiryChangedByRoom, notifyOnLivechatInquiryChanged, } from '../../../../../app/lib/server/lib/notifyListener'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; export const removeSLAFromRooms = async (slaId: string, userId: string) => { const extraQuery = await callbacks.run('livechat.applyRoomRestrictions', {}, { userId }); diff --git a/apps/meteor/ee/app/livechat-enterprise/server/lib/VisitorInactivityMonitor.ts b/apps/meteor/ee/app/livechat-enterprise/server/lib/VisitorInactivityMonitor.ts index 7bd93d8f3716e..d9e78ea4026fd 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/lib/VisitorInactivityMonitor.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/lib/VisitorInactivityMonitor.ts @@ -8,7 +8,7 @@ import { schedulerLogger } from './logger'; import { notifyOnRoomChangedById } from '../../../../../app/lib/server/lib/notifyListener'; import { closeRoom } from '../../../../../app/livechat/server/lib/closeRoom'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; const isPromiseRejectedResult = (result: any): result is PromiseRejectedResult => result && result.status === 'rejected'; diff --git a/apps/meteor/ee/app/livechat-enterprise/server/methods/resumeOnHold.ts b/apps/meteor/ee/app/livechat-enterprise/server/methods/resumeOnHold.ts index 1831ddc98783c..55b5c1a772df0 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/methods/resumeOnHold.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/methods/resumeOnHold.ts @@ -7,7 +7,7 @@ import { Meteor } from 'meteor/meteor'; import { methodDeprecationLogger } from '../../../../../app/lib/server/lib/deprecationWarningLogger'; import { RoutingManager } from '../../../../../app/livechat/server/lib/RoutingManager'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { i18n } from '../../../../../server/lib/i18n'; async function resolveOnHoldCommentInfo(options: { clientAction: boolean }, room: any, onHoldChatResumedBy: any): Promise { diff --git a/apps/meteor/ee/app/livechat-enterprise/server/services/omnichannel.internalService.ts b/apps/meteor/ee/app/livechat-enterprise/server/services/omnichannel.internalService.ts index 0f8bbc283ced0..8c5f9b4927f24 100644 --- a/apps/meteor/ee/app/livechat-enterprise/server/services/omnichannel.internalService.ts +++ b/apps/meteor/ee/app/livechat-enterprise/server/services/omnichannel.internalService.ts @@ -14,7 +14,7 @@ import { dispatchAgentDelegated } from '../../../../../app/livechat/server/lib/H import { queueInquiry } from '../../../../../app/livechat/server/lib/QueueManager'; import { RoutingManager } from '../../../../../app/livechat/server/lib/RoutingManager'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; export class OmnichannelEE extends ServiceClassInternal implements IOmnichannelEEService { protected name = 'omnichannel-ee'; diff --git a/apps/meteor/ee/app/message-read-receipt/server/hooks/afterDeleteRoom.ts b/apps/meteor/ee/app/message-read-receipt/server/hooks/afterDeleteRoom.ts index 153f408f835d1..09401e2d53797 100644 --- a/apps/meteor/ee/app/message-read-receipt/server/hooks/afterDeleteRoom.ts +++ b/apps/meteor/ee/app/message-read-receipt/server/hooks/afterDeleteRoom.ts @@ -1,6 +1,6 @@ import { ReadReceipts } from '@rocket.chat/models'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; callbacks.add( 'afterDeleteRoom', diff --git a/apps/meteor/ee/app/message-read-receipt/server/hooks/afterReadMessages.ts b/apps/meteor/ee/app/message-read-receipt/server/hooks/afterReadMessages.ts index d18834ac70865..0d4f419c525cc 100644 --- a/apps/meteor/ee/app/message-read-receipt/server/hooks/afterReadMessages.ts +++ b/apps/meteor/ee/app/message-read-receipt/server/hooks/afterReadMessages.ts @@ -2,7 +2,7 @@ import { MessageReads } from '@rocket.chat/core-services'; import { type IUser, type IRoom, type IMessage, isRoomFederated } from '@rocket.chat/core-typings'; import { settings } from '../../../../../app/settings/server'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { ReadReceipt } from '../../../../server/lib/message-read-receipt/ReadReceipt'; callbacks.add( diff --git a/apps/meteor/ee/app/message-read-receipt/server/hooks/afterSaveMessage.ts b/apps/meteor/ee/app/message-read-receipt/server/hooks/afterSaveMessage.ts index 62623b1a4a1c2..1323f324bc8ba 100644 --- a/apps/meteor/ee/app/message-read-receipt/server/hooks/afterSaveMessage.ts +++ b/apps/meteor/ee/app/message-read-receipt/server/hooks/afterSaveMessage.ts @@ -1,6 +1,6 @@ import { isEditedMessage } from '@rocket.chat/core-typings'; -import { callbacks } from '../../../../../lib/callbacks'; +import { callbacks } from '../../../../../server/lib/callbacks'; import { ReadReceipt } from '../../../../server/lib/message-read-receipt/ReadReceipt'; callbacks.add( diff --git a/apps/meteor/ee/server/configuration/ldap.ts b/apps/meteor/ee/server/configuration/ldap.ts index 055401f40b053..026a7f964a7d4 100644 --- a/apps/meteor/ee/server/configuration/ldap.ts +++ b/apps/meteor/ee/server/configuration/ldap.ts @@ -6,7 +6,7 @@ import { isValidCron } from 'cron-validator'; import { Meteor } from 'meteor/meteor'; import { settings } from '../../../app/settings/server'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import type { LDAPConnection } from '../../../server/lib/ldap/Connection'; import { logger } from '../../../server/lib/ldap/Logger'; import { LDAPEEManager } from '../lib/ldap/Manager'; diff --git a/apps/meteor/ee/server/configuration/oauth.ts b/apps/meteor/ee/server/configuration/oauth.ts index 2994f480675fb..7a0ff5946eae9 100644 --- a/apps/meteor/ee/server/configuration/oauth.ts +++ b/apps/meteor/ee/server/configuration/oauth.ts @@ -5,7 +5,7 @@ import { Roles } from '@rocket.chat/models'; import { capitalize } from '@rocket.chat/string-helpers'; import { settings } from '../../../app/settings/server'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { OAuthEEManager } from '../lib/oauth/Manager'; import { syncUserRoles } from '../lib/syncUserRoles'; diff --git a/apps/meteor/ee/server/configuration/videoConference.ts b/apps/meteor/ee/server/configuration/videoConference.ts index 2fd6e31fba950..3670aeeafedf1 100644 --- a/apps/meteor/ee/server/configuration/videoConference.ts +++ b/apps/meteor/ee/server/configuration/videoConference.ts @@ -5,7 +5,7 @@ import { License } from '@rocket.chat/license'; import { Rooms, Subscriptions } from '@rocket.chat/models'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { videoConfTypes } from '../../../server/lib/videoConfTypes'; import { addSettings } from '../settings/video-conference'; diff --git a/apps/meteor/ee/server/hooks/federation/index.ts b/apps/meteor/ee/server/hooks/federation/index.ts index 01f94f31e5024..fa2433a9aa424 100644 --- a/apps/meteor/ee/server/hooks/federation/index.ts +++ b/apps/meteor/ee/server/hooks/federation/index.ts @@ -4,12 +4,12 @@ import type { IRoomNativeFederated, IMessage, IRoom, IUser } from '@rocket.chat/ import { validateFederatedUsername } from '@rocket.chat/federation-matrix'; import { Rooms } from '@rocket.chat/models'; -import { callbacks } from '../../../../lib/callbacks'; -import { afterLeaveRoomCallback } from '../../../../lib/callbacks/afterLeaveRoomCallback'; -import { afterRemoveFromRoomCallback } from '../../../../lib/callbacks/afterRemoveFromRoomCallback'; -import { beforeAddUsersToRoom, beforeAddUserToRoom } from '../../../../lib/callbacks/beforeAddUserToRoom'; -import { beforeChangeRoomRole } from '../../../../lib/callbacks/beforeChangeRoomRole'; -import { prepareCreateRoomCallback } from '../../../../lib/callbacks/beforeCreateRoomCallback'; +import { callbacks } from '../../../../server/lib/callbacks'; +import { afterLeaveRoomCallback } from '../../../../server/lib/callbacks/afterLeaveRoomCallback'; +import { afterRemoveFromRoomCallback } from '../../../../server/lib/callbacks/afterRemoveFromRoomCallback'; +import { beforeAddUsersToRoom, beforeAddUserToRoom } from '../../../../server/lib/callbacks/beforeAddUserToRoom'; +import { beforeChangeRoomRole } from '../../../../server/lib/callbacks/beforeChangeRoomRole'; +import { prepareCreateRoomCallback } from '../../../../server/lib/callbacks/beforeCreateRoomCallback'; import { FederationActions } from '../../../../server/services/room/hooks/BeforeFederationActions'; // callbacks.add('federation-event-example', async () => FederationMatrix.handleExample(), callbacks.priority.MEDIUM, 'federation-event-example-handler'); diff --git a/apps/meteor/ee/server/lib/audit/methods.ts b/apps/meteor/ee/server/lib/audit/methods.ts index 429309cb8edb9..27b97e1b8f46a 100644 --- a/apps/meteor/ee/server/lib/audit/methods.ts +++ b/apps/meteor/ee/server/lib/audit/methods.ts @@ -9,8 +9,8 @@ import type { Filter } from 'mongodb'; import { hasPermissionAsync } from '../../../../app/authorization/server/functions/hasPermission'; import { updateCounter } from '../../../../app/statistics/server'; -import { callbacks } from '../../../../lib/callbacks'; import { isTruthy } from '../../../../lib/isTruthy'; +import { callbacks } from '../../../../server/lib/callbacks'; import { i18n } from '../../../../server/lib/i18n'; const getValue = (room: IRoom | null) => room && { rids: [room._id], name: room.name }; diff --git a/apps/meteor/ee/server/lib/engagementDashboard/startup.ts b/apps/meteor/ee/server/lib/engagementDashboard/startup.ts index 264e19d907b19..c6615740e8a7e 100644 --- a/apps/meteor/ee/server/lib/engagementDashboard/startup.ts +++ b/apps/meteor/ee/server/lib/engagementDashboard/startup.ts @@ -1,6 +1,6 @@ import { fillFirstDaysOfMessagesIfNeeded, handleMessagesDeleted, handleMessagesSent } from './messages'; import { fillFirstDaysOfUsersIfNeeded, handleUserCreated } from './users'; -import { callbacks } from '../../../../lib/callbacks'; +import { callbacks } from '../../../../server/lib/callbacks'; export const attachCallbacks = (): void => { callbacks.add( diff --git a/apps/meteor/ee/server/startup/maxRoomsPerGuest.ts b/apps/meteor/ee/server/startup/maxRoomsPerGuest.ts index bfcb1ba5fa8b6..4172e46b594a6 100644 --- a/apps/meteor/ee/server/startup/maxRoomsPerGuest.ts +++ b/apps/meteor/ee/server/startup/maxRoomsPerGuest.ts @@ -1,7 +1,7 @@ import { License } from '@rocket.chat/license'; import { Meteor } from 'meteor/meteor'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../../server/lib/callbacks'; import { i18n } from '../../../server/lib/i18n'; callbacks.add( diff --git a/apps/meteor/lib/emailValidator.ts b/apps/meteor/lib/emailValidator.ts deleted file mode 100644 index fd9237f68ec05..0000000000000 --- a/apps/meteor/lib/emailValidator.ts +++ /dev/null @@ -1,13 +0,0 @@ -export const validateEmail = (email: string, options: { style: string } = { style: 'basic' }): boolean => { - const basicEmailRegex = /^[^@]+@[^@]+$/; - const rfcEmailRegex = - /^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/; - - switch (options.style) { - case 'rfc': - return rfcEmailRegex.test(email); - case 'basic': - default: - return basicEmailRegex.test(email); - } -}; diff --git a/apps/meteor/server/configuration/ldap.ts b/apps/meteor/server/configuration/ldap.ts index f88600b224067..9cec49f5b4bf8 100644 --- a/apps/meteor/server/configuration/ldap.ts +++ b/apps/meteor/server/configuration/ldap.ts @@ -2,7 +2,7 @@ import { LDAP } from '@rocket.chat/core-services'; import { Accounts } from 'meteor/accounts-base'; import type { ICachedSettings } from '../../app/settings/server/CachedSettings'; -import { callbacks } from '../../lib/callbacks'; +import { callbacks } from '../lib/callbacks'; export async function configureLDAP(settings: ICachedSettings): Promise { // Register ldap login handler diff --git a/apps/meteor/server/features/EmailInbox/EmailInbox_Outgoing.ts b/apps/meteor/server/features/EmailInbox/EmailInbox_Outgoing.ts index 79ebda20b38cd..8ff7e4a0c5821 100644 --- a/apps/meteor/server/features/EmailInbox/EmailInbox_Outgoing.ts +++ b/apps/meteor/server/features/EmailInbox/EmailInbox_Outgoing.ts @@ -12,7 +12,7 @@ import { sendMessage } from '../../../app/lib/server/functions/sendMessage'; import { notifyOnMessageChange } from '../../../app/lib/server/lib/notifyListener'; import { settings } from '../../../app/settings/server'; import { slashCommands } from '../../../app/utils/server/slashCommand'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../lib/callbacks'; import { i18n } from '../../lib/i18n'; const livechatQuoteRegExp = /^\[\s\]\(https?:\/\/.+\/live\/.+\?msg=(?.+?)\)\s(?.+)/s; diff --git a/apps/meteor/lib/callbacks.spec.ts b/apps/meteor/server/lib/callbacks.spec.ts similarity index 100% rename from apps/meteor/lib/callbacks.spec.ts rename to apps/meteor/server/lib/callbacks.spec.ts diff --git a/apps/meteor/lib/callbacks.ts b/apps/meteor/server/lib/callbacks.ts similarity index 92% rename from apps/meteor/lib/callbacks.ts rename to apps/meteor/server/lib/callbacks.ts index c914e60d940a7..91ad655c5bc11 100644 --- a/apps/meteor/lib/callbacks.ts +++ b/apps/meteor/server/lib/callbacks.ts @@ -25,9 +25,9 @@ import type { Updater } from '@rocket.chat/models'; import type { FilterOperators } from 'mongodb'; import { Callbacks } from './callbacks/callbacksBase'; -import type { ILoginAttempt } from '../app/authentication/server/ILoginAttempt'; -import type { IBusinessHourBehavior } from '../app/livechat/server/business-hour/AbstractBusinessHour'; -import type { CloseRoomParams } from '../app/livechat/server/lib/localTypes'; +import type { ILoginAttempt } from '../../app/authentication/server/ILoginAttempt'; +import type { IBusinessHourBehavior } from '../../app/livechat/server/business-hour/AbstractBusinessHour'; +import type { CloseRoomParams } from '../../app/livechat/server/lib/localTypes'; /** * Callbacks returning void, like event listeners. @@ -85,7 +85,6 @@ interface EventLikeCallbackSignatures { params: { user: IUser; reaction: string; shouldReact: boolean; oldMessage: IMessage; room: IRoom }, ) => void; 'onJoinVideoConference': (callId: VideoConference['_id'], userId?: IUser['_id']) => Promise; - 'usernameSet': () => void; 'beforeJoinRoom': (user: IUser, room: IRoom) => void; 'beforeMuteUser': (users: { mutedUser: IUser; fromUser: IUser }, room: IRoom) => void; 'afterMuteUser': (users: { mutedUser: IUser; fromUser: IUser }, room: IRoom) => void; @@ -110,14 +109,11 @@ type ChainedCallbackSignatures = { 'livechat.beforeForwardRoomToDepartment': ( options: T, ) => Promise; - 'livechat.onLoadForwardDepartmentRestrictions': (params: { departmentId: string }) => Record; - 'livechat.saveInfo': ( newRoom: IOmnichannelRoom, props: { user: Required>; oldRoom: IOmnichannelRoom }, ) => IOmnichannelRoom; - 'afterCreateUser': (user: AtLeast) => IUser; 'afterDeleteRoom': (rid: IRoom['_id']) => IRoom['_id']; 'livechat:afterOnHold': (room: Pick) => Pick; @@ -193,20 +189,13 @@ type ChainedCallbackSignatures = { options: { forwardingToDepartment?: { oldDepartmentId?: string; transferData?: any }; clientAction?: boolean }; }, ) => Promise<(IOmnichannelRoom & { chatQueued: boolean }) | undefined>; - 'livechat.beforeInquiry': (data: IOmnichannelInquiryExtraData) => Partial; - 'roomNameChanged': (room: IRoom) => void; - 'roomTopicChanged': (room: IRoom) => void; - 'roomAnnouncementChanged': (room: IRoom) => void; - 'roomTypeChanged': (room: IRoom) => void; - 'archiveRoom': (room: IRoom) => void; - 'unarchiveRoom': (room: IRoom) => void; - 'roomAvatarChanged': (room: IRoom) => void; 'beforeGetMentions': (mentionIds: string[], teamMentions: MessageMention[]) => Promise; 'livechat.manageDepartmentUnit': (params: { userId: string; departmentId: string; unitId?: string }) => void; 'afterRoomTopicChange': ( params: undefined, { room, topic, user }: { room: IRoom; topic: string; user: Pick }, ) => void; + 'livechat.beforeInquiry': (data: IOmnichannelInquiryExtraData) => Partial; }; export type Hook = @@ -226,22 +215,11 @@ export type Hook = | 'livechat.closeRoom' | 'livechat.offlineMessage' | 'livechat.manageDepartmentUnit' - | 'loginPageStateChange' | 'mapLDAPUserData' | 'onCreateUser' | 'onLDAPLogin' - | 'onValidateLogin' - | 'openBroadcast' | 'renderNotification' - | 'streamMessage' - | 'streamNewMessage' - | 'userAvatarSet' - | 'userConfirmationEmailRequested' - | 'userForgotPasswordEmailRequested' - | 'usernameSet' - | 'userPasswordReset' | 'userRegistered' - | 'userStatusManuallySet' | 'test'; /** diff --git a/apps/meteor/lib/callbacks/afterLeaveRoomCallback.ts b/apps/meteor/server/lib/callbacks/afterLeaveRoomCallback.ts similarity index 100% rename from apps/meteor/lib/callbacks/afterLeaveRoomCallback.ts rename to apps/meteor/server/lib/callbacks/afterLeaveRoomCallback.ts diff --git a/apps/meteor/lib/callbacks/afterLogoutCleanUpCallback.ts b/apps/meteor/server/lib/callbacks/afterLogoutCleanUpCallback.ts similarity index 100% rename from apps/meteor/lib/callbacks/afterLogoutCleanUpCallback.ts rename to apps/meteor/server/lib/callbacks/afterLogoutCleanUpCallback.ts diff --git a/apps/meteor/lib/callbacks/afterRemoveFromRoomCallback.ts b/apps/meteor/server/lib/callbacks/afterRemoveFromRoomCallback.ts similarity index 100% rename from apps/meteor/lib/callbacks/afterRemoveFromRoomCallback.ts rename to apps/meteor/server/lib/callbacks/afterRemoveFromRoomCallback.ts diff --git a/apps/meteor/lib/callbacks/beforeAddUserToRoom.ts b/apps/meteor/server/lib/callbacks/beforeAddUserToRoom.ts similarity index 100% rename from apps/meteor/lib/callbacks/beforeAddUserToRoom.ts rename to apps/meteor/server/lib/callbacks/beforeAddUserToRoom.ts diff --git a/apps/meteor/lib/callbacks/beforeChangeRoomRole.ts b/apps/meteor/server/lib/callbacks/beforeChangeRoomRole.ts similarity index 100% rename from apps/meteor/lib/callbacks/beforeChangeRoomRole.ts rename to apps/meteor/server/lib/callbacks/beforeChangeRoomRole.ts diff --git a/apps/meteor/lib/callbacks/beforeCreateRoomCallback.ts b/apps/meteor/server/lib/callbacks/beforeCreateRoomCallback.ts similarity index 100% rename from apps/meteor/lib/callbacks/beforeCreateRoomCallback.ts rename to apps/meteor/server/lib/callbacks/beforeCreateRoomCallback.ts diff --git a/apps/meteor/lib/callbacks/beforeCreateUserCallback.ts b/apps/meteor/server/lib/callbacks/beforeCreateUserCallback.ts similarity index 100% rename from apps/meteor/lib/callbacks/beforeCreateUserCallback.ts rename to apps/meteor/server/lib/callbacks/beforeCreateUserCallback.ts diff --git a/apps/meteor/lib/callbacks/beforeLeaveRoomCallback.ts b/apps/meteor/server/lib/callbacks/beforeLeaveRoomCallback.ts similarity index 100% rename from apps/meteor/lib/callbacks/beforeLeaveRoomCallback.ts rename to apps/meteor/server/lib/callbacks/beforeLeaveRoomCallback.ts diff --git a/apps/meteor/lib/callbacks/callbacksBase.ts b/apps/meteor/server/lib/callbacks/callbacksBase.ts similarity index 99% rename from apps/meteor/lib/callbacks/callbacksBase.ts rename to apps/meteor/server/lib/callbacks/callbacksBase.ts index ff7d03804bb06..47ad59bc3fd77 100644 --- a/apps/meteor/lib/callbacks/callbacksBase.ts +++ b/apps/meteor/server/lib/callbacks/callbacksBase.ts @@ -1,7 +1,7 @@ import type { Logger } from '@rocket.chat/logger'; import { Random } from '@rocket.chat/random'; -import { compareByRanking } from '../utils/comparisons'; +import { compareByRanking } from '../../../lib/utils/comparisons'; enum CallbackPriority { HIGH = -1000, diff --git a/apps/meteor/server/lib/ldap/Manager.ts b/apps/meteor/server/lib/ldap/Manager.ts index bb9002a0c9d70..15982e78617bc 100644 --- a/apps/meteor/server/lib/ldap/Manager.ts +++ b/apps/meteor/server/lib/ldap/Manager.ts @@ -18,8 +18,8 @@ import { ldapKeyExists } from './ldapKeyExists'; import type { UserConverterOptions } from '../../../app/importer/server/classes/converters/UserConverter'; import { setUserAvatar } from '../../../app/lib/server/functions/setUserAvatar'; import { settings } from '../../../app/settings/server'; -import { callbacks } from '../../../lib/callbacks'; import { omit } from '../../../lib/utils/omit'; +import { callbacks } from '../callbacks'; export class LDAPManager { public static async login(username: string, password: string): Promise { diff --git a/apps/meteor/server/lib/readMessages.ts b/apps/meteor/server/lib/readMessages.ts index 6ae43ef1ad27e..012effab076b6 100644 --- a/apps/meteor/server/lib/readMessages.ts +++ b/apps/meteor/server/lib/readMessages.ts @@ -1,8 +1,8 @@ import type { IRoom, IUser } from '@rocket.chat/core-typings'; import { NotificationQueue, Subscriptions } from '@rocket.chat/models'; +import { callbacks } from './callbacks'; import { notifyOnSubscriptionChangedByRoomIdAndUserId } from '../../app/lib/server/lib/notifyListener'; -import { callbacks } from '../../lib/callbacks'; export async function readMessages(room: IRoom, uid: IUser['_id'], readThreads: boolean): Promise { await callbacks.run('beforeReadMessages', room._id, uid); diff --git a/apps/meteor/server/methods/addAllUserToRoom.ts b/apps/meteor/server/methods/addAllUserToRoom.ts index 530ea9cfdda2f..08c61373fcba6 100644 --- a/apps/meteor/server/methods/addAllUserToRoom.ts +++ b/apps/meteor/server/methods/addAllUserToRoom.ts @@ -9,7 +9,7 @@ import { hasPermissionAsync } from '../../app/authorization/server/functions/has import { notifyOnSubscriptionChangedById } from '../../app/lib/server/lib/notifyListener'; import { settings } from '../../app/settings/server'; import { getDefaultSubscriptionPref } from '../../app/utils/lib/getDefaultSubscriptionPref'; -import { callbacks } from '../../lib/callbacks'; +import { callbacks } from '../lib/callbacks'; import { getSubscriptionAutotranslateDefaultConfig } from '../lib/getSubscriptionAutotranslateDefaultConfig'; declare module '@rocket.chat/ddp-client' { diff --git a/apps/meteor/server/methods/addRoomModerator.ts b/apps/meteor/server/methods/addRoomModerator.ts index 70a332683f9b3..505942180396b 100644 --- a/apps/meteor/server/methods/addRoomModerator.ts +++ b/apps/meteor/server/methods/addRoomModerator.ts @@ -9,7 +9,7 @@ import { Meteor } from 'meteor/meteor'; import { hasPermissionAsync } from '../../app/authorization/server/functions/hasPermission'; import { notifyOnSubscriptionChangedById } from '../../app/lib/server/lib/notifyListener'; import { settings } from '../../app/settings/server'; -import { beforeChangeRoomRole } from '../../lib/callbacks/beforeChangeRoomRole'; +import { beforeChangeRoomRole } from '../lib/callbacks/beforeChangeRoomRole'; import { syncRoomRolePriorityForUserAndRoom } from '../lib/roles/syncRoomRolePriority'; import { isFederationEnabled, FederationMatrixInvalidConfigurationError } from '../services/federation/utils'; diff --git a/apps/meteor/server/methods/addRoomOwner.ts b/apps/meteor/server/methods/addRoomOwner.ts index b60779d648ca7..5c1eb3a3ae6b1 100644 --- a/apps/meteor/server/methods/addRoomOwner.ts +++ b/apps/meteor/server/methods/addRoomOwner.ts @@ -9,7 +9,7 @@ import { Meteor } from 'meteor/meteor'; import { hasPermissionAsync } from '../../app/authorization/server/functions/hasPermission'; import { notifyOnSubscriptionChangedById } from '../../app/lib/server/lib/notifyListener'; import { settings } from '../../app/settings/server'; -import { beforeChangeRoomRole } from '../../lib/callbacks/beforeChangeRoomRole'; +import { beforeChangeRoomRole } from '../lib/callbacks/beforeChangeRoomRole'; import { syncRoomRolePriorityForUserAndRoom } from '../lib/roles/syncRoomRolePriority'; import { isFederationEnabled, FederationMatrixInvalidConfigurationError } from '../services/federation/utils'; diff --git a/apps/meteor/server/methods/createDirectMessage.ts b/apps/meteor/server/methods/createDirectMessage.ts index f3dfc6cd14e0c..4a956f105b3dc 100644 --- a/apps/meteor/server/methods/createDirectMessage.ts +++ b/apps/meteor/server/methods/createDirectMessage.ts @@ -9,7 +9,7 @@ import { hasPermissionAsync } from '../../app/authorization/server/functions/has import { createRoom } from '../../app/lib/server/functions/createRoom'; import { RateLimiterClass as RateLimiter } from '../../app/lib/server/lib/RateLimiter'; import { settings } from '../../app/settings/server'; -import { callbacks } from '../../lib/callbacks'; +import { callbacks } from '../lib/callbacks'; export async function createDirectMessage( usernames: IUser['username'][], diff --git a/apps/meteor/server/methods/logoutCleanUp.ts b/apps/meteor/server/methods/logoutCleanUp.ts index c4ac54020ef7d..396311161d7f7 100644 --- a/apps/meteor/server/methods/logoutCleanUp.ts +++ b/apps/meteor/server/methods/logoutCleanUp.ts @@ -4,7 +4,7 @@ import type { ServerMethods } from '@rocket.chat/ddp-client'; import { check } from 'meteor/check'; import { Meteor } from 'meteor/meteor'; -import { afterLogoutCleanUpCallback } from '../../lib/callbacks/afterLogoutCleanUpCallback'; +import { afterLogoutCleanUpCallback } from '../lib/callbacks/afterLogoutCleanUpCallback'; declare module '@rocket.chat/ddp-client' { // eslint-disable-next-line @typescript-eslint/naming-convention diff --git a/apps/meteor/server/methods/muteUserInRoom.ts b/apps/meteor/server/methods/muteUserInRoom.ts index c9ae7e228c107..7bb8d3d04345b 100644 --- a/apps/meteor/server/methods/muteUserInRoom.ts +++ b/apps/meteor/server/methods/muteUserInRoom.ts @@ -9,7 +9,7 @@ import { hasPermissionAsync } from '../../app/authorization/server/functions/has import { methodDeprecationLogger } from '../../app/lib/server/lib/deprecationWarningLogger'; import { notifyOnRoomChangedById } from '../../app/lib/server/lib/notifyListener'; import { RoomMemberActions } from '../../definition/IRoomTypeConfig'; -import { callbacks } from '../../lib/callbacks'; +import { callbacks } from '../lib/callbacks'; import { roomCoordinator } from '../lib/rooms/roomCoordinator'; declare module '@rocket.chat/ddp-client' { diff --git a/apps/meteor/server/methods/readThreads.ts b/apps/meteor/server/methods/readThreads.ts index 86a2e816a19bf..e0d557c4535ce 100644 --- a/apps/meteor/server/methods/readThreads.ts +++ b/apps/meteor/server/methods/readThreads.ts @@ -7,7 +7,7 @@ import { Meteor } from 'meteor/meteor'; import { canAccessRoomAsync } from '../../app/authorization/server'; import { settings } from '../../app/settings/server'; import { readThread } from '../../app/threads/server/functions'; -import { callbacks } from '../../lib/callbacks'; +import { callbacks } from '../lib/callbacks'; declare module '@rocket.chat/ddp-client' { // eslint-disable-next-line @typescript-eslint/naming-convention diff --git a/apps/meteor/server/methods/removeRoomModerator.ts b/apps/meteor/server/methods/removeRoomModerator.ts index a9a7c482c87cc..679cf24398d76 100644 --- a/apps/meteor/server/methods/removeRoomModerator.ts +++ b/apps/meteor/server/methods/removeRoomModerator.ts @@ -9,7 +9,7 @@ import { Meteor } from 'meteor/meteor'; import { hasPermissionAsync } from '../../app/authorization/server/functions/hasPermission'; import { notifyOnSubscriptionChangedById } from '../../app/lib/server/lib/notifyListener'; import { settings } from '../../app/settings/server'; -import { beforeChangeRoomRole } from '../../lib/callbacks/beforeChangeRoomRole'; +import { beforeChangeRoomRole } from '../lib/callbacks/beforeChangeRoomRole'; import { syncRoomRolePriorityForUserAndRoom } from '../lib/roles/syncRoomRolePriority'; declare module '@rocket.chat/ddp-client' { diff --git a/apps/meteor/server/methods/removeRoomOwner.ts b/apps/meteor/server/methods/removeRoomOwner.ts index 555879ac5132f..47cef84f475a2 100644 --- a/apps/meteor/server/methods/removeRoomOwner.ts +++ b/apps/meteor/server/methods/removeRoomOwner.ts @@ -8,7 +8,7 @@ import { Meteor } from 'meteor/meteor'; import { hasPermissionAsync } from '../../app/authorization/server/functions/hasPermission'; import { notifyOnSubscriptionChangedById } from '../../app/lib/server/lib/notifyListener'; import { settings } from '../../app/settings/server'; -import { beforeChangeRoomRole } from '../../lib/callbacks/beforeChangeRoomRole'; +import { beforeChangeRoomRole } from '../lib/callbacks/beforeChangeRoomRole'; import { syncRoomRolePriorityForUserAndRoom } from '../lib/roles/syncRoomRolePriority'; declare module '@rocket.chat/ddp-client' { diff --git a/apps/meteor/server/methods/removeUserFromRoom.ts b/apps/meteor/server/methods/removeUserFromRoom.ts index 28e900667204d..bf564e157e539 100644 --- a/apps/meteor/server/methods/removeUserFromRoom.ts +++ b/apps/meteor/server/methods/removeUserFromRoom.ts @@ -12,8 +12,8 @@ import { hasRoleAsync } from '../../app/authorization/server/functions/hasRole'; import { notifyOnRoomChanged, notifyOnSubscriptionChanged } from '../../app/lib/server/lib/notifyListener'; import { settings } from '../../app/settings/server'; import { RoomMemberActions } from '../../definition/IRoomTypeConfig'; -import { callbacks } from '../../lib/callbacks'; -import { afterRemoveFromRoomCallback } from '../../lib/callbacks/afterRemoveFromRoomCallback'; +import { callbacks } from '../lib/callbacks'; +import { afterRemoveFromRoomCallback } from '../lib/callbacks/afterRemoveFromRoomCallback'; import { removeUserFromRolesAsync } from '../lib/roles/removeUserFromRoles'; import { roomCoordinator } from '../lib/rooms/roomCoordinator'; diff --git a/apps/meteor/server/methods/unmuteUserInRoom.ts b/apps/meteor/server/methods/unmuteUserInRoom.ts index 296b9b244947f..3d139e80e115d 100644 --- a/apps/meteor/server/methods/unmuteUserInRoom.ts +++ b/apps/meteor/server/methods/unmuteUserInRoom.ts @@ -9,7 +9,7 @@ import { hasPermissionAsync } from '../../app/authorization/server/functions/has import { methodDeprecationLogger } from '../../app/lib/server/lib/deprecationWarningLogger'; import { notifyOnRoomChangedById } from '../../app/lib/server/lib/notifyListener'; import { RoomMemberActions } from '../../definition/IRoomTypeConfig'; -import { callbacks } from '../../lib/callbacks'; +import { callbacks } from '../lib/callbacks'; import { roomCoordinator } from '../lib/rooms/roomCoordinator'; declare module '@rocket.chat/ddp-client' { diff --git a/apps/meteor/server/services/omnichannel-analytics/service.ts b/apps/meteor/server/services/omnichannel-analytics/service.ts index 188ff0cbb2fa3..9ad567feaa188 100644 --- a/apps/meteor/server/services/omnichannel-analytics/service.ts +++ b/apps/meteor/server/services/omnichannel-analytics/service.ts @@ -15,7 +15,7 @@ import { OverviewData } from './OverviewData'; import { serviceLogger } from './logger'; import { dayIterator } from './utils'; import { getTimezone } from '../../../app/utils/server/lib/getTimezone'; -import { callbacks } from '../../../lib/callbacks'; +import { callbacks } from '../../lib/callbacks'; import { i18n } from '../../lib/i18n'; const HOURS_IN_DAY = 24; diff --git a/apps/meteor/server/services/video-conference/service.ts b/apps/meteor/server/services/video-conference/service.ts index 694f92d014a6c..0460569fd3e30 100644 --- a/apps/meteor/server/services/video-conference/service.ts +++ b/apps/meteor/server/services/video-conference/service.ts @@ -51,9 +51,9 @@ import { settings } from '../../../app/settings/server'; import { updateCounter } from '../../../app/statistics/server/functions/updateStatsCounter'; import { getUserAvatarURL } from '../../../app/utils/server/getUserAvatarURL'; import { getUserPreference } from '../../../app/utils/server/lib/getUserPreference'; -import { callbacks } from '../../../lib/callbacks'; import { availabilityErrors } from '../../../lib/videoConference/constants'; import { readSecondaryPreferred } from '../../database/readSecondaryPreferred'; +import { callbacks } from '../../lib/callbacks'; import { i18n } from '../../lib/i18n'; import { isRoomCompatibleWithVideoConfRinging } from '../../lib/isRoomCompatibleWithVideoConfRinging'; import { roomCoordinator } from '../../lib/rooms/roomCoordinator'; diff --git a/apps/meteor/server/startup/callbacks.ts b/apps/meteor/server/startup/callbacks.ts index a406355af810b..d252e9555f3bd 100644 --- a/apps/meteor/server/startup/callbacks.ts +++ b/apps/meteor/server/startup/callbacks.ts @@ -2,7 +2,7 @@ import { Logger } from '@rocket.chat/logger'; import { performance } from 'universal-perf-hooks'; import { metrics, StatsTracker } from '../../app/metrics/server'; -import { callbacks } from '../../lib/callbacks'; +import { callbacks } from '../lib/callbacks'; callbacks.setLogger(new Logger('Callbacks')); diff --git a/apps/meteor/server/startup/initialData.js b/apps/meteor/server/startup/initialData.js index e8e4873310e8a..7d7a9fdec96d2 100644 --- a/apps/meteor/server/startup/initialData.js +++ b/apps/meteor/server/startup/initialData.js @@ -1,4 +1,5 @@ import { Settings, Rooms, Users, Roles } from '@rocket.chat/models'; +import { validateEmail } from '@rocket.chat/tools'; import colors from 'colors/safe'; import { Accounts } from 'meteor/accounts-base'; import { Meteor } from 'meteor/meteor'; @@ -10,7 +11,6 @@ import { addUserToDefaultChannels } from '../../app/lib/server/functions/addUser import { checkUsernameAvailability } from '../../app/lib/server/functions/checkUsernameAvailability'; import { notifyOnSettingChangedById } from '../../app/lib/server/lib/notifyListener'; import { settings } from '../../app/settings/server'; -import { validateEmail } from '../../lib/emailValidator'; import { addUserRolesAsync } from '../lib/roles/addUserRoles'; export async function insertAdminUserFromEnv() { diff --git a/apps/meteor/tests/unit/app/cloud/server/functions/syncWorkspace/syncCloudData.spec.ts b/apps/meteor/tests/unit/app/cloud/server/functions/syncWorkspace/syncCloudData.spec.ts index f17cb5986da86..f947a5f6d342d 100644 --- a/apps/meteor/tests/unit/app/cloud/server/functions/syncWorkspace/syncCloudData.spec.ts +++ b/apps/meteor/tests/unit/app/cloud/server/functions/syncWorkspace/syncCloudData.spec.ts @@ -12,7 +12,7 @@ const mockedFetchWorkspaceSyncPayload = sinon.stub(); const { syncCloudData } = proxyquire.noCallThru().load('../../../../../../../app/cloud/server/functions/syncWorkspace/syncCloudData.ts', { '@rocket.chat/license': { DuplicatedLicenseError: sinon.stub() }, '@rocket.chat/models': models, - '../../../../../lib/callbacks': { callbacks: { run: sinon.stub() } }, + '../../../../../server/lib/callbacks': { callbacks: { run: sinon.stub() } }, '../../../../../lib/errors/CloudWorkspaceAccessError': { CloudWorkspaceAccessError: sinon.stub() }, '../../../../../lib/errors/CloudWorkspaceRegistrationError': { CloudWorkspaceRegistrationError: sinon.stub() }, '../../../../../server/lib/logger/system': { SystemLogger: { info: sinon.stub(), error: sinon.stub() } }, diff --git a/apps/meteor/tests/unit/app/importer/server/userConverter.spec.ts b/apps/meteor/tests/unit/app/importer/server/userConverter.spec.ts index b263042e23b8a..2fa8490da23ee 100644 --- a/apps/meteor/tests/unit/app/importer/server/userConverter.spec.ts +++ b/apps/meteor/tests/unit/app/importer/server/userConverter.spec.ts @@ -21,7 +21,7 @@ const sha = sinon.stub(); const generateTempPassword = sinon.stub(); const { UserConverter } = proxyquire.noCallThru().load('../../../../../app/importer/server/classes/converters/UserConverter', { - '../../../../../lib/callbacks': { + '../../../../../server/lib/callbacks': { callbacks, }, '../../../settings/server': { diff --git a/apps/meteor/tests/unit/app/lib/server/functions/setUsername.spec.ts b/apps/meteor/tests/unit/app/lib/server/functions/setUsername.spec.ts index 77f47fa3c7dde..13e6709c97656 100644 --- a/apps/meteor/tests/unit/app/lib/server/functions/setUsername.spec.ts +++ b/apps/meteor/tests/unit/app/lib/server/functions/setUsername.spec.ts @@ -64,7 +64,7 @@ describe('setUsername', () => { './saveUserIdentity': { saveUserIdentity: stubs.saveUserIdentity }, './setUserAvatar': { setUserAvatar: stubs.setUserAvatar }, './validateUsername': { validateUsername: stubs.validateUsername }, - '../../../../lib/callbacks': { callbacks: stubs.callbacks }, + '../../../../server/lib/callbacks': { callbacks: stubs.callbacks }, '../../../../server/lib/logger/system': { SystemLogger: stubs.SystemLogger }, }); diff --git a/apps/meteor/tests/unit/app/livechat/server/business-hour/BusinessHourManager.spec.ts b/apps/meteor/tests/unit/app/livechat/server/business-hour/BusinessHourManager.spec.ts index f83b5535deb61..6d08475555a6b 100644 --- a/apps/meteor/tests/unit/app/livechat/server/business-hour/BusinessHourManager.spec.ts +++ b/apps/meteor/tests/unit/app/livechat/server/business-hour/BusinessHourManager.spec.ts @@ -26,7 +26,7 @@ const loggerStub = sinon.stub(); const { BusinessHourManager } = proxyquire.noCallThru().load('../../../../../../app/livechat/server/business-hour/BusinessHourManager', { '../../../settings/server': {}, - '../../../../lib/callbacks': {}, + '../../../../server/lib/callbacks': {}, '../../../../ee/app/livechat-enterprise/server/business-hour/Helper': {}, './AbstractBusinessHour': {}, 'moment-timezone': momentStub, diff --git a/apps/meteor/tests/unit/app/livechat/server/hooks/processRoomAbandonment.spec.ts b/apps/meteor/tests/unit/app/livechat/server/hooks/processRoomAbandonment.spec.ts index 91f88c36b022f..e91cc71e5d622 100644 --- a/apps/meteor/tests/unit/app/livechat/server/hooks/processRoomAbandonment.spec.ts +++ b/apps/meteor/tests/unit/app/livechat/server/hooks/processRoomAbandonment.spec.ts @@ -27,7 +27,7 @@ const { getSecondsWhenOfficeHoursIsDisabled, parseDays, getSecondsSinceLastAgent .noCallThru() .load('../../../../../../app/livechat/server/hooks/processRoomAbandonment.ts', { '@rocket.chat/models': models, - '../../../../lib/callbacks': { + '../../../../server/lib/callbacks': { callbacks: { add: sinon.stub(), priority: { HIGH: 'high' } }, }, '../../../settings/server': { diff --git a/apps/meteor/tests/unit/app/livechat/server/lib/sendTranscript.spec.ts b/apps/meteor/tests/unit/app/livechat/server/lib/sendTranscript.spec.ts index 5ac938b798b45..0b3046cee41c4 100644 --- a/apps/meteor/tests/unit/app/livechat/server/lib/sendTranscript.spec.ts +++ b/apps/meteor/tests/unit/app/livechat/server/lib/sendTranscript.spec.ts @@ -55,7 +55,7 @@ const { sendTranscript } = p.noCallThru().load('../../../../../../app/livechat/s '@rocket.chat/models': modelsMock, '@rocket.chat/logger': { Logger: mockLogger }, 'meteor/check': { check: checkMock }, - '../../../../lib/callbacks': { + '../../../../server/lib/callbacks': { callbacks: { run: sinon.stub(), }, diff --git a/apps/meteor/tests/unit/app/mailer/getEmailContent.spec.ts b/apps/meteor/tests/unit/app/mailer/getEmailContent.spec.ts index 5c8403ec268ef..6ffbe4dbfd247 100644 --- a/apps/meteor/tests/unit/app/mailer/getEmailContent.spec.ts +++ b/apps/meteor/tests/unit/app/mailer/getEmailContent.spec.ts @@ -12,7 +12,7 @@ const mocks = { startup: () => {}, }, }, - '../../../../../lib/callbacks': { + '../../../../../server/lib/callbacks': { callbacks: { run: () => {}, }, diff --git a/apps/meteor/tests/unit/app/reactions/server/setReaction.spec.ts b/apps/meteor/tests/unit/app/reactions/server/setReaction.spec.ts index e267825a6a182..66a3eb90ee00f 100644 --- a/apps/meteor/tests/unit/app/reactions/server/setReaction.spec.ts +++ b/apps/meteor/tests/unit/app/reactions/server/setReaction.spec.ts @@ -39,7 +39,7 @@ const { removeUserReaction, executeSetReaction, setReaction } = p.noCallThru().l '@rocket.chat/models': modelsMock, '@rocket.chat/core-services': { Message: { beforeReacted: sinon.stub() } }, 'meteor/meteor': { Meteor: { methods: meteorMethodsMock, Error: meteorErrorMock } }, - '../../../lib/callbacks': { callbacks: { run: callbacksRunMock } }, + '../../../server/lib/callbacks': { callbacks: { run: callbacksRunMock } }, '../../../server/lib/i18n': { i18n: i18nMock }, '../../authorization/server': { canAccessRoomAsync: canAccessRoomAsyncMock }, '../../authorization/server/functions/hasPermission': { hasPermissionAsync: hasPermissionAsyncMock }, diff --git a/apps/meteor/tests/unit/server/livechat/hooks/markRoomResponded.spec.ts b/apps/meteor/tests/unit/server/livechat/hooks/markRoomResponded.spec.ts index 61cd97784b34a..eb6e08d87e784 100644 --- a/apps/meteor/tests/unit/server/livechat/hooks/markRoomResponded.spec.ts +++ b/apps/meteor/tests/unit/server/livechat/hooks/markRoomResponded.spec.ts @@ -22,7 +22,7 @@ const settingsGetMock = { const isMessageFromBotMock = { isMessageFromBot: Sinon.stub() }; const { markRoomResponded } = proxyquire.noCallThru().load('../../../../../app/livechat/server/hooks/markRoomResponded.ts', { - '../../../../lib/callbacks': { callbacks: { add: Sinon.stub(), priority: { HIGH: 'high' } } }, + '../../../../server/lib/callbacks': { callbacks: { add: Sinon.stub(), priority: { HIGH: 'high' } } }, '../../../lib/server/lib/notifyListener': { notifyOnLivechatInquiryChanged: Sinon.stub() }, '@rocket.chat/models': models, '../../../settings/server': { settings: settingsGetMock }, diff --git a/apps/meteor/tests/unit/server/startup/initialData.tests.ts b/apps/meteor/tests/unit/server/startup/initialData.tests.ts index b139ea571e1a9..a5fe59f698d80 100644 --- a/apps/meteor/tests/unit/server/startup/initialData.tests.ts +++ b/apps/meteor/tests/unit/server/startup/initialData.tests.ts @@ -40,7 +40,7 @@ const { insertAdminUserFromEnv } = proxyquire.noCallThru().load('../../../../ser '../../app/settings/server': { settings: { get: settingsGet }, }, - '../../lib/emailValidator': { + '@rocket.chat/tools': { validateEmail, }, '../lib/roles/addUserRoles': { diff --git a/package.json b/package.json index caa3703c24224..df23aba2a2f43 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,7 @@ "@types/js-yaml": "^4.0.9", "@types/node": "~22.16.5", "ts-node": "^10.9.2", - "turbo": "~2.6.1", + "turbo": "~2.6.3", "typescript": "~5.9.3" }, "packageManager": "yarn@4.11.0", diff --git a/packages/ui-client/package.json b/packages/ui-client/package.json index a7e1686f6149c..dbfe294c7ae2c 100644 --- a/packages/ui-client/package.json +++ b/packages/ui-client/package.json @@ -18,6 +18,7 @@ "typecheck": "tsc --noEmit" }, "dependencies": { + "@rocket.chat/onboarding-ui": "~0.36.0", "dompurify": "~3.2.7" }, "devDependencies": { @@ -31,6 +32,7 @@ "@rocket.chat/icons": "~0.46.0", "@rocket.chat/jest-presets": "workspace:~", "@rocket.chat/mock-providers": "workspace:^", + "@rocket.chat/models": "workspace:~", "@rocket.chat/storybook-config": "workspace:~", "@rocket.chat/tsconfig": "workspace:*", "@rocket.chat/ui-avatar": "workspace:~", diff --git a/packages/ui-client/src/components/Header/Header.stories.tsx b/packages/ui-client/src/components/Header/Header.stories.tsx deleted file mode 100644 index 60bd3732722b3..0000000000000 --- a/packages/ui-client/src/components/Header/Header.stories.tsx +++ /dev/null @@ -1,166 +0,0 @@ -import type { IRoom } from '@rocket.chat/core-typings'; -import { Avatar, IconButton } from '@rocket.chat/fuselage'; -import { SettingsContext } from '@rocket.chat/ui-contexts'; -import { action } from '@storybook/addon-actions'; -import type { Meta } from '@storybook/react'; -import type { ComponentType } from 'react'; - -import { - Header, - HeaderAvatar, - HeaderContent, - HeaderContentRow, - HeaderIcon, - HeaderToolbar, - HeaderToolbarAction, - HeaderToolbarActionBadge, - HeaderTitle, - HeaderState, - HeaderSubtitle, -} from '.'; - -const avatarUrl = - 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAoACgDASIAAhEBAxEB/8QAGwAAAgIDAQAAAAAAAAAAAAAAAAcEBgIDBQj/xAAuEAACAQQAAwcEAQUAAAAAAAABAgMABAUREiExBhMUIkFRYQcWcYGhFTJSgpH/xAAYAQADAQEAAAAAAAAAAAAAAAACAwQBAP/EAB4RAAIBBQEBAQAAAAAAAAAAAAABAgMREiExE0HR/9oADAMBAAIRAxEAPwBuXuIkhBuMe5ib/AHQP49q4L3mLitryTLTSpOiHQI5k/HzXa/qbFOEudVTu1dumWvcTaNCZYZ7vU6g6LxqjOU/24dfs1Ouh9FnkMpd3Reeyx83hAxZZEhkdV9/MBrX71WGPvJcqrJBGveKATtuXXqNU0pu02bTHXD/AGvJAluyxxRd6F4x00o+NdKoVrjbzJdvVe1t5cVLc2ck8qjnohgpPtz2v7G6JtPQ2VJwjlcw+37mchpnK6GtIuv5NFWeTsLNPvxWTvpfjvOEfwKKzEVkSct2vscS/BIzSN0YRkeX81UpPqO8masJETu7OOccY4dswYFQeftv096XV5knuJGdm2T1+agvMXj8jEaHX905QihabvcbuS7X566mLWLwSY8PuRnk/u4eZ0deTl71Ef6hY+0yM88TzeNZY4luYwpVYyduOfrvhPTnr0pXSX9y5mCsyJMdyxxvwq599em+taItqCSNc90ChvZRUruUcT0JiO18Elpk7t8v41LWzacxkBSuvjQ/FFJayjDWrCTepAQ2vUH0oo/Jk3ovpwJJeVCP5CN+lFFaaMqy+nAyuChvrTI2kN9JAsi2ZOy4IBHMnkSCP+iqBexSWdxLazoUljJVlPUH2oorkV10pRc7b1zXb/hZOzuJvM86QWEXeELxOzHSIPcmiiiunVlF2RNTpRkrs//Z'; - -export default { - title: 'Components/Header', - component: Header, - subcomponents: { - HeaderToolbar: HeaderToolbar as ComponentType, - HeaderToolbarAction: HeaderToolbarAction as ComponentType, - HeaderAvatar: HeaderAvatar as ComponentType, - HeaderContent: HeaderContent as ComponentType, - HeaderContentRow: HeaderContentRow as ComponentType, - }, - parameters: { - layout: 'fullscreen', - }, - decorators: [ - (fn) => ( - [ - () => () => undefined, - () => ({ - _id, - type: 'action', - value: '', - actionText: '', - public: true, - blocked: false, - createdAt: new Date(), - env: true, - i18nLabel: _id, - packageValue: false, - sorter: 1, - ts: new Date(), - _updatedAt: new Date(), - }), - ], - querySettings: () => [() => () => undefined, () => []], - dispatch: async () => undefined, - }} - > - {fn()} - - ), - ], -} satisfies Meta; - -const room: IRoom = { - t: 'c', - name: 'general general general general general general general general general general general general general general general general general general general', - _id: 'GENERAL', - encrypted: true, - autoTranslate: true, - autoTranslateLanguage: 'pt-BR', - u: { - _id: 'rocket.cat', - name: 'rocket.cat', - username: 'rocket.cat', - }, - msgs: 123, - usersCount: 3, - _updatedAt: new Date(), -} as const; - -const avatar = ; -const icon = { name: 'hash' } as const; - -export const Default = () => ( -
- {avatar} - - - {icon && } - {room.name} - - - - - - {room.name} - - - - - - - -
-); - -export const WithBurger = () => ( -
- - - - {avatar} - - - {icon && } - {room.name} - - - - - - {room.name} - - - - - - - -
-); - -export const WithActionBadge = () => ( -
- {avatar} - - - {icon && } - {room.name} - - - - {room.name} - - - - - 1 - - - 2 - - - 99 - - - -
-); diff --git a/packages/ui-client/src/components/Header/Header.tsx b/packages/ui-client/src/components/Header/Header.tsx index df8026b356bba..2dfc5526e07bf 100644 --- a/packages/ui-client/src/components/Header/Header.tsx +++ b/packages/ui-client/src/components/Header/Header.tsx @@ -1,40 +1,19 @@ -import { Box } from '@rocket.chat/fuselage'; -import { useLayout } from '@rocket.chat/ui-contexts'; import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -import HeaderDivider from './HeaderDivider'; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1 } from '../HeaderV1'; +import { HeaderV2 } from '../HeaderV2'; -export type HeaderProps = ComponentPropsWithoutRef; +const Header = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); -const Header = (props: HeaderProps) => { - const { isMobile } = useLayout(); - - return ( - - - - - ); -}; - -export default Header; +export default memo(Header); diff --git a/packages/ui-client/src/components/Header/HeaderAvatar.tsx b/packages/ui-client/src/components/Header/HeaderAvatar.tsx index c70660324fde1..19cd59e07d247 100644 --- a/packages/ui-client/src/components/Header/HeaderAvatar.tsx +++ b/packages/ui-client/src/components/Header/HeaderAvatar.tsx @@ -1,8 +1,19 @@ -import { Box } from '@rocket.chat/fuselage'; -import type { ComponentPropsWithoutRef } from 'react'; +import type { ComponentProps } from 'react'; +import { memo } from 'react'; -export type HeaderAvatarProps = ComponentPropsWithoutRef; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Avatar } from '../HeaderV1'; +import { HeaderV2Avatar } from '../HeaderV2'; -const HeaderAvatar = (props: HeaderAvatarProps) => ; +const HeaderAvatar = (props: ComponentProps) => ( + + + + + + + + +); -export default HeaderAvatar; +export default memo(HeaderAvatar); diff --git a/packages/ui-client/src/components/Header/HeaderContent.tsx b/packages/ui-client/src/components/Header/HeaderContent.tsx index bd94ade6999bf..28db35134a9c7 100644 --- a/packages/ui-client/src/components/Header/HeaderContent.tsx +++ b/packages/ui-client/src/components/Header/HeaderContent.tsx @@ -1,10 +1,19 @@ -import { Box } from '@rocket.chat/fuselage'; import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -export type HeaderContentProps = ComponentPropsWithoutRef; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Content } from '../HeaderV1'; +import { HeaderV2Content } from '../HeaderV2'; -const HeaderContent = (props: HeaderContentProps) => ( - +const HeaderContent = (props: ComponentPropsWithoutRef) => ( + + + + + + + + ); -export default HeaderContent; +export default memo(HeaderContent); diff --git a/packages/ui-client/src/components/Header/HeaderContentRow.tsx b/packages/ui-client/src/components/Header/HeaderContentRow.tsx index 1df01a9785e9a..60d28980d3509 100644 --- a/packages/ui-client/src/components/Header/HeaderContentRow.tsx +++ b/packages/ui-client/src/components/Header/HeaderContentRow.tsx @@ -1,10 +1,19 @@ -import { Box } from '@rocket.chat/fuselage'; import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -export type HeaderContentRowProps = ComponentPropsWithoutRef; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1ContentRow } from '../HeaderV1'; +import { HeaderV2ContentRow } from '../HeaderV2'; -const HeaderContentRow = (props: HeaderContentRowProps) => ( - +const HeaderContentRow = (props: ComponentPropsWithoutRef) => ( + + + + + + + + ); -export default HeaderContentRow; +export default memo(HeaderContentRow); diff --git a/packages/ui-client/src/components/Header/HeaderDivider.tsx b/packages/ui-client/src/components/Header/HeaderDivider.tsx index 2beadec2d0882..98193d576afc2 100644 --- a/packages/ui-client/src/components/Header/HeaderDivider.tsx +++ b/packages/ui-client/src/components/Header/HeaderDivider.tsx @@ -1,5 +1,18 @@ -import { Divider } from '@rocket.chat/fuselage'; +import { memo } from 'react'; -const HeaderDivider = () => ; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Divider } from '../HeaderV1'; +import { HeaderV2Divider } from '../HeaderV2'; -export default HeaderDivider; +const HeaderDivider = () => ( + + + + + + + + +); + +export default memo(HeaderDivider); diff --git a/packages/ui-client/src/components/Header/HeaderIcon.tsx b/packages/ui-client/src/components/Header/HeaderIcon.tsx index c811c3c7b7404..f51afd8ee18e1 100644 --- a/packages/ui-client/src/components/Header/HeaderIcon.tsx +++ b/packages/ui-client/src/components/Header/HeaderIcon.tsx @@ -1,14 +1,19 @@ -import { Box, Icon } from '@rocket.chat/fuselage'; -import type { ComponentPropsWithoutRef, ReactElement } from 'react'; -import { isValidElement } from 'react'; +import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -export type HeaderIconProps = { icon: ReactElement | ComponentPropsWithoutRef | null }; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Icon } from '../HeaderV1'; +import { HeaderV2Icon } from '../HeaderV2'; -const HeaderIcon = ({ icon }: HeaderIconProps) => - icon && ( - - {isValidElement(icon) ? icon : } - - ); +const HeaderIcon = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); -export default HeaderIcon; +export default memo(HeaderIcon); diff --git a/packages/ui-client/src/components/Header/HeaderState.tsx b/packages/ui-client/src/components/Header/HeaderState.tsx index 0368175d08f7c..ce996350c673f 100644 --- a/packages/ui-client/src/components/Header/HeaderState.tsx +++ b/packages/ui-client/src/components/Header/HeaderState.tsx @@ -1,17 +1,19 @@ -import { Icon, IconButton } from '@rocket.chat/fuselage'; -import type { Keys as IconName } from '@rocket.chat/icons'; -import type { AllHTMLAttributes, ComponentPropsWithoutRef, MouseEventHandler } from 'react'; +import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -export type HeaderStateProps = - | (Pick, 'color' | 'title' | 'icon'> & { - onClick: MouseEventHandler; - } & Omit, 'is'>) - | (Omit, 'name' | 'onClick'> & { - icon: IconName; - onClick?: undefined; - }); +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1State } from '../HeaderV1'; +import { HeaderV2State } from '../HeaderV2'; -const HeaderState = (props: HeaderStateProps) => - props.onClick ? : ; +const HeaderState = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); -export default HeaderState; +export default memo(HeaderState); diff --git a/packages/ui-client/src/components/Header/HeaderSubtitle.tsx b/packages/ui-client/src/components/Header/HeaderSubtitle.tsx index eef2190739743..df6a0a7e98c59 100644 --- a/packages/ui-client/src/components/Header/HeaderSubtitle.tsx +++ b/packages/ui-client/src/components/Header/HeaderSubtitle.tsx @@ -1,8 +1,19 @@ -import { Box } from '@rocket.chat/fuselage'; import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -export type HeaderSubtitleProps = ComponentPropsWithoutRef; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Subtitle } from '../HeaderV1'; +import { HeaderV2Subtitle } from '../HeaderV2'; -const HeaderSubtitle = (props: HeaderSubtitleProps) => ; +const HeaderSubtitle = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); -export default HeaderSubtitle; +export default memo(HeaderSubtitle); diff --git a/packages/ui-client/src/components/Header/HeaderTag.tsx b/packages/ui-client/src/components/Header/HeaderTag.tsx new file mode 100644 index 0000000000000..fa75066c66c37 --- /dev/null +++ b/packages/ui-client/src/components/Header/HeaderTag.tsx @@ -0,0 +1,19 @@ +import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; + +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Tag } from '../HeaderV1'; +import { HeaderV2Tag } from '../HeaderV2'; + +const HeaderTag = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); + +export default memo(HeaderTag); diff --git a/packages/ui-client/src/components/Header/HeaderTagIcon.tsx b/packages/ui-client/src/components/Header/HeaderTagIcon.tsx new file mode 100644 index 0000000000000..7c7e63f04a299 --- /dev/null +++ b/packages/ui-client/src/components/Header/HeaderTagIcon.tsx @@ -0,0 +1,19 @@ +import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; + +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1TagIcon } from '../HeaderV1'; +import { HeaderV2TagIcon } from '../HeaderV2'; + +const HeaderTagIcon = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); + +export default memo(HeaderTagIcon); diff --git a/apps/meteor/client/components/Header/HeaderTagSkeleton.tsx b/packages/ui-client/src/components/Header/HeaderTagSkeleton.tsx similarity index 56% rename from apps/meteor/client/components/Header/HeaderTagSkeleton.tsx rename to packages/ui-client/src/components/Header/HeaderTagSkeleton.tsx index 38a94d928fe7f..708f1a312b37f 100644 --- a/apps/meteor/client/components/Header/HeaderTagSkeleton.tsx +++ b/packages/ui-client/src/components/Header/HeaderTagSkeleton.tsx @@ -1,16 +1,13 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2TagSkeleton, - HeaderTagSkeleton as HeaderTagSkeletonComponent, -} from '@rocket.chat/ui-client'; import { memo } from 'react'; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1TagSkeleton } from '../HeaderV1'; +import { HeaderV2TagSkeleton } from '../HeaderV2'; + const HeaderTagSkeleton = () => ( - + diff --git a/packages/ui-client/src/components/Header/HeaderTitle.tsx b/packages/ui-client/src/components/Header/HeaderTitle.tsx index ad5e1023521fe..98f1010be3f1a 100644 --- a/packages/ui-client/src/components/Header/HeaderTitle.tsx +++ b/packages/ui-client/src/components/Header/HeaderTitle.tsx @@ -1,8 +1,19 @@ -import { Box } from '@rocket.chat/fuselage'; import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -export type HeaderTitleProps = ComponentPropsWithoutRef; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Title } from '../HeaderV1'; +import { HeaderV2Title } from '../HeaderV2'; -const HeaderTitle = (props: HeaderTitleProps) => ; +const HeaderTitle = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); -export default HeaderTitle; +export default memo(HeaderTitle); diff --git a/packages/ui-client/src/components/Header/HeaderTitleButton.tsx b/packages/ui-client/src/components/Header/HeaderTitleButton.tsx index 69adba8879b08..b3beda3fb38a2 100644 --- a/packages/ui-client/src/components/Header/HeaderTitleButton.tsx +++ b/packages/ui-client/src/components/Header/HeaderTitleButton.tsx @@ -1,27 +1,19 @@ -import { css } from '@rocket.chat/css-in-js'; -import { Box, Palette } from '@rocket.chat/fuselage'; import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; -export type HeaderTitleButtonProps = { className?: string } & ComponentPropsWithoutRef; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1TitleButton } from '../HeaderV1'; +import { HeaderV2TitleButton } from '../HeaderV2'; -const HeaderTitleButton = ({ className, ...props }: HeaderTitleButtonProps) => { - const customClass = css` - border-width: 1px; - border-style: solid; - border-color: transparent; +const HeaderTitleButton = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); - &:hover { - cursor: pointer; - background-color: ${Palette.surface['surface-hover']}; - } - &:focus-visible { - outline: 0; - box-shadow: 0 0 0 2px ${Palette.stroke['stroke-extra-light-highlight']}; - border-color: ${Palette.stroke['stroke-highlight']}; - } - `; - - return ; -}; - -export default HeaderTitleButton; +export default memo(HeaderTitleButton); diff --git a/packages/ui-client/src/components/Header/HeaderToolbar.tsx b/packages/ui-client/src/components/Header/HeaderToolbar.tsx new file mode 100644 index 0000000000000..e980425f5bfd3 --- /dev/null +++ b/packages/ui-client/src/components/Header/HeaderToolbar.tsx @@ -0,0 +1,19 @@ +import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; + +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1Toolbar } from '../HeaderV1'; +import { HeaderV2Toolbar } from '../HeaderV2'; + +const HeaderToolbar = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); + +export default memo(HeaderToolbar); diff --git a/apps/meteor/client/components/Header/HeaderToolbarAction.tsx b/packages/ui-client/src/components/Header/HeaderToolbarAction.tsx similarity index 54% rename from apps/meteor/client/components/Header/HeaderToolbarAction.tsx rename to packages/ui-client/src/components/Header/HeaderToolbarAction.tsx index 1ab382ada1c75..898c142a39b18 100644 --- a/apps/meteor/client/components/Header/HeaderToolbarAction.tsx +++ b/packages/ui-client/src/components/Header/HeaderToolbarAction.tsx @@ -1,19 +1,16 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2ToolbarAction, - HeaderToolbarAction as HeaderToolbarActionComponent, -} from '@rocket.chat/ui-client'; -import type { ComponentProps } from 'react'; +import type { ComponentPropsWithoutRef } from 'react'; import { forwardRef, memo } from 'react'; -const HeaderToolbarAction = forwardRef>( +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1ToolbarAction } from '../HeaderV1'; +import { HeaderV2ToolbarAction } from '../HeaderV2'; + +const HeaderToolbarAction = forwardRef>( function HeaderToolbarAction(props, ref) { return ( - + diff --git a/packages/ui-client/src/components/Header/HeaderToolbarActionBadge.tsx b/packages/ui-client/src/components/Header/HeaderToolbarActionBadge.tsx new file mode 100644 index 0000000000000..3098d9739d781 --- /dev/null +++ b/packages/ui-client/src/components/Header/HeaderToolbarActionBadge.tsx @@ -0,0 +1,19 @@ +import type { ComponentPropsWithoutRef } from 'react'; +import { memo } from 'react'; + +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1ToolbarActionBadge } from '../HeaderV1'; +import { HeaderV2ToolbarActionBadge } from '../HeaderV2'; + +const HeaderToolbarActionBadge = (props: ComponentPropsWithoutRef) => ( + + + + + + + + +); + +export default memo(HeaderToolbarActionBadge); diff --git a/apps/meteor/client/components/Header/HeaderToolbarDivider.tsx b/packages/ui-client/src/components/Header/HeaderToolbarDivider.tsx similarity index 56% rename from apps/meteor/client/components/Header/HeaderToolbarDivider.tsx rename to packages/ui-client/src/components/Header/HeaderToolbarDivider.tsx index 0eaae2feebc00..97bae3920f7bf 100644 --- a/apps/meteor/client/components/Header/HeaderToolbarDivider.tsx +++ b/packages/ui-client/src/components/Header/HeaderToolbarDivider.tsx @@ -1,16 +1,13 @@ -import { - FeaturePreview, - FeaturePreviewOff, - FeaturePreviewOn, - HeaderV2ToolbarDivider, - HeaderToolbarDivider as HeaderToolbarDividerComponent, -} from '@rocket.chat/ui-client'; import { memo } from 'react'; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; +import { HeaderV1ToolbarDivider } from '../HeaderV1'; +import { HeaderV2ToolbarDivider } from '../HeaderV2'; + const HeaderToolbarDivider = () => ( - + diff --git a/packages/ui-client/src/components/Header/index.ts b/packages/ui-client/src/components/Header/index.ts index 00e2c0ab17dc1..be01ea638c980 100644 --- a/packages/ui-client/src/components/Header/index.ts +++ b/packages/ui-client/src/components/Header/index.ts @@ -1,12 +1,37 @@ -export { default as Header } from './Header'; -export { default as HeaderAvatar } from './HeaderAvatar'; -export { default as HeaderContent } from './HeaderContent'; -export { default as HeaderContentRow } from './HeaderContentRow'; -export { default as HeaderDivider } from './HeaderDivider'; -export { default as HeaderIcon } from './HeaderIcon'; -export { default as HeaderState } from './HeaderState'; -export { default as HeaderSubtitle } from './HeaderSubtitle'; -export * from './HeaderTag'; -export { default as HeaderTitle } from './HeaderTitle'; -export { default as HeaderTitleButton } from './HeaderTitleButton'; -export * from './HeaderToolbar'; +import Header from './Header'; +import HeaderAvatar from './HeaderAvatar'; +import HeaderContent from './HeaderContent'; +import HeaderContentRow from './HeaderContentRow'; +import HeaderDivider from './HeaderDivider'; +import HeaderIcon from './HeaderIcon'; +import HeaderState from './HeaderState'; +import HeaderSubtitle from './HeaderSubtitle'; +import HeaderTag from './HeaderTag'; +import HeaderTagIcon from './HeaderTagIcon'; +import HeaderTagSkeleton from './HeaderTagSkeleton'; +import HeaderTitle from './HeaderTitle'; +import HeaderTitleButton from './HeaderTitleButton'; +import HeaderToolbar from './HeaderToolbar'; +import HeaderToolbarAction from './HeaderToolbarAction'; +import HeaderToolbarActionBadge from './HeaderToolbarActionBadge'; +import HeaderToolbarDivider from './HeaderToolbarDivider'; + +export { + Header, + HeaderAvatar, + HeaderContent, + HeaderContentRow, + HeaderDivider, + HeaderIcon, + HeaderState, + HeaderSubtitle, + HeaderTag, + HeaderTagIcon, + HeaderTagSkeleton, + HeaderTitle, + HeaderTitleButton, + HeaderToolbar, + HeaderToolbarAction, + HeaderToolbarActionBadge, + HeaderToolbarDivider, +}; diff --git a/packages/ui-client/src/components/Header/Header.spec.tsx b/packages/ui-client/src/components/HeaderV1/Header.spec.tsx similarity index 100% rename from packages/ui-client/src/components/Header/Header.spec.tsx rename to packages/ui-client/src/components/HeaderV1/Header.spec.tsx diff --git a/packages/ui-client/src/components/HeaderV1/Header.stories.tsx b/packages/ui-client/src/components/HeaderV1/Header.stories.tsx new file mode 100644 index 0000000000000..bbc17a593c4b5 --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/Header.stories.tsx @@ -0,0 +1,170 @@ +import type { IRoom } from '@rocket.chat/core-typings'; +import { Avatar, IconButton } from '@rocket.chat/fuselage'; +import { SettingsContext } from '@rocket.chat/ui-contexts'; +import { action } from '@storybook/addon-actions'; +import type { Meta } from '@storybook/react'; + +import { + HeaderV1, + HeaderV1Avatar, + HeaderV1Content, + HeaderV1ContentRow, + HeaderV1Icon, + HeaderV1Toolbar, + HeaderV1ToolbarAction, + HeaderV1ToolbarActionBadge, + HeaderV1Title, + HeaderV1State, + HeaderV1Subtitle, +} from '.'; + +const avatarUrl = + 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAAoACgDASIAAhEBAxEB/8QAGwAAAgIDAQAAAAAAAAAAAAAAAAcEBgIDBQj/xAAuEAACAQQAAwcEAQUAAAAAAAABAgMABAUREiExBhMUIkFRYQcWcYGhFTJSgpH/xAAYAQADAQEAAAAAAAAAAAAAAAACAwQBAP/EAB4RAAIBBQEBAQAAAAAAAAAAAAABAgMREiExE0HR/9oADAMBAAIRAxEAPwBuXuIkhBuMe5ib/AHQP49q4L3mLitryTLTSpOiHQI5k/HzXa/qbFOEudVTu1dumWvcTaNCZYZ7vU6g6LxqjOU/24dfs1Ouh9FnkMpd3Reeyx83hAxZZEhkdV9/MBrX71WGPvJcqrJBGveKATtuXXqNU0pu02bTHXD/AGvJAluyxxRd6F4x00o+NdKoVrjbzJdvVe1t5cVLc2ck8qjnohgpPtz2v7G6JtPQ2VJwjlcw+37mchpnK6GtIuv5NFWeTsLNPvxWTvpfjvOEfwKKzEVkSct2vscS/BIzSN0YRkeX81UpPqO8masJETu7OOccY4dswYFQeftv096XV5knuJGdm2T1+agvMXj8jEaHX905QihabvcbuS7X566mLWLwSY8PuRnk/u4eZ0deTl71Ef6hY+0yM88TzeNZY4luYwpVYyduOfrvhPTnr0pXSX9y5mCsyJMdyxxvwq599em+taItqCSNc90ChvZRUruUcT0JiO18Elpk7t8v41LWzacxkBSuvjQ/FFJayjDWrCTepAQ2vUH0oo/Jk3ovpwJJeVCP5CN+lFFaaMqy+nAyuChvrTI2kN9JAsi2ZOy4IBHMnkSCP+iqBexSWdxLazoUljJVlPUH2oorkV10pRc7b1zXb/hZOzuJvM86QWEXeELxOzHSIPcmiiiunVlF2RNTpRkrs//Z'; + +export default { + title: 'Components/Header', + component: HeaderV1, + subcomponents: { + HeaderV1Avatar, + HeaderV1Content, + HeaderV1ContentRow, + HeaderV1Icon, + HeaderV1Toolbar, + HeaderV1ToolbarAction, + HeaderV1ToolbarActionBadge, + HeaderV1Title, + HeaderV1State, + HeaderV1Subtitle, + }, + parameters: { + layout: 'fullscreen', + }, + decorators: [ + (fn) => ( + [ + () => () => undefined, + () => ({ + _id, + type: 'action', + value: '', + actionText: '', + public: true, + blocked: false, + createdAt: new Date(), + env: true, + i18nLabel: _id, + packageValue: false, + sorter: 1, + ts: new Date(), + _updatedAt: new Date(), + }), + ], + querySettings: () => [() => () => undefined, () => []], + dispatch: async () => undefined, + }} + > + {fn()} + + ), + ], +} satisfies Meta; + +const room: IRoom = { + t: 'c', + name: 'general general general general general general general general general general general general general general general general general general general', + _id: 'GENERAL', + encrypted: true, + autoTranslate: true, + autoTranslateLanguage: 'pt-BR', + u: { + _id: 'rocket.cat', + name: 'rocket.cat', + username: 'rocket.cat', + }, + msgs: 123, + usersCount: 3, + _updatedAt: new Date(), +} as const; + +const avatar = ; +const icon = { name: 'hash' } as const; + +export const Default = () => ( + + {avatar} + + + {icon && } + {room.name} + + + + + + {room.name} + + + + + + + + +); + +export const WithBurger = () => ( + + + + + {avatar} + + + {icon && } + {room.name} + + + + + + {room.name} + + + + + + + + +); + +export const WithActionBadge = () => ( + + {avatar} + + + {icon && } + {room.name} + + + + {room.name} + + + + + 1 + + + 2 + + + 99 + + + + +); diff --git a/packages/ui-client/src/components/HeaderV1/Header.tsx b/packages/ui-client/src/components/HeaderV1/Header.tsx new file mode 100644 index 0000000000000..df8026b356bba --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/Header.tsx @@ -0,0 +1,40 @@ +import { Box } from '@rocket.chat/fuselage'; +import { useLayout } from '@rocket.chat/ui-contexts'; +import type { ComponentPropsWithoutRef } from 'react'; + +import HeaderDivider from './HeaderDivider'; + +export type HeaderProps = ComponentPropsWithoutRef; + +const Header = (props: HeaderProps) => { + const { isMobile } = useLayout(); + + return ( + + + + + ); +}; + +export default Header; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderAvatar.tsx b/packages/ui-client/src/components/HeaderV1/HeaderAvatar.tsx new file mode 100644 index 0000000000000..c70660324fde1 --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderAvatar.tsx @@ -0,0 +1,8 @@ +import { Box } from '@rocket.chat/fuselage'; +import type { ComponentPropsWithoutRef } from 'react'; + +export type HeaderAvatarProps = ComponentPropsWithoutRef; + +const HeaderAvatar = (props: HeaderAvatarProps) => ; + +export default HeaderAvatar; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderContent.tsx b/packages/ui-client/src/components/HeaderV1/HeaderContent.tsx new file mode 100644 index 0000000000000..bd94ade6999bf --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderContent.tsx @@ -0,0 +1,10 @@ +import { Box } from '@rocket.chat/fuselage'; +import type { ComponentPropsWithoutRef } from 'react'; + +export type HeaderContentProps = ComponentPropsWithoutRef; + +const HeaderContent = (props: HeaderContentProps) => ( + +); + +export default HeaderContent; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderContentRow.tsx b/packages/ui-client/src/components/HeaderV1/HeaderContentRow.tsx new file mode 100644 index 0000000000000..1df01a9785e9a --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderContentRow.tsx @@ -0,0 +1,10 @@ +import { Box } from '@rocket.chat/fuselage'; +import type { ComponentPropsWithoutRef } from 'react'; + +export type HeaderContentRowProps = ComponentPropsWithoutRef; + +const HeaderContentRow = (props: HeaderContentRowProps) => ( + +); + +export default HeaderContentRow; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderDivider.tsx b/packages/ui-client/src/components/HeaderV1/HeaderDivider.tsx new file mode 100644 index 0000000000000..2beadec2d0882 --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderDivider.tsx @@ -0,0 +1,5 @@ +import { Divider } from '@rocket.chat/fuselage'; + +const HeaderDivider = () => ; + +export default HeaderDivider; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderIcon.tsx b/packages/ui-client/src/components/HeaderV1/HeaderIcon.tsx new file mode 100644 index 0000000000000..c811c3c7b7404 --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderIcon.tsx @@ -0,0 +1,14 @@ +import { Box, Icon } from '@rocket.chat/fuselage'; +import type { ComponentPropsWithoutRef, ReactElement } from 'react'; +import { isValidElement } from 'react'; + +export type HeaderIconProps = { icon: ReactElement | ComponentPropsWithoutRef | null }; + +const HeaderIcon = ({ icon }: HeaderIconProps) => + icon && ( + + {isValidElement(icon) ? icon : } + + ); + +export default HeaderIcon; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderState.tsx b/packages/ui-client/src/components/HeaderV1/HeaderState.tsx new file mode 100644 index 0000000000000..0368175d08f7c --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderState.tsx @@ -0,0 +1,17 @@ +import { Icon, IconButton } from '@rocket.chat/fuselage'; +import type { Keys as IconName } from '@rocket.chat/icons'; +import type { AllHTMLAttributes, ComponentPropsWithoutRef, MouseEventHandler } from 'react'; + +export type HeaderStateProps = + | (Pick, 'color' | 'title' | 'icon'> & { + onClick: MouseEventHandler; + } & Omit, 'is'>) + | (Omit, 'name' | 'onClick'> & { + icon: IconName; + onClick?: undefined; + }); + +const HeaderState = (props: HeaderStateProps) => + props.onClick ? : ; + +export default HeaderState; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderSubtitle.tsx b/packages/ui-client/src/components/HeaderV1/HeaderSubtitle.tsx new file mode 100644 index 0000000000000..eef2190739743 --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderSubtitle.tsx @@ -0,0 +1,8 @@ +import { Box } from '@rocket.chat/fuselage'; +import type { ComponentPropsWithoutRef } from 'react'; + +export type HeaderSubtitleProps = ComponentPropsWithoutRef; + +const HeaderSubtitle = (props: HeaderSubtitleProps) => ; + +export default HeaderSubtitle; diff --git a/packages/ui-client/src/components/Header/HeaderTag/HeaderTag.tsx b/packages/ui-client/src/components/HeaderV1/HeaderTag/HeaderTag.tsx similarity index 100% rename from packages/ui-client/src/components/Header/HeaderTag/HeaderTag.tsx rename to packages/ui-client/src/components/HeaderV1/HeaderTag/HeaderTag.tsx diff --git a/packages/ui-client/src/components/Header/HeaderTag/HeaderTagIcon.tsx b/packages/ui-client/src/components/HeaderV1/HeaderTag/HeaderTagIcon.tsx similarity index 100% rename from packages/ui-client/src/components/Header/HeaderTag/HeaderTagIcon.tsx rename to packages/ui-client/src/components/HeaderV1/HeaderTag/HeaderTagIcon.tsx diff --git a/packages/ui-client/src/components/Header/HeaderTag/HeaderTagSkeleton.tsx b/packages/ui-client/src/components/HeaderV1/HeaderTag/HeaderTagSkeleton.tsx similarity index 100% rename from packages/ui-client/src/components/Header/HeaderTag/HeaderTagSkeleton.tsx rename to packages/ui-client/src/components/HeaderV1/HeaderTag/HeaderTagSkeleton.tsx diff --git a/packages/ui-client/src/components/Header/HeaderTag/index.ts b/packages/ui-client/src/components/HeaderV1/HeaderTag/index.ts similarity index 100% rename from packages/ui-client/src/components/Header/HeaderTag/index.ts rename to packages/ui-client/src/components/HeaderV1/HeaderTag/index.ts diff --git a/packages/ui-client/src/components/HeaderV1/HeaderTitle.tsx b/packages/ui-client/src/components/HeaderV1/HeaderTitle.tsx new file mode 100644 index 0000000000000..ad5e1023521fe --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderTitle.tsx @@ -0,0 +1,8 @@ +import { Box } from '@rocket.chat/fuselage'; +import type { ComponentPropsWithoutRef } from 'react'; + +export type HeaderTitleProps = ComponentPropsWithoutRef; + +const HeaderTitle = (props: HeaderTitleProps) => ; + +export default HeaderTitle; diff --git a/packages/ui-client/src/components/HeaderV1/HeaderTitleButton.tsx b/packages/ui-client/src/components/HeaderV1/HeaderTitleButton.tsx new file mode 100644 index 0000000000000..69adba8879b08 --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/HeaderTitleButton.tsx @@ -0,0 +1,27 @@ +import { css } from '@rocket.chat/css-in-js'; +import { Box, Palette } from '@rocket.chat/fuselage'; +import type { ComponentPropsWithoutRef } from 'react'; + +export type HeaderTitleButtonProps = { className?: string } & ComponentPropsWithoutRef; + +const HeaderTitleButton = ({ className, ...props }: HeaderTitleButtonProps) => { + const customClass = css` + border-width: 1px; + border-style: solid; + border-color: transparent; + + &:hover { + cursor: pointer; + background-color: ${Palette.surface['surface-hover']}; + } + &:focus-visible { + outline: 0; + box-shadow: 0 0 0 2px ${Palette.stroke['stroke-extra-light-highlight']}; + border-color: ${Palette.stroke['stroke-highlight']}; + } + `; + + return ; +}; + +export default HeaderTitleButton; diff --git a/packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbar.tsx b/packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbar.tsx similarity index 100% rename from packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbar.tsx rename to packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbar.tsx diff --git a/packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarAction.tsx b/packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbarAction.tsx similarity index 100% rename from packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarAction.tsx rename to packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbarAction.tsx diff --git a/packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarActionBadge.tsx b/packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbarActionBadge.tsx similarity index 100% rename from packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarActionBadge.tsx rename to packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbarActionBadge.tsx diff --git a/packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarDivider.tsx b/packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbarDivider.tsx similarity index 100% rename from packages/ui-client/src/components/Header/HeaderToolbar/HeaderToolbarDivider.tsx rename to packages/ui-client/src/components/HeaderV1/HeaderToolbar/HeaderToolbarDivider.tsx diff --git a/packages/ui-client/src/components/Header/HeaderToolbar/index.ts b/packages/ui-client/src/components/HeaderV1/HeaderToolbar/index.ts similarity index 100% rename from packages/ui-client/src/components/Header/HeaderToolbar/index.ts rename to packages/ui-client/src/components/HeaderV1/HeaderToolbar/index.ts diff --git a/packages/ui-client/src/components/Header/__snapshots__/Header.spec.tsx.snap b/packages/ui-client/src/components/HeaderV1/__snapshots__/Header.spec.tsx.snap similarity index 100% rename from packages/ui-client/src/components/Header/__snapshots__/Header.spec.tsx.snap rename to packages/ui-client/src/components/HeaderV1/__snapshots__/Header.spec.tsx.snap diff --git a/packages/ui-client/src/components/HeaderV1/index.ts b/packages/ui-client/src/components/HeaderV1/index.ts new file mode 100644 index 0000000000000..adaf047348398 --- /dev/null +++ b/packages/ui-client/src/components/HeaderV1/index.ts @@ -0,0 +1,17 @@ +export { default as HeaderV1 } from './Header'; +export { default as HeaderV1Avatar } from './HeaderAvatar'; +export { default as HeaderV1Content } from './HeaderContent'; +export { default as HeaderV1ContentRow } from './HeaderContentRow'; +export { default as HeaderV1Divider } from './HeaderDivider'; +export { default as HeaderV1Icon } from './HeaderIcon'; +export { default as HeaderV1State } from './HeaderState'; +export { default as HeaderV1Subtitle } from './HeaderSubtitle'; +export { HeaderTag as HeaderV1Tag, HeaderTagIcon as HeaderV1TagIcon, HeaderTagSkeleton as HeaderV1TagSkeleton } from './HeaderTag'; +export { default as HeaderV1Title } from './HeaderTitle'; +export { default as HeaderV1TitleButton } from './HeaderTitleButton'; +export { + HeaderToolbar as HeaderV1Toolbar, + HeaderToolbarAction as HeaderV1ToolbarAction, + HeaderToolbarActionBadge as HeaderV1ToolbarActionBadge, + HeaderToolbarDivider as HeaderV1ToolbarDivider, +} from './HeaderToolbar'; diff --git a/apps/meteor/client/components/Page/Page.stories.tsx b/packages/ui-client/src/components/Page/Page.stories.tsx similarity index 79% rename from apps/meteor/client/components/Page/Page.stories.tsx rename to packages/ui-client/src/components/Page/Page.stories.tsx index 663dbfe15a202..f51996eecbc3e 100644 --- a/apps/meteor/client/components/Page/Page.stories.tsx +++ b/packages/ui-client/src/components/Page/Page.stories.tsx @@ -1,17 +1,19 @@ import { Box, Button, ButtonGroup } from '@rocket.chat/fuselage'; -import { PageScrollableContent } from '@rocket.chat/ui-client'; import type { Meta, StoryFn } from '@storybook/react'; -import type { ComponentType } from 'react'; -import { Page, PageContent, PageHeader, PageScrollableContentWithShadow } from '.'; +import Page from './Page'; +import PageContent from './PageContent'; +import PageHeader from './PageHeader'; +import PageScrollableContent from './PageScrollableContent'; +import PageScrollableContentWithShadow from './PageScrollableContentWithShadow'; export default { component: Page, subcomponents: { - PageContent: PageContent as ComponentType, - PageHeader: PageHeader as ComponentType, - PageScrollableContent: PageScrollableContent as ComponentType, - PageScrollableContentWithShadow: PageScrollableContentWithShadow as ComponentType, + PageContent, + PageHeader, + PageScrollableContent, + PageScrollableContentWithShadow, }, parameters: { layout: 'fullscreen', diff --git a/apps/meteor/client/components/Page/Page.tsx b/packages/ui-client/src/components/Page/Page.tsx similarity index 81% rename from apps/meteor/client/components/Page/Page.tsx rename to packages/ui-client/src/components/Page/Page.tsx index 9ff3a65e9924f..c0e6944a10837 100644 --- a/apps/meteor/client/components/Page/Page.tsx +++ b/packages/ui-client/src/components/Page/Page.tsx @@ -1,5 +1,5 @@ import { Box } from '@rocket.chat/fuselage'; -import type { ReactElement, ComponentProps } from 'react'; +import type { ComponentProps } from 'react'; import { useState } from 'react'; import PageContext from './PageContext'; @@ -8,7 +8,7 @@ type PageProps = Omit, 'backgroundColor'> & { background?: 'light' | 'tint' | 'neutral' | 'room'; }; -const Page = ({ background = 'light', ...props }: PageProps): ReactElement => { +const Page = ({ background = 'light', ...props }: PageProps) => { const [border, setBorder] = useState(false); return ( diff --git a/apps/meteor/client/components/Page/PageBlock.tsx b/packages/ui-client/src/components/Page/PageBlock.tsx similarity index 100% rename from apps/meteor/client/components/Page/PageBlock.tsx rename to packages/ui-client/src/components/Page/PageBlock.tsx diff --git a/apps/meteor/client/components/Page/PageBlockWithBorder.tsx b/packages/ui-client/src/components/Page/PageBlockWithBorder.tsx similarity index 100% rename from apps/meteor/client/components/Page/PageBlockWithBorder.tsx rename to packages/ui-client/src/components/Page/PageBlockWithBorder.tsx diff --git a/apps/meteor/client/components/Page/PageContent.tsx b/packages/ui-client/src/components/Page/PageContent.tsx similarity index 100% rename from apps/meteor/client/components/Page/PageContent.tsx rename to packages/ui-client/src/components/Page/PageContent.tsx diff --git a/apps/meteor/client/components/Page/PageContext.ts b/packages/ui-client/src/components/Page/PageContext.ts similarity index 69% rename from apps/meteor/client/components/Page/PageContext.ts rename to packages/ui-client/src/components/Page/PageContext.ts index b08b9efd5dbac..db99eaff69960 100644 --- a/apps/meteor/client/components/Page/PageContext.ts +++ b/packages/ui-client/src/components/Page/PageContext.ts @@ -3,6 +3,6 @@ import { createContext } from 'react'; type PageContextValue = [boolean, Dispatch>]; -const PageContext = createContext([false, (): void => undefined]); +const PageContext = createContext([false, () => undefined]); export default PageContext; diff --git a/apps/meteor/client/components/Page/PageFooter.tsx b/packages/ui-client/src/components/Page/PageFooter.tsx similarity index 100% rename from apps/meteor/client/components/Page/PageFooter.tsx rename to packages/ui-client/src/components/Page/PageFooter.tsx diff --git a/apps/meteor/client/components/Page/PageHeader.tsx b/packages/ui-client/src/components/Page/PageHeader.tsx similarity index 100% rename from apps/meteor/client/components/Page/PageHeader.tsx rename to packages/ui-client/src/components/Page/PageHeader.tsx diff --git a/apps/meteor/client/components/Page/PageHeaderNoShadow.tsx b/packages/ui-client/src/components/Page/PageHeaderNoShadow.tsx similarity index 89% rename from apps/meteor/client/components/Page/PageHeaderNoShadow.tsx rename to packages/ui-client/src/components/Page/PageHeaderNoShadow.tsx index 15f6f001dec5c..90e019e396df3 100644 --- a/apps/meteor/client/components/Page/PageHeaderNoShadow.tsx +++ b/packages/ui-client/src/components/Page/PageHeaderNoShadow.tsx @@ -1,11 +1,12 @@ import { Box, IconButton } from '@rocket.chat/fuselage'; -import { useDocumentTitle, FeaturePreview, FeaturePreviewOn, FeaturePreviewOff } from '@rocket.chat/ui-client'; import { useLayout } from '@rocket.chat/ui-contexts'; import type { ComponentPropsWithoutRef, ReactNode } from 'react'; import { useTranslation } from 'react-i18next'; +import { useDocumentTitle } from '../../hooks'; +import { FeaturePreview, FeaturePreviewOff, FeaturePreviewOn } from '../FeaturePreview'; import { HeaderToolbar } from '../Header'; -import SidebarToggler from '../SidebarToggler'; +import { SidebarToggler } from '../SidebarToggler'; type PageHeaderProps = { title: ReactNode; diff --git a/apps/meteor/client/components/Page/PageScrollableContentWithShadow.tsx b/packages/ui-client/src/components/Page/PageScrollableContentWithShadow.tsx similarity index 90% rename from apps/meteor/client/components/Page/PageScrollableContentWithShadow.tsx rename to packages/ui-client/src/components/Page/PageScrollableContentWithShadow.tsx index 7219b901395fe..2cb3d8931629d 100644 --- a/apps/meteor/client/components/Page/PageScrollableContentWithShadow.tsx +++ b/packages/ui-client/src/components/Page/PageScrollableContentWithShadow.tsx @@ -1,8 +1,8 @@ -import { PageScrollableContent } from '@rocket.chat/ui-client'; import type { ComponentPropsWithoutRef } from 'react'; import { useContext } from 'react'; import PageContext from './PageContext'; +import PageScrollableContent from './PageScrollableContent'; type PageScrollableContentWithShadowProps = ComponentPropsWithoutRef; diff --git a/packages/ui-client/src/components/Page/index.ts b/packages/ui-client/src/components/Page/index.ts index b1785b021564d..aa9f4c5b16b0d 100644 --- a/packages/ui-client/src/components/Page/index.ts +++ b/packages/ui-client/src/components/Page/index.ts @@ -1 +1,8 @@ +export { default as Page } from './Page'; +export { default as PageContent } from './PageContent'; +export { default as PageFooter } from './PageFooter'; +export { default as PageHeader } from './PageHeader'; export { default as PageScrollableContent } from './PageScrollableContent'; +export { default as PageScrollableContentWithShadow } from './PageScrollableContentWithShadow'; +export { default as PageHeaderNoShadow } from './PageHeaderNoShadow'; +export { default as PageBlockWithBorder } from './PageBlockWithBorder'; diff --git a/apps/meteor/client/components/SidebarToggler/SidebarToggler.tsx b/packages/ui-client/src/components/SidebarToggler/SidebarToggler.tsx similarity index 79% rename from apps/meteor/client/components/SidebarToggler/SidebarToggler.tsx rename to packages/ui-client/src/components/SidebarToggler/SidebarToggler.tsx index 02d22fb868044..52e455a38f015 100644 --- a/apps/meteor/client/components/SidebarToggler/SidebarToggler.tsx +++ b/packages/ui-client/src/components/SidebarToggler/SidebarToggler.tsx @@ -1,12 +1,11 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; import { useLayout, useSession } from '@rocket.chat/ui-contexts'; -import type { ReactElement } from 'react'; import { memo } from 'react'; import SidebarTogglerButton from './SidebarTogglerButton'; -import { useEmbeddedLayout } from '../../hooks/useEmbeddedLayout'; +import { useEmbeddedLayout } from '../../hooks'; -const SideBarToggler = (): ReactElement => { +const SideBarToggler = () => { const { sidebar } = useLayout(); const isLayoutEmbedded = useEmbeddedLayout(); const unreadMessagesBadge = useSession('unread') as number | string | undefined; diff --git a/apps/meteor/client/components/SidebarToggler/SidebarTogglerBadge.tsx b/packages/ui-client/src/components/SidebarToggler/SidebarTogglerBadge.tsx similarity index 100% rename from apps/meteor/client/components/SidebarToggler/SidebarTogglerBadge.tsx rename to packages/ui-client/src/components/SidebarToggler/SidebarTogglerBadge.tsx diff --git a/apps/meteor/client/components/SidebarToggler/SidebarTogglerButton.stories.tsx b/packages/ui-client/src/components/SidebarToggler/SidebarTogglerButton.stories.tsx similarity index 100% rename from apps/meteor/client/components/SidebarToggler/SidebarTogglerButton.stories.tsx rename to packages/ui-client/src/components/SidebarToggler/SidebarTogglerButton.stories.tsx diff --git a/apps/meteor/client/components/SidebarToggler/SidebarTogglerButton.tsx b/packages/ui-client/src/components/SidebarToggler/SidebarTogglerButton.tsx similarity index 100% rename from apps/meteor/client/components/SidebarToggler/SidebarTogglerButton.tsx rename to packages/ui-client/src/components/SidebarToggler/SidebarTogglerButton.tsx diff --git a/packages/ui-client/src/components/SidebarToggler/index.ts b/packages/ui-client/src/components/SidebarToggler/index.ts new file mode 100644 index 0000000000000..51f523ba33c13 --- /dev/null +++ b/packages/ui-client/src/components/SidebarToggler/index.ts @@ -0,0 +1 @@ +export { default as SidebarToggler } from './SidebarToggler'; diff --git a/packages/ui-client/src/components/index.ts b/packages/ui-client/src/components/index.ts index e275cda4125a5..144220b3b5f08 100644 --- a/packages/ui-client/src/components/index.ts +++ b/packages/ui-client/src/components/index.ts @@ -8,8 +8,9 @@ export * from './PasswordVerifier/PasswordVerifier'; export { default as TextSeparator } from './TextSeparator'; export * from './TooltipComponent'; export * as UserStatus from './UserStatus'; -export * from './Header'; +export * from './HeaderV1'; export * from './HeaderV2'; +export * from './Header'; export * from './MultiSelectCustom/MultiSelectCustom'; export * from './FeaturePreview'; export * from './Contextualbar'; @@ -22,3 +23,4 @@ export * from './CustomScrollbars'; export * from './Page'; export * from './InfoPanel'; export * from './GenericTable'; +export * from './SidebarToggler'; diff --git a/packages/ui-client/src/hooks/index.ts b/packages/ui-client/src/hooks/index.ts index 8b57484887f45..f1e84fa4d63b2 100644 --- a/packages/ui-client/src/hooks/index.ts +++ b/packages/ui-client/src/hooks/index.ts @@ -1,9 +1,11 @@ -export * from './useFeaturePreview'; export * from './useDefaultSettingFeaturePreviewList'; +export * from './useDocumentTitle'; +export * from './useDontAskAgain'; +export * from './useEmbeddedLayout'; +export * from './useFeaturePreview'; export * from './useFeaturePreviewList'; +export * from './useLicense'; export * from './usePreferenceFeaturePreviewList'; -export * from './useDocumentTitle'; +export * from './useSafeRefCallback'; export * from './useUserDisplayName'; export * from './useValidatePassword'; -export * from './useSafeRefCallback'; -export * from './useDontAskAgain'; diff --git a/packages/ui-client/src/hooks/useEmbeddedLayout.ts b/packages/ui-client/src/hooks/useEmbeddedLayout.ts new file mode 100644 index 0000000000000..19f83e5498bc6 --- /dev/null +++ b/packages/ui-client/src/hooks/useEmbeddedLayout.ts @@ -0,0 +1,3 @@ +import { useLayout } from '@rocket.chat/ui-contexts'; + +export const useEmbeddedLayout = () => useLayout().isEmbedded; diff --git a/apps/meteor/client/hooks/useLicense.ts b/packages/ui-client/src/hooks/useLicense.ts similarity index 100% rename from apps/meteor/client/hooks/useLicense.ts rename to packages/ui-client/src/hooks/useLicense.ts diff --git a/packages/ui-client/src/hooks/useSafeRefCallback/useSafeRefCallback.spec.tsx b/packages/ui-client/src/hooks/useSafeRefCallback/useSafeRefCallback.spec.tsx index 0d3b4fe503051..5ee76df81567e 100644 --- a/packages/ui-client/src/hooks/useSafeRefCallback/useSafeRefCallback.spec.tsx +++ b/packages/ui-client/src/hooks/useSafeRefCallback/useSafeRefCallback.spec.tsx @@ -91,7 +91,6 @@ describe('useSafeRefCallback', () => { expect(callback).toHaveBeenCalledTimes(4); expect(callback.mock.calls[3][0]).toBe(null); - console.log(cleanup.mock.calls); expect(cleanup).toHaveBeenCalledTimes(3); expect(callback2).toHaveBeenCalledTimes(1); diff --git a/packages/ui-client/src/index.ts b/packages/ui-client/src/index.ts index 1b72ca9d8cb04..a5294ceb4d54c 100644 --- a/packages/ui-client/src/index.ts +++ b/packages/ui-client/src/index.ts @@ -1,4 +1,6 @@ export * from './components'; export * from './helpers'; export * from './hooks'; +export * from './lib'; export * from './providers'; +export * from './views'; diff --git a/packages/ui-client/src/lib/callbacks/Callbacks.spec.ts b/packages/ui-client/src/lib/callbacks/Callbacks.spec.ts new file mode 100644 index 0000000000000..d06b9f103df8a --- /dev/null +++ b/packages/ui-client/src/lib/callbacks/Callbacks.spec.ts @@ -0,0 +1,35 @@ +import { it, expect } from '@jest/globals'; + +import { CallbackPriority, Callbacks } from './Callbacks'; + +it("if the callback doesn't return any value should return the original", async () => { + const test = Callbacks.create<(data: boolean) => boolean>('test'); + + test.add(() => undefined, CallbackPriority.LOW, '1'); + + const result = await test.run(true); + + expect(result).toBe(true); +}); + +it('should return the value returned by the callback', async () => { + const test = Callbacks.create<(data: boolean) => boolean>('test'); + + test.add(() => false, CallbackPriority.LOW, '1'); + + const result = await test.run(true); + + expect(result).toBe(false); +}); + +it('should accumulate the values returned by the callbacks', async () => { + const test = Callbacks.create<(data: number) => number>('test'); + + test.add((old) => old * 5); + + test.add((old) => old * 2); + + expect(await test.run(3)).toBe(30); + + expect(await test.run(2)).toBe(20); +}); diff --git a/packages/ui-client/src/lib/callbacks/Callbacks.ts b/packages/ui-client/src/lib/callbacks/Callbacks.ts new file mode 100644 index 0000000000000..8f62fe3e5f791 --- /dev/null +++ b/packages/ui-client/src/lib/callbacks/Callbacks.ts @@ -0,0 +1,252 @@ +import type { Logger } from '@rocket.chat/logger'; +import { Random } from '@rocket.chat/random'; + +const compareByRanking = + (rank: (x: T) => number) => + (a: T, b: T) => { + return rank(a) - rank(b); + }; + +export enum CallbackPriority { + HIGH = -1000, + MEDIUM = 0, + LOW = 1000, +} + +type Callback = { + (item: unknown, constant?: unknown): Promise; + hook: H; + id: string; + priority: CallbackPriority; + stack: string; +}; + +type CallbackTracker = (callback: Callback) => () => void; + +type HookTracker = (params: { hook: H; length: number }) => () => void; + +export class Callbacks< + TChainedCallbackSignatures extends { + [key: string]: (item: any, constant?: any) => any; + }, + TEventLikeCallbackSignatures extends { + [key: string]: (item: any, constant?: any) => any; + }, + THook extends string = keyof TChainedCallbackSignatures & keyof TEventLikeCallbackSignatures & string, +> { + private logger: Logger | undefined = undefined; + + private trackCallback: CallbackTracker | undefined = undefined; + + private trackHook: HookTracker | undefined = undefined; + + private callbacks = new Map[]>(); + + private sequentialRunners = new Map Promise>(); + + private asyncRunners = new Map unknown>(); + + readonly priority = CallbackPriority; + + setLogger(logger: Logger): void { + this.logger = logger; + } + + setMetricsTrackers({ trackCallback, trackHook }: { trackCallback?: CallbackTracker; trackHook?: HookTracker }): void { + this.trackCallback = trackCallback; + this.trackHook = trackHook; + } + + private runOne(callback: Callback, item: unknown, constant: unknown): Promise { + const stopTracking = this.trackCallback?.(callback); + + return Promise.resolve(callback(item, constant)).finally(stopTracking); + } + + private createSequentialRunner(hook: THook, callbacks: Callback[]): (item: unknown, constant?: unknown) => Promise { + const wrapCallback = + (callback: Callback) => + async (item: unknown, constant?: unknown): Promise => { + this.logger?.debug(`Executing callback with id ${callback.id} for hook ${callback.hook}`); + + return (await this.runOne(callback, item, constant)) ?? item; + }; + + const identity = (item: TItem): Promise => Promise.resolve(item); + + const pipe = + (curr: (item: unknown, constant?: unknown) => Promise, next: (item: unknown, constant?: unknown) => Promise) => + async (item: unknown, constant?: unknown): Promise => + next(await curr(item, constant), constant); + + const fn = callbacks.map(wrapCallback).reduce(pipe, identity); + + return async (item: unknown, constant?: unknown): Promise => { + const stopTracking = this.trackHook?.({ hook, length: callbacks.length }); + + return fn(item, constant).finally(() => stopTracking?.()); + }; + } + + private createAsyncRunner(_: THook, callbacks: Callback[]) { + return (item: unknown, constant?: unknown): unknown => { + if (typeof window !== 'undefined') { + throw new Error('callbacks.runAsync on client server not allowed'); + } + + for (const callback of callbacks) { + setTimeout(() => { + void this.runOne(callback, item, constant); + }, 0); + } + + return item; + }; + } + + getCallbacks(hook: THook): Callback[] { + return this.callbacks.get(hook) ?? []; + } + + setCallbacks(hook: THook, callbacks: Callback[]): void { + this.callbacks.set(hook, callbacks); + this.sequentialRunners.set(hook, this.createSequentialRunner(hook, callbacks)); + this.asyncRunners.set(hook, this.createAsyncRunner(hook, callbacks)); + } + + /** + * Add a callback function to a hook + * + * @param hook the name of the hook + * @param callback the callback function + * @param priority the callback run priority (order) + * @param id human friendly name for this callback + */ + add( + hook: Hook, + callback: TEventLikeCallbackSignatures[Hook], + priority?: CallbackPriority, + id?: string, + ): () => void; + + add( + hook: Hook, + callback: TChainedCallbackSignatures[Hook], + priority?: CallbackPriority, + id?: string, + ): () => void; + + add( + hook: THook, + callback: (item: TItem, constant?: TConstant) => TNextItem, + priority?: CallbackPriority, + id?: string, + ): () => void; + + add( + hook: THook, + callback: (item: unknown, constant?: unknown) => unknown, + priority = this.priority.MEDIUM, + id = Random.id(), + ): () => void { + const callbacks = this.getCallbacks(hook); + + if (callbacks.some((cb) => cb.id === id)) { + return () => { + this.remove(hook, id); + }; + } + + callbacks.push( + Object.assign(callback as Callback, { + hook, + priority, + id, + stack: new Error().stack, + }), + ); + callbacks.sort(compareByRanking((callback: Callback): number => callback.priority ?? this.priority.MEDIUM)); + + this.setCallbacks(hook, callbacks); + + return () => { + this.remove(hook, id); + }; + } + + /** + * Remove a callback from a hook + * + * @param hook the name of the hook + * @param id the callback's id + */ + remove(hook: THook, id: string): void { + const hooks = this.getCallbacks(hook).filter((callback) => callback.id !== id); + this.setCallbacks(hook, hooks); + } + + run(hook: Hook, ...args: Parameters): Promise; + + run( + hook: Hook, + ...args: Parameters + ): Promise>; + + run(hook: THook, item: TItem, constant?: TConstant): Promise; + + /** + * Successively run all of a hook's callbacks on an item + * + * @param hook the name of the hook + * @param item the post, comment, modifier, etc. on which to run the callbacks + * @param constant an optional constant that will be passed along to each callback + * @returns returns the item after it's been through all the callbacks for this hook + */ + run(hook: THook, item: unknown, constant?: unknown): Promise { + const runner = this.sequentialRunners.get(hook) ?? (async (item: unknown, _constant?: unknown): Promise => item); + return runner(item, constant); + } + + runAsync(hook: Hook, ...args: Parameters): void; + + /** + * Successively run all of a hook's callbacks on an item, in async mode (only works on server) + * + * @param hook the name of the hook + * @param item the post, comment, modifier, etc. on which to run the callbacks + * @param constant an optional constant that will be passed along to each callback + * @returns the post, comment, modifier, etc. on which to run the callbacks + */ + runAsync(hook: THook, item: unknown, constant?: unknown): unknown { + const runner = this.asyncRunners.get(hook) ?? ((item: unknown, _constant?: unknown): unknown => item); + return runner(item, constant); + } + + static create any | Promise>( + hook: string, + ): Cb[0], ReturnType, Parameters[1]>; + + static create(hook: string): Cb { + const callbacks = new Callbacks(); + + return { + add: (callback, priority, id) => callbacks.add(hook as any, callback, priority, id), + remove: (id) => callbacks.remove(hook as any, id), + run: (item, constant) => callbacks.run(hook as any, item, constant) as any, + }; + } +} + +/** + * Callback hooks provide an easy way to add extra steps to common operations. + * @deprecated + */ +type Cb = { + add: ( + callback: (item: I, constant: C) => Promise | R | undefined | void, + priority?: CallbackPriority, + id?: string, + ) => void; + remove: (id: string) => void; + run: (item: I, constant?: C) => Promise; +}; diff --git a/packages/ui-client/src/lib/callbacks/afterLogoutCleanUpCallback.ts b/packages/ui-client/src/lib/callbacks/afterLogoutCleanUpCallback.ts new file mode 100644 index 0000000000000..332c2531ca4c5 --- /dev/null +++ b/packages/ui-client/src/lib/callbacks/afterLogoutCleanUpCallback.ts @@ -0,0 +1,4 @@ +import { Callbacks } from './Callbacks'; + +/** @deprecated - replace with UserProvider onLogout callback */ +export const afterLogoutCleanUpCallback = Callbacks.create('afterLogoutCleanUp'); diff --git a/packages/ui-client/src/lib/callbacks/clientCallbacks.spec.ts b/packages/ui-client/src/lib/callbacks/clientCallbacks.spec.ts new file mode 100644 index 0000000000000..81e04f1e79a06 --- /dev/null +++ b/packages/ui-client/src/lib/callbacks/clientCallbacks.spec.ts @@ -0,0 +1,33 @@ +import { it, expect } from '@jest/globals'; + +import { clientCallbacks } from './clientCallbacks'; + +it("if the callback doesn't return any value should return the original", async () => { + clientCallbacks.add('test', () => undefined, clientCallbacks.priority.LOW, '1'); + + const result = await clientCallbacks.run('test', true); + + expect(result).toBe(true); + + clientCallbacks.remove('test', '1'); +}); + +it('should return the value returned by the callback', async () => { + clientCallbacks.add('test', () => false, clientCallbacks.priority.LOW, '1'); + + const result = await clientCallbacks.run('test', true); + + expect(result).toBe(false); + + clientCallbacks.remove('test', '1'); +}); + +it('should accumulate the values returned by the callbacks', async () => { + clientCallbacks.add('test', (old: number) => old * 5); + + clientCallbacks.add('test', (old: number) => old * 2); + + expect(await clientCallbacks.run('test', 3)).toBe(30); + + expect(await clientCallbacks.run('test', 2)).toBe(20); +}); diff --git a/packages/ui-client/src/lib/callbacks/clientCallbacks.ts b/packages/ui-client/src/lib/callbacks/clientCallbacks.ts new file mode 100644 index 0000000000000..6d2b81497a02c --- /dev/null +++ b/packages/ui-client/src/lib/callbacks/clientCallbacks.ts @@ -0,0 +1,59 @@ +import type { IMessage, IRoom, IUser } from '@rocket.chat/core-typings'; +import type { Updater } from '@rocket.chat/models'; + +import { Callbacks } from './Callbacks'; + +/** + * Callbacks returning void, like event listeners. + * + * TODO: move those to event-based systems + */ +// eslint-disable-next-line @typescript-eslint/naming-convention +interface EventLikeCallbackSignatures { + afterCreateChannel: (owner: IUser, room: IRoom) => void; + afterSaveMessage: (message: IMessage, params: { room: IRoom; user: IUser; roomUpdater?: Updater }) => void; + usernameSet: () => void; +} + +/** + * Callbacks that are supposed to be composed like a chain. + * + * TODO: develop a middleware alternative and grant independence of execution order + */ +type ChainedCallbackSignatures = { + roomNameChanged: (room: IRoom) => void; + roomTopicChanged: (room: IRoom) => void; + roomAnnouncementChanged: (room: IRoom) => void; + roomTypeChanged: (room: IRoom) => void; + archiveRoom: (room: IRoom) => void; + unarchiveRoom: (room: IRoom) => void; + roomAvatarChanged: (room: IRoom) => void; +}; + +export type Hook = + | keyof EventLikeCallbackSignatures + | keyof ChainedCallbackSignatures + | 'loginPageStateChange' + | 'streamMessage' + | 'streamNewMessage' + | 'userAvatarSet' + | 'userConfirmationEmailRequested' + | 'userForgotPasswordEmailRequested' + | 'userPasswordReset' + | 'userRegistered' + | 'userStatusManuallySet' + | 'test'; + +/** + * Callback hooks provide an easy way to add extra steps to common operations. + * @deprecated + */ +export const clientCallbacks = new Callbacks< + { + [key in keyof ChainedCallbackSignatures]: ChainedCallbackSignatures[key]; + }, + { + [key in keyof EventLikeCallbackSignatures]: EventLikeCallbackSignatures[key]; + }, + Hook +>(); diff --git a/packages/ui-client/src/lib/callbacks/index.ts b/packages/ui-client/src/lib/callbacks/index.ts new file mode 100644 index 0000000000000..aad68d16cef28 --- /dev/null +++ b/packages/ui-client/src/lib/callbacks/index.ts @@ -0,0 +1,2 @@ +export { clientCallbacks } from './clientCallbacks'; +export { afterLogoutCleanUpCallback } from './afterLogoutCleanUpCallback'; diff --git a/packages/ui-client/src/lib/index.ts b/packages/ui-client/src/lib/index.ts new file mode 100644 index 0000000000000..45d5bf112a218 --- /dev/null +++ b/packages/ui-client/src/lib/index.ts @@ -0,0 +1,2 @@ +export * from './callbacks'; +export * from './links'; diff --git a/packages/ui-client/src/lib/links.ts b/packages/ui-client/src/lib/links.ts new file mode 100644 index 0000000000000..4c97d4696fff5 --- /dev/null +++ b/packages/ui-client/src/lib/links.ts @@ -0,0 +1,57 @@ +export const GO_ROCKET_CHAT_PREFIX = 'https://go.rocket.chat'; + +export const links = { + go: { + accessibilityAndAppearance: `${GO_ROCKET_CHAT_PREFIX}/i/accessibility-and-appearance`, + accessibilityStatement: `${GO_ROCKET_CHAT_PREFIX}/i/accessibility-statement`, + airgappedRestriction: `${GO_ROCKET_CHAT_PREFIX}/i/airgapped-restriction`, + appsDocumentation: `${GO_ROCKET_CHAT_PREFIX}/i/developing-an-app`, + contactSales: `${GO_ROCKET_CHAT_PREFIX}/i/contact-sales`, + contactSalesProduct: `${GO_ROCKET_CHAT_PREFIX}/i/contact-sales-product`, + desktopAppWindows: `${GO_ROCKET_CHAT_PREFIX}/i/hp-desktop-app-windows`, + desktopAppMac: `${GO_ROCKET_CHAT_PREFIX}/i/hp-desktop-app-mac`, + desktopAppLinux: `${GO_ROCKET_CHAT_PREFIX}/i/hp-desktop-app-linux`, + documentation: `${GO_ROCKET_CHAT_PREFIX}/i/hp-documentation`, + downgrade: `${GO_ROCKET_CHAT_PREFIX}/i/docs-downgrade`, + e2eeGuide: `${GO_ROCKET_CHAT_PREFIX}/i/e2ee-guide`, + fingerPrintChangedFaq: `${GO_ROCKET_CHAT_PREFIX}/i/fingerprint-changed-faq`, + getAddons: `${GO_ROCKET_CHAT_PREFIX}/i/get-addons`, + glossary: `${GO_ROCKET_CHAT_PREFIX}/i/glossary`, + homepage: `${GO_ROCKET_CHAT_PREFIX}/home`, + invite: `${GO_ROCKET_CHAT_PREFIX}/invite?host=open.rocket.chat&path=invite%2F5sBs3a`, + ldapDocs: `${GO_ROCKET_CHAT_PREFIX}/i/ldap-docs`, + matrixFederation: `${GO_ROCKET_CHAT_PREFIX}/i/matrix-federation`, + mobileAppGoogle: `${GO_ROCKET_CHAT_PREFIX}/i/hp-mobile-app-google`, + mobileAppApple: `${GO_ROCKET_CHAT_PREFIX}/i/hp-mobile-app-apple`, + omnichannelDocs: `${GO_ROCKET_CHAT_PREFIX}/i/omnichannel-docs`, + pricing: `${GO_ROCKET_CHAT_PREFIX}/i/see-paid-plan-customize-homepage`, + pricingProduct: `${GO_ROCKET_CHAT_PREFIX}/i/pricing-product`, + registerInfoCollected: `${GO_ROCKET_CHAT_PREFIX}/i/register-info-collected`, + supportPrerequisites: `${GO_ROCKET_CHAT_PREFIX}/i/support-prerequisites`, + trial: `${GO_ROCKET_CHAT_PREFIX}/i/docs-trial`, + versionSupport: `${GO_ROCKET_CHAT_PREFIX}/i/version-support`, + updateProduct: `${GO_ROCKET_CHAT_PREFIX}/i/update-product`, + }, + /** @deprecated use `go.rocket.chat` links */ + desktopAppDownload: 'https://rocket.chat/download', + /** @deprecated use `go.rocket.chat` links */ + enterprise: 'https://www.rocket.chat/enterprise', + /** @deprecated use `go.rocket.chat` links */ + outboundDocs: 'https://docs.rocket.chat/docs/p2p-outbound-messaging', + /** @deprecated use `go.rocket.chat` links */ + privacy: 'https://rocket.chat/privacy', + /** @deprecated use `go.rocket.chat` links */ + retentionPolicy: 'https://docs.rocket.chat/use-rocket.chat/workspace-administration/settings/retention-policies', + /** @deprecated use `go.rocket.chat` links */ + rocketChat: 'https://rocket.chat/', + /** @deprecated use `go.rocket.chat` links */ + rocketChatUpdated: 'https://rocket.chat/updated', + /** @deprecated use `go.rocket.chat` links */ + scaling: 'https://docs.rocket.chat/deploy/scaling-rocket.chat', + /** @deprecated use `go.rocket.chat` links */ + terms: 'https://rocket.chat/terms', + /** @deprecated use `go.rocket.chat` links */ + updatingRocketChat: 'https://docs.rocket.chat/v1/docs/en/updating-rocketchat', + /** @deprecated use `go.rocket.chat` links */ + webhooks: 'https://docs.rocket.chat/use-rocket.chat/omnichannel/webhooks', +} as const; diff --git a/packages/ui-client/src/methods.d.ts b/packages/ui-client/src/methods.d.ts new file mode 100644 index 0000000000000..fe12902b53e17 --- /dev/null +++ b/packages/ui-client/src/methods.d.ts @@ -0,0 +1,23 @@ +import '@rocket.chat/ddp-client'; +import type { ISetting } from '@rocket.chat/core-typings'; + +declare module '@rocket.chat/ddp-client' { + // eslint-disable-next-line @typescript-eslint/naming-convention + interface ServerMethods { + getSetupWizardParameters(): Promise<{ + settings: ISetting[]; + serverAlreadyRegistered: boolean; + }>; + 'cloud:getWorkspaceRegisterData': () => string; + registerUser( + formData: + | { email: string; pass: string; username: IUser['username']; name?: string; secretURL?: string; reason?: string } + | { email?: null }, + ): + | { + token: string; + when: Date; + } + | string; + } +} diff --git a/packages/ui-client/src/routes.d.ts b/packages/ui-client/src/routes.d.ts new file mode 100644 index 0000000000000..fee0875c16635 --- /dev/null +++ b/packages/ui-client/src/routes.d.ts @@ -0,0 +1,10 @@ +import '@rocket.chat/ui-contexts'; + +declare module '@rocket.chat/ui-contexts' { + interface IRouterPaths { + 'setup-wizard': { + pathname: `/setup-wizard${`/${string}` | ''}`; + pattern: '/setup-wizard/:step?'; + }; + } +} diff --git a/packages/ui-client/src/views/index.ts b/packages/ui-client/src/views/index.ts new file mode 100644 index 0000000000000..1cbecb9458dd4 --- /dev/null +++ b/packages/ui-client/src/views/index.ts @@ -0,0 +1,3 @@ +import { lazy } from 'react'; + +export const SetupWizardRoute = lazy(() => import('./setupWizard/SetupWizardRoute')); diff --git a/apps/meteor/client/views/setupWizard/SetupWizardPage.tsx b/packages/ui-client/src/views/setupWizard/SetupWizardPage.tsx similarity index 100% rename from apps/meteor/client/views/setupWizard/SetupWizardPage.tsx rename to packages/ui-client/src/views/setupWizard/SetupWizardPage.tsx diff --git a/apps/meteor/client/views/setupWizard/SetupWizardRoute.tsx b/packages/ui-client/src/views/setupWizard/SetupWizardRoute.tsx similarity index 94% rename from apps/meteor/client/views/setupWizard/SetupWizardRoute.tsx rename to packages/ui-client/src/views/setupWizard/SetupWizardRoute.tsx index 585a238e93e2b..c4d6188314f77 100644 --- a/apps/meteor/client/views/setupWizard/SetupWizardRoute.tsx +++ b/packages/ui-client/src/views/setupWizard/SetupWizardRoute.tsx @@ -1,12 +1,12 @@ import { useBreakpoints } from '@rocket.chat/fuselage-hooks'; import { DarkModeProvider } from '@rocket.chat/layout'; -import { ModalRegion } from '@rocket.chat/ui-client'; import type { ReactElement } from 'react'; import SetupWizardPage from './SetupWizardPage'; import { useBodyPosition } from './hooks/useBodyPosition'; import { useRouteLock } from './hooks/useRouteLock'; import SetupWizardProvider from './providers/SetupWizardProvider'; +import { ModalRegion } from '../../components'; export const SetupWizardRoute = (): ReactElement | null => { const locked = useRouteLock(); diff --git a/apps/meteor/client/views/setupWizard/contexts/SetupWizardContext.tsx b/packages/ui-client/src/views/setupWizard/contexts/SetupWizardContext.tsx similarity index 100% rename from apps/meteor/client/views/setupWizard/contexts/SetupWizardContext.tsx rename to packages/ui-client/src/views/setupWizard/contexts/SetupWizardContext.tsx diff --git a/apps/meteor/client/views/setupWizard/hooks/useBodyPosition.ts b/packages/ui-client/src/views/setupWizard/hooks/useBodyPosition.ts similarity index 100% rename from apps/meteor/client/views/setupWizard/hooks/useBodyPosition.ts rename to packages/ui-client/src/views/setupWizard/hooks/useBodyPosition.ts diff --git a/apps/meteor/client/views/setupWizard/hooks/useParameters.ts b/packages/ui-client/src/views/setupWizard/hooks/useParameters.ts similarity index 100% rename from apps/meteor/client/views/setupWizard/hooks/useParameters.ts rename to packages/ui-client/src/views/setupWizard/hooks/useParameters.ts diff --git a/apps/meteor/client/views/setupWizard/hooks/useRouteLock.ts b/packages/ui-client/src/views/setupWizard/hooks/useRouteLock.ts similarity index 90% rename from apps/meteor/client/views/setupWizard/hooks/useRouteLock.ts rename to packages/ui-client/src/views/setupWizard/hooks/useRouteLock.ts index e771dea6eeb58..5e3139fef1de2 100644 --- a/apps/meteor/client/views/setupWizard/hooks/useRouteLock.ts +++ b/packages/ui-client/src/views/setupWizard/hooks/useRouteLock.ts @@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'; export const useRouteLock = (): boolean => { const [locked, setLocked] = useState(true); - const setupWizardState = useSetting('Show_Setup_Wizard'); + const setupWizardState = useSetting<'pending' | 'in_progress' | 'completed'>('Show_Setup_Wizard', 'pending'); const userId = useUserId(); const user = useDebouncedValue(useUser(), 100); const hasAdminRole = useRole('admin'); diff --git a/apps/meteor/client/views/setupWizard/hooks/useStepRouting.ts b/packages/ui-client/src/views/setupWizard/hooks/useStepRouting.ts similarity index 100% rename from apps/meteor/client/views/setupWizard/hooks/useStepRouting.ts rename to packages/ui-client/src/views/setupWizard/hooks/useStepRouting.ts diff --git a/apps/meteor/client/views/setupWizard/providers/SetupWizardProvider.tsx b/packages/ui-client/src/views/setupWizard/providers/SetupWizardProvider.tsx similarity index 95% rename from apps/meteor/client/views/setupWizard/providers/SetupWizardProvider.tsx rename to packages/ui-client/src/views/setupWizard/providers/SetupWizardProvider.tsx index 7c91d668bdaac..b833a7983d46c 100644 --- a/apps/meteor/client/views/setupWizard/providers/SetupWizardProvider.tsx +++ b/packages/ui-client/src/views/setupWizard/providers/SetupWizardProvider.tsx @@ -1,4 +1,5 @@ import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { validateEmail } from '@rocket.chat/tools'; import { useToastMessageDispatch, useSessionDispatch, @@ -13,9 +14,8 @@ import { useQueryClient } from '@tanstack/react-query'; import type { ReactElement, ContextType } from 'react'; import { useCallback, useMemo, useState } from 'react'; -import { callbacks } from '../../../../lib/callbacks'; -import { validateEmail } from '../../../../lib/emailValidator'; -import { useInvalidateLicense } from '../../../hooks/useLicense'; +import { useInvalidateLicense } from '../../../hooks'; +import { clientCallbacks } from '../../../lib'; import { SetupWizardContext } from '../contexts/SetupWizardContext'; import { useParameters } from '../hooks/useParameters'; import { useStepRouting } from '../hooks/useStepRouting'; @@ -81,7 +81,7 @@ const SetupWizardProvider = ({ children }: { children: ReactElement }): ReactEle password: string; }): Promise => { await registerUser({ name: fullname, username, email, pass: password }); - void callbacks.run('userRegistered', {}); + void clientCallbacks.run('userRegistered', {}); try { await loginWithPassword(email, password); @@ -100,7 +100,7 @@ const SetupWizardProvider = ({ children }: { children: ReactElement }): ReactEle await setBasicInfo({ data: { username } }); await dispatchSettings([{ _id: 'Organization_Email', value: email }]); - void callbacks.run('usernameSet', {}); + void clientCallbacks.run('usernameSet', {}); }, [registerUser, setForceLogin, setBasicInfo, dispatchSettings, loginWithPassword, dispatchToastMessage, t], ); diff --git a/apps/meteor/client/views/setupWizard/steps/AdminInfoStep.tsx b/packages/ui-client/src/views/setupWizard/steps/AdminInfoStep.tsx similarity index 100% rename from apps/meteor/client/views/setupWizard/steps/AdminInfoStep.tsx rename to packages/ui-client/src/views/setupWizard/steps/AdminInfoStep.tsx diff --git a/apps/meteor/client/views/setupWizard/steps/CloudAccountConfirmation.tsx b/packages/ui-client/src/views/setupWizard/steps/CloudAccountConfirmation.tsx similarity index 100% rename from apps/meteor/client/views/setupWizard/steps/CloudAccountConfirmation.tsx rename to packages/ui-client/src/views/setupWizard/steps/CloudAccountConfirmation.tsx diff --git a/apps/meteor/client/views/setupWizard/steps/OrganizationInfoStep.tsx b/packages/ui-client/src/views/setupWizard/steps/OrganizationInfoStep.tsx similarity index 100% rename from apps/meteor/client/views/setupWizard/steps/OrganizationInfoStep.tsx rename to packages/ui-client/src/views/setupWizard/steps/OrganizationInfoStep.tsx diff --git a/apps/meteor/client/views/setupWizard/steps/RegisterServerStep.tsx b/packages/ui-client/src/views/setupWizard/steps/RegisterServerStep.tsx similarity index 98% rename from apps/meteor/client/views/setupWizard/steps/RegisterServerStep.tsx rename to packages/ui-client/src/views/setupWizard/steps/RegisterServerStep.tsx index 683dd2efb8413..dd6013c6b1c5e 100644 --- a/apps/meteor/client/views/setupWizard/steps/RegisterServerStep.tsx +++ b/packages/ui-client/src/views/setupWizard/steps/RegisterServerStep.tsx @@ -5,7 +5,7 @@ import type { ReactElement, ComponentProps } from 'react'; import { useState } from 'react'; import { I18nextProvider, useTranslation } from 'react-i18next'; -import { useInvalidateLicense } from '../../../hooks/useLicense'; +import { useInvalidateLicense } from '../../../hooks'; import { links } from '../../../lib/links'; import { useSetupWizardContext } from '../contexts/SetupWizardContext'; diff --git a/yarn.lock b/yarn.lock index f1e204a00ffee..94a870dfa1e18 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8493,7 +8493,7 @@ __metadata: "@rocket.chat/core-services": "workspace:^" "@rocket.chat/core-typings": "workspace:^" "@rocket.chat/ddp-client": "workspace:^" - "@rocket.chat/emitter": "npm:~0.31.25" + "@rocket.chat/emitter": "npm:^0.31.25" "@rocket.chat/eslint-config": "workspace:^" "@rocket.chat/federation-sdk": "npm:0.3.5" "@rocket.chat/http-router": "workspace:^" @@ -9585,7 +9585,7 @@ __metadata: languageName: unknown linkType: soft -"@rocket.chat/models@workspace:^, @rocket.chat/models@workspace:packages/models": +"@rocket.chat/models@workspace:^, @rocket.chat/models@workspace:packages/models, @rocket.chat/models@workspace:~": version: 0.0.0-use.local resolution: "@rocket.chat/models@workspace:packages/models" dependencies: @@ -9770,7 +9770,7 @@ __metadata: languageName: unknown linkType: soft -"@rocket.chat/onboarding-ui@npm:~0.36.1": +"@rocket.chat/onboarding-ui@npm:~0.36.0, @rocket.chat/onboarding-ui@npm:~0.36.1": version: 0.36.1 resolution: "@rocket.chat/onboarding-ui@npm:0.36.1" dependencies: @@ -10270,6 +10270,8 @@ __metadata: "@rocket.chat/icons": "npm:~0.46.0" "@rocket.chat/jest-presets": "workspace:~" "@rocket.chat/mock-providers": "workspace:^" + "@rocket.chat/models": "workspace:~" + "@rocket.chat/onboarding-ui": "npm:~0.36.0" "@rocket.chat/storybook-config": "workspace:~" "@rocket.chat/tsconfig": "workspace:*" "@rocket.chat/ui-avatar": "workspace:~" @@ -32818,7 +32820,7 @@ __metadata: "@types/stream-buffers": "npm:^3.0.8" node-gyp: "npm:^10.2.0" ts-node: "npm:^10.9.2" - turbo: "npm:~2.6.1" + turbo: "npm:~2.6.3" typescript: "npm:~5.9.3" languageName: unknown linkType: soft @@ -35879,58 +35881,58 @@ __metadata: languageName: node linkType: hard -"turbo-darwin-64@npm:2.6.1": - version: 2.6.1 - resolution: "turbo-darwin-64@npm:2.6.1" +"turbo-darwin-64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-darwin-64@npm:2.6.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"turbo-darwin-arm64@npm:2.6.1": - version: 2.6.1 - resolution: "turbo-darwin-arm64@npm:2.6.1" +"turbo-darwin-arm64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-darwin-arm64@npm:2.6.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"turbo-linux-64@npm:2.6.1": - version: 2.6.1 - resolution: "turbo-linux-64@npm:2.6.1" +"turbo-linux-64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-linux-64@npm:2.6.3" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"turbo-linux-arm64@npm:2.6.1": - version: 2.6.1 - resolution: "turbo-linux-arm64@npm:2.6.1" +"turbo-linux-arm64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-linux-arm64@npm:2.6.3" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"turbo-windows-64@npm:2.6.1": - version: 2.6.1 - resolution: "turbo-windows-64@npm:2.6.1" +"turbo-windows-64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-windows-64@npm:2.6.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"turbo-windows-arm64@npm:2.6.1": - version: 2.6.1 - resolution: "turbo-windows-arm64@npm:2.6.1" +"turbo-windows-arm64@npm:2.6.3": + version: 2.6.3 + resolution: "turbo-windows-arm64@npm:2.6.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"turbo@npm:~2.6.1": - version: 2.6.1 - resolution: "turbo@npm:2.6.1" - dependencies: - turbo-darwin-64: "npm:2.6.1" - turbo-darwin-arm64: "npm:2.6.1" - turbo-linux-64: "npm:2.6.1" - turbo-linux-arm64: "npm:2.6.1" - turbo-windows-64: "npm:2.6.1" - turbo-windows-arm64: "npm:2.6.1" +"turbo@npm:~2.6.3": + version: 2.6.3 + resolution: "turbo@npm:2.6.3" + dependencies: + turbo-darwin-64: "npm:2.6.3" + turbo-darwin-arm64: "npm:2.6.3" + turbo-linux-64: "npm:2.6.3" + turbo-linux-arm64: "npm:2.6.3" + turbo-windows-64: "npm:2.6.3" + turbo-windows-arm64: "npm:2.6.3" dependenciesMeta: turbo-darwin-64: optional: true @@ -35946,7 +35948,7 @@ __metadata: optional: true bin: turbo: bin/turbo - checksum: 10/7bbd7cd3d36ba4d9061c32b07f1d86de946add71d29b5d9098841c195d2d6d60128db2da8b4fa1ed9c69959e544d0e4b063ecf47fdbfb70d7248bfb4dac8f30a + checksum: 10/81301581f00d586397aa49cdeecf0e4d90a277c0ba74b42544065065e0e0dd6a25675e8cb04cf7c9d49a21c2d45a38da5809235379a6a7916e616c45c634b0cf languageName: node linkType: hard