Files
workavia-drive/tdrive/frontend/src/app/components/search-popup/common.tsx
T
Montassar Ghanmy e0615fa867 📁 Changed TDrive root folder (#16)
📁 Changed TDrive root folder
2023-04-11 10:04:29 +01:00

88 lines
3.0 KiB
TypeScript

import Strings from 'features/global/utils/strings';
import { Message, MessageFileType } from 'features/messages/types/message';
import FileUploadService from 'features/files/services/file-upload-service';
import routerService from 'app/features/router/services/router-service';
import { ChannelType } from 'app/features/channels/types/channel';
import ChannelAPIClient from 'app/features/channels/api/channel-api-client';
import { DriveApiClient } from 'app/features/drive/api-client/api-client';
import { DriveItem } from 'app/features/drive/types';
import DriveService from 'app/deprecated/Apps/Drive/Drive.js';
export const highlightText = (text?: string, highlight?: string) => {
if (!text) {
return '';
}
if (!highlight) {
return text;
}
const reg = new RegExp('(' + Strings.removeAccents(highlight) + ')', 'ig');
return Strings.removeAccents(text).replace(reg, "<span class='highlight'>$1</span>");
};
export const getFileMessageDownloadRoute = (file: MessageFileType): string => {
if (file?.metadata?.source === 'internal')
return FileUploadService.getDownloadRoute({
companyId: file.metadata?.external_id?.company_id,
fileId: file.metadata?.external_id?.id,
});
return '';
};
export const onFileDownloadClick = (file: MessageFileType) => {
const url = getFileMessageDownloadRoute(file);
url && (window.location.href = url);
};
export const openChannel = async (channel: ChannelType, currentWorkspaceId: string) => {
if (channel.workspace_id === 'direct') {
const direct = await ChannelAPIClient.getDirect(
channel.company_id || '',
channel.members || [],
);
if (direct) channel = { ...channel, id: direct.id };
}
routerService.push(
routerService.generateRouteFromState({
companyId: channel.company_id,
workspaceId:
(channel.workspace_id === 'direct' ? undefined : channel.workspace_id) ||
currentWorkspaceId,
channelId: channel.id,
}),
);
};
export const openMessage = async (message: Message, currentWorkspaceId: string) => {
routerService.push(
routerService.generateRouteFromState({
companyId: message?.cache?.company_id,
workspaceId:
message?.cache?.workspace_id === 'direct'
? currentWorkspaceId
: message?.cache?.workspace_id,
channelId: message?.cache?.channel_id,
threadId: message?.thread_id,
...(message.id !== message?.thread_id ? { messageId: message.id } : {}),
}),
);
};
export const openDriveItem = (driveItem: DriveItem, workspace_id: string, drive_app_id: string) => {
routerService.push(
routerService.generateRouteFromState({
companyId: driveItem.company_id,
workspaceId: workspace_id ,
channelId: drive_app_id,
}),
);
DriveService.changeCurrentDirectory(drive_app_id, driveItem.parent_id);
}
export const onDriveItemDownloadClick = async (driveItem: DriveItem) => {
const url = await DriveApiClient.getDownloadUrl(driveItem.company_id, driveItem.id);
url && (window.location.href = url);
};