Skip to content

Commit

Permalink
Chore: Migrate some small helper functions to TypeScript (#25666)
Browse files Browse the repository at this point in the history
  • Loading branch information
tassoevan committed Jun 1, 2022
1 parent ad67cd3 commit 5b81dba
Show file tree
Hide file tree
Showing 45 changed files with 173 additions and 79 deletions.
2 changes: 1 addition & 1 deletion apps/meteor/app/autotranslate/client/lib/actionButton.ts
Expand Up @@ -6,7 +6,7 @@ import { AutoTranslate } from './autotranslate';
import { settings } from '../../../settings/client';
import { hasAtLeastOnePermission } from '../../../authorization/client';
import { MessageAction } from '../../../ui-utils/client/lib/MessageAction';
import { messageArgs } from '../../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../../client/lib/utils/messageArgs';
import { Messages } from '../../../models/client';

Meteor.startup(() => {
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/custom-oauth/client/custom_oauth_client.js
Expand Up @@ -7,7 +7,7 @@ import { ServiceConfiguration } from 'meteor/service-configuration';
import { OAuth } from 'meteor/oauth';

import './swapSessionStorage';
import { isURL } from '../../utils/lib/isURL';
import { isURL } from '../../../lib/utils/isURL';

// Request custom OAuth credentials for the user
// @param options {optional}
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/custom-oauth/server/custom_oauth_server.js
Expand Up @@ -9,7 +9,7 @@ import _ from 'underscore';
import { normalizers, fromTemplate, renameInvalidProperties } from './transform_helpers';
import { Logger } from '../../logger';
import { Users } from '../../models';
import { isURL } from '../../utils/lib/isURL';
import { isURL } from '../../../lib/utils/isURL';
import { registerAccessTokenService } from '../../lib/server/oauth/oauth';
import { callbacks } from '../../../lib/callbacks';

Expand Down
Expand Up @@ -4,7 +4,7 @@ import { Tracker } from 'meteor/tracker';
import { settings } from '../../settings/client';
import { hasPermission } from '../../authorization/client';
import { MessageAction } from '../../ui-utils/client';
import { messageArgs } from '../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../client/lib/utils/messageArgs';
import { imperativeModal } from '../../../client/lib/imperativeModal';
import CreateDiscussion from '../../../client/components/CreateDiscussion/CreateDiscussion';
import { roomCoordinator } from '../../../client/lib/rooms/roomCoordinator';
Expand Down
3 changes: 2 additions & 1 deletion apps/meteor/app/lib/server/functions/sendMessage.js
Expand Up @@ -4,11 +4,12 @@ import { settings } from '../../../settings';
import { callbacks } from '../../../../lib/callbacks';
import { Messages } from '../../../models';
import { Apps } from '../../../apps/server';
import { isURL, isRelativeURL } from '../../../utils/lib/isURL';
import { isURL } from '../../../../lib/utils/isURL';
import { FileUpload } from '../../../file-upload/server';
import { hasPermission } from '../../../authorization/server';
import { SystemLogger } from '../../../../server/lib/logger/system';
import { parseUrlsInMessage } from './parseUrlsInMessage';
import { isRelativeURL } from '../../../../lib/utils/isRelativeURL';

/**
* IMPORTANT
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/mentions-flextab/client/actionButton.ts
Expand Up @@ -3,7 +3,7 @@ import { Template } from 'meteor/templating';
import { FlowRouter } from 'meteor/kadira:flow-router';

import { MessageAction, RoomHistoryManager } from '../../ui-utils/client';
import { messageArgs } from '../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../client/lib/utils/messageArgs';
import { Rooms } from '../../models/client';

Meteor.startup(function () {
Expand Down
Expand Up @@ -2,7 +2,7 @@ import { Meteor } from 'meteor/meteor';
import { FlowRouter } from 'meteor/kadira:flow-router';

import { RoomManager, MessageAction } from '../../ui-utils/client';
import { messageArgs } from '../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../client/lib/utils/messageArgs';
import { ChatSubscription } from '../../models/client';
import { handleError } from '../../../client/lib/utils/handleError';
import { roomCoordinator } from '../../../client/lib/rooms/roomCoordinator';
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/message-pin/client/actionButton.ts
Expand Up @@ -4,7 +4,7 @@ import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
import { FlowRouter } from 'meteor/kadira:flow-router';

import { RoomHistoryManager, MessageAction } from '../../ui-utils/client';
import { messageArgs } from '../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../client/lib/utils/messageArgs';
import { settings } from '../../settings/client';
import { hasAtLeastOnePermission } from '../../authorization/client';
import { Rooms } from '../../models/client';
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/message-star/client/actionButton.ts
Expand Up @@ -5,7 +5,7 @@ import { FlowRouter } from 'meteor/kadira:flow-router';

import { settings } from '../../settings/client';
import { RoomHistoryManager, MessageAction } from '../../ui-utils/client';
import { messageArgs } from '../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../client/lib/utils/messageArgs';
import { Rooms } from '../../models/client';
import { handleError } from '../../../client/lib/utils/handleError';
import { dispatchToastMessage } from '../../../client/lib/toast';
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/oembed/server/server.js
Expand Up @@ -12,7 +12,7 @@ import { Messages } from '../../models/server';
import { OEmbedCache } from '../../models/server/raw';
import { callbacks } from '../../../lib/callbacks';
import { settings } from '../../settings/server';
import { isURL } from '../../utils/lib/isURL';
import { isURL } from '../../../lib/utils/isURL';
import { SystemLogger } from '../../../server/lib/logger/system';
import { Info } from '../../utils/server';
import { fetch } from '../../../server/lib/http/fetch';
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/reactions/client/init.js
Expand Up @@ -3,7 +3,7 @@ import { Blaze } from 'meteor/blaze';

import { Rooms, Subscriptions } from '../../models';
import { MessageAction } from '../../ui-utils';
import { messageArgs } from '../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../client/lib/utils/messageArgs';
import { EmojiPicker } from '../../emoji';
import { tooltip } from '../../ui/client/components/tooltip';
import { roomCoordinator } from '../../../client/lib/rooms/roomCoordinator';
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/search/client/provider/result.js
Expand Up @@ -8,7 +8,7 @@ import _ from 'underscore';

import { messageContext } from '../../../ui-utils/client/lib/messageContext';
import { MessageAction, RoomHistoryManager } from '../../../ui-utils';
import { messageArgs } from '../../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../../client/lib/utils/messageArgs';
import { Rooms } from '../../../models/client';
import { getCommonRoomEvents } from '../../../ui/client/views/app/lib/getCommonRoomEvents';
import { goToRoomById } from '../../../../client/lib/utils/goToRoomById';
Expand Down
Expand Up @@ -4,7 +4,7 @@ import { FlowRouter } from 'meteor/kadira:flow-router';

import { settings } from '../../../settings/client';
import { MessageAction } from '../../../ui-utils/client';
import { messageArgs } from '../../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../../client/lib/utils/messageArgs';
import { roomCoordinator } from '../../../../client/lib/rooms/roomCoordinator';

Meteor.startup(function () {
Expand Down
@@ -1,7 +1,8 @@
import { IUIActionButton } from '@rocket.chat/apps-engine/definition/ui';

import { Utilities } from '../../../apps/lib/misc/Utilities';
import { MessageAction, messageArgs } from '../../../ui-utils/client';
import { MessageAction } from '../../../ui-utils/client';
import { messageArgs } from '../../../../client/lib/utils/messageArgs';
import { t } from '../../../utils/client';
import { triggerActionButtonAction } from '../ActionManager';
import { applyButtonFilters } from './lib/applyButtonFilters';
Expand Down
1 change: 0 additions & 1 deletion apps/meteor/app/ui-utils/client/index.js
Expand Up @@ -18,4 +18,3 @@ export { MessageTypes, MessageType } from '../lib/MessageTypes';
export { Message } from '../lib/Message';
export { openRoom } from './lib/openRoom';
export * from './lib/collapseArrow';
export * from './lib/messageArgs';
3 changes: 1 addition & 2 deletions apps/meteor/app/ui-utils/client/lib/RoomManager.js
Expand Up @@ -14,7 +14,6 @@ import { Notifications } from '../../../notifications';
import { CachedChatRoom, ChatMessage, ChatSubscription, CachedChatSubscription, ChatRoom } from '../../../models';
import { CachedCollectionManager } from '../../../ui-cached-collection';
import { getConfig } from '../../../../client/lib/utils/getConfig';
import { ROOM_DATA_STREAM } from '../../../utils/stream/constants';
import { callWithErrorHandling } from '../../../../client/lib/utils/callWithErrorHandling';
import { RoomManager as NewRoomManager } from '../../../../client/lib/RoomManager';
import { roomCoordinator } from '../../../../client/lib/rooms/roomCoordinator';
Expand Down Expand Up @@ -44,7 +43,7 @@ const onDeleteMessageBulkStream = ({ rid, ts, excludePinned, ignoreDiscussion, u
export const RoomManager = new (function () {
const openedRooms = {};
const msgStream = new Meteor.Streamer('room-messages');
const roomStream = new Meteor.Streamer(ROOM_DATA_STREAM);
const roomStream = new Meteor.Streamer('room-data');
const onlineUsers = new ReactiveVar({});
const Dep = new Tracker.Dependency();

Expand Down
4 changes: 2 additions & 2 deletions apps/meteor/app/ui-utils/client/lib/menu.js
Expand Up @@ -2,7 +2,7 @@ import { Session } from 'meteor/session';
import { Meteor } from 'meteor/meteor';
import { Emitter } from '@rocket.chat/emitter';

import { isRtl } from '../../../utils';
import { isRTLScriptLanguage } from '../../../../client/lib/utils/isRTLScriptLanguage';

const sideNavW = 280;
const map = (x, in_min, in_max, out_min, out_max) => ((x - in_min) * (out_max - out_min)) / (in_max - in_min) + out_min;
Expand All @@ -16,7 +16,7 @@ export const menu = new (class extends Emitter {
}

get isRtl() {
return isRtl(Meteor._localStorage.getItem('userLanguage'));
return isRTLScriptLanguage(Meteor._localStorage.getItem('userLanguage'));
}

translate(diff, width = sideNavW) {
Expand Down
Expand Up @@ -5,7 +5,7 @@ import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
import { Session } from 'meteor/session';
import { IMessage } from '@rocket.chat/core-typings';

import { messageArgs } from './messageArgs';
import { messageArgs } from '../../../../client/lib/utils/messageArgs';
import { roomCoordinator } from '../../../../client/lib/rooms/roomCoordinator';
import { Rooms, Subscriptions } from '../../../models/client';
import { hasAtLeastOnePermission, hasPermission } from '../../../authorization/client';
Expand Down
5 changes: 3 additions & 2 deletions apps/meteor/app/ui-utils/client/lib/popover.js
Expand Up @@ -2,10 +2,11 @@ import './popover.html';
import { Blaze } from 'meteor/blaze';
import { Template } from 'meteor/templating';
import _ from 'underscore';
import { Meteor } from 'meteor/meteor';

import { messageBox } from './messageBox';
import { MessageAction } from './MessageAction';
import { isRtl } from '../../../utils/client';
import { isRTLScriptLanguage } from '../../../../client/lib/utils/isRTLScriptLanguage';

export const popover = {
renderedPopover: null,
Expand Down Expand Up @@ -55,7 +56,7 @@ Template.popover.onRendered(function () {
const direction = typeof this.data.direction === 'function' ? this.data.direction() : this.data.direction;

const verticalDirection = /top/.test(direction) ? 'top' : 'bottom';
const rtlDirection = isRtl() ^ /inverted/.test(direction) ? 'left' : 'right';
const rtlDirection = isRTLScriptLanguage(Meteor._localStorage.getItem('userLanguage')) ^ /inverted/.test(direction) ? 'left' : 'right';
const rightDirection = /right/.test(direction) ? 'right' : rtlDirection;
const horizontalDirection = /left/.test(direction) ? 'left' : rightDirection;

Expand Down
Expand Up @@ -6,9 +6,9 @@ import { FlowRouter } from 'meteor/kadira:flow-router';
import { popover, MessageAction } from '../../../../../ui-utils/client';
import { addMessageToList } from '../../../../../ui-utils/client/lib/MessageAction';
import { callWithErrorHandling } from '../../../../../../client/lib/utils/callWithErrorHandling';
import { isURL } from '../../../../../utils/lib/isURL';
import { isURL } from '../../../../../../lib/utils/isURL';
import { openUserCard } from '../../../lib/UserCard';
import { messageArgs } from '../../../../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../../../../client/lib/utils/messageArgs';
import { ChatMessage, Rooms, Messages } from '../../../../../models';
import { t } from '../../../../../utils/client';
import { chatMessages } from '../room';
Expand Down
2 changes: 1 addition & 1 deletion apps/meteor/app/ui/client/views/app/room.js
Expand Up @@ -15,7 +15,7 @@ import { WebRTC } from '../../../../webrtc/client';
import { ChatMessage, RoomRoles, Users, Subscriptions, Rooms } from '../../../../models';
import { RoomHistoryManager, RoomManager, readMessage } from '../../../../ui-utils/client';
import { messageContext } from '../../../../ui-utils/client/lib/messageContext';
import { messageArgs } from '../../../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../../../client/lib/utils/messageArgs';
import { settings } from '../../../../settings/client';
import { callbacks } from '../../../../../lib/callbacks';
import { hasAllPermission, hasRole } from '../../../../authorization/client';
Expand Down
4 changes: 2 additions & 2 deletions apps/meteor/app/utils/client/index.js
@@ -1,4 +1,4 @@
export { t, isRtl } from '../lib/tapi18n';
export { t } from '../lib/tapi18n';
export { getDefaultSubscriptionPref } from '../lib/getDefaultSubscriptionPref';
export { Info } from '../rocketchat.info';
export { getUserPreference } from '../lib/getUserPreference';
Expand All @@ -11,4 +11,4 @@ export { getURL } from '../lib/getURL';
export { placeholders } from '../lib/placeholders';
export { templateVarHandler } from '../lib/templateVarHandler';
export { APIClient } from './lib/RestApiClient';
export { secondsToHHMMSS } from '../lib/timeConverter';
export { secondsToHHMMSS } from '../../../lib/utils/secondsToHHMMSS';
2 changes: 1 addition & 1 deletion apps/meteor/app/utils/lib/getURL.js
@@ -1,7 +1,7 @@
import s from 'underscore.string';
import { escapeRegExp } from '@rocket.chat/string-helpers';

import { isURL } from './isURL';
import { isURL } from '../../../lib/utils/isURL';
import { settings } from '../../settings';

function getCloudUrl(path, _site_url, cloudRoute, cloudParams = {}) {
Expand Down
2 changes: 0 additions & 2 deletions apps/meteor/app/utils/lib/isURL.js

This file was deleted.

6 changes: 0 additions & 6 deletions apps/meteor/app/utils/lib/tapi18n.js
@@ -1,6 +1,5 @@
import _ from 'underscore';
import { TAPi18n } from 'meteor/rocketchat:tap-i18n';
import { Meteor } from 'meteor/meteor';

export const t = function (key, ...replaces) {
if (_.isObject(replaces[0])) {
Expand All @@ -11,8 +10,3 @@ export const t = function (key, ...replaces) {
sprintf: replaces,
});
};

export const isRtl = (lang) => {
const language = lang || Meteor._localStorage.getItem('userLanguage') || 'en-US';
return ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(language.split('-').shift().toLowerCase());
};
30 changes: 0 additions & 30 deletions apps/meteor/app/utils/lib/timeConverter.js

This file was deleted.

4 changes: 2 additions & 2 deletions apps/meteor/app/utils/server/index.js
@@ -1,4 +1,4 @@
export { t, isRtl } from '../lib/tapi18n';
export { t } from '../lib/tapi18n';
export { getDefaultSubscriptionPref } from '../lib/getDefaultSubscriptionPref';
export { Info } from '../rocketchat.info';
export { getUserPreference } from '../lib/getUserPreference';
Expand All @@ -13,4 +13,4 @@ export { getURL } from '../lib/getURL';
export { getValidRoomName } from '../lib/getValidRoomName';
export { placeholders } from '../lib/placeholders';
export { templateVarHandler } from '../lib/templateVarHandler';
export { secondsToHHMMSS } from '../lib/timeConverter';
export { secondsToHHMMSS } from '../../../lib/utils/secondsToHHMMSS';
1 change: 0 additions & 1 deletion apps/meteor/app/utils/stream/constants.js

This file was deleted.

2 changes: 1 addition & 1 deletion apps/meteor/app/webdav/client/actionButton.ts
Expand Up @@ -4,7 +4,7 @@ import { t, getURL } from '../../utils/client';
import { WebdavAccounts } from '../../models/client';
import { settings } from '../../settings/client';
import { MessageAction, modal } from '../../ui-utils/client';
import { messageArgs } from '../../ui-utils/client/lib/messageArgs';
import { messageArgs } from '../../../client/lib/utils/messageArgs';

Meteor.startup(function () {
MessageAction.addButton({
Expand Down
10 changes: 10 additions & 0 deletions apps/meteor/client/lib/utils/isRTLScriptLanguage.ts
@@ -0,0 +1,10 @@
export const isRTLScriptLanguage = (lang: string): boolean => {
const language = lang || 'en';
const [languageCode] = language.split('-');

if (!languageCode) {
return false;
}

return ['ar', 'dv', 'fa', 'he', 'ku', 'ps', 'sd', 'ug', 'ur', 'yi'].includes(languageCode);
};
File renamed without changes.
6 changes: 3 additions & 3 deletions apps/meteor/client/startup/i18n.ts
Expand Up @@ -6,8 +6,8 @@ import moment from 'moment';

import { Users } from '../../app/models/client';
import { settings } from '../../app/settings/client';
import { isRtl } from '../../app/utils/client';
import { filterLanguage } from '../lib/utils/filterLanguage';
import { isRTLScriptLanguage } from '../lib/utils/isRTLScriptLanguage';

const currentLanguage = new ReactiveVar<string | null>(null);

Expand Down Expand Up @@ -48,8 +48,8 @@ Meteor.startup(() => {
if (!language) {
return;
}
document.documentElement.classList[isRtl(language) ? 'add' : 'remove']('rtl');
document.documentElement.setAttribute('dir', isRtl(language) ? 'rtl' : 'ltr');
document.documentElement.classList[isRTLScriptLanguage(language) ? 'add' : 'remove']('rtl');
document.documentElement.setAttribute('dir', isRTLScriptLanguage(language) ? 'rtl' : 'ltr');
document.documentElement.lang = language;

TAPi18n.setLanguage(language);
Expand Down
3 changes: 2 additions & 1 deletion apps/meteor/client/startup/readReceipt.ts
Expand Up @@ -2,8 +2,9 @@ import { Meteor } from 'meteor/meteor';
import { Tracker } from 'meteor/tracker';

import { settings } from '../../app/settings/client';
import { MessageAction, messageArgs } from '../../app/ui-utils/client';
import { MessageAction } from '../../app/ui-utils/client';
import { imperativeModal } from '../lib/imperativeModal';
import { messageArgs } from '../lib/utils/messageArgs';
import ReadReceiptsModal from '../views/room/modals/ReadReceiptsModal';

Meteor.startup(() => {
Expand Down
Expand Up @@ -3,7 +3,7 @@ import { useToastMessageDispatch, useMethod, useTranslation } from '@rocket.chat
import React, { useRef, useEffect } from 'react';

import { drawLineChart } from '../../../../app/livechat/client/lib/chartHandler';
import { secondsToHHMMSS } from '../../../../app/utils/lib/timeConverter';
import { secondsToHHMMSS } from '../../../../lib/utils/secondsToHHMMSS';
import Chart from '../realTimeMonitoring/charts/Chart';

const getChartTooltips = (chartName) => {
Expand Down
Expand Up @@ -2,7 +2,7 @@ import { useTranslation } from '@rocket.chat/ui-contexts';
import React, { useRef, useEffect } from 'react';

import { drawLineChart } from '../../../../../app/livechat/client/lib/chartHandler';
import { secondsToHHMMSS } from '../../../../../app/utils/lib/timeConverter';
import { secondsToHHMMSS } from '../../../../../lib/utils/secondsToHHMMSS';
import { AsyncStatePhase } from '../../../../hooks/useAsyncState';
import { useEndpointData } from '../../../../hooks/useEndpointData';
import Chart from './Chart';
Expand Down
Expand Up @@ -2,7 +2,7 @@ import { useTranslation } from '@rocket.chat/ui-contexts';
import React, { useRef, useEffect } from 'react';

import { drawLineChart } from '../../../../../app/livechat/client/lib/chartHandler';
import { secondsToHHMMSS } from '../../../../../app/utils/lib/timeConverter';
import { secondsToHHMMSS } from '../../../../../lib/utils/secondsToHHMMSS';
import { AsyncStatePhase } from '../../../../hooks/useAsyncState';
import { useEndpointData } from '../../../../hooks/useEndpointData';
import Chart from './Chart';
Expand Down
1 change: 1 addition & 0 deletions apps/meteor/lib/utils/isRelativeURL.ts
@@ -0,0 +1 @@
export const isRelativeURL = (str: string): boolean => /^[^\/]+\/[^\/].*$|^\/[^\/].*$/gim.test(str);
4 changes: 4 additions & 0 deletions apps/meteor/lib/utils/isURL.ts
@@ -0,0 +1,4 @@
/**
* @todo rename it as isAbsoluteURL
*/
export const isURL = (str: string): boolean => /^(https?:\/\/|data:)/.test(str);

0 comments on commit 5b81dba

Please sign in to comment.