137 lines
3.7 KiB
TypeScript
137 lines
3.7 KiB
TypeScript
import moment from 'moment';
|
|
|
|
import { sendFileMessage, sendMessage } from '../../lib/methods';
|
|
import { Services } from '../../lib/services';
|
|
import { TAnyMessageModel } from '../../definitions';
|
|
import { themeColors } from '../../lib/constants';
|
|
|
|
export const getColor = (color: string) => {
|
|
const colorRegex = /^(#([A-Fa-f0-9]{3}){1,2}|(rgb|hsl)a?\([-.\d\s%,]+\))$/i;
|
|
const isColor = colorRegex.test(color);
|
|
|
|
if (isColor) {
|
|
return color;
|
|
}
|
|
|
|
if (themeColors[color]) {
|
|
return themeColors[color];
|
|
}
|
|
};
|
|
|
|
export const getIcon = (icon: string) => {
|
|
let imagePath;
|
|
switch (icon) {
|
|
// case 'covid':
|
|
// imagePath = require('../../static/images/discussionboard/covid.png');
|
|
// break;
|
|
// case 'diet':
|
|
// imagePath = require('../../static/images/discussionboard/diet.png');
|
|
// break;
|
|
// case 'exercising':
|
|
// imagePath = require('../../static/images/discussionboard/exercising.png');
|
|
// break;
|
|
// case 'insulin':
|
|
// imagePath = require('../../static/images/discussionboard/insulin.png');
|
|
// break;
|
|
// case 'mdi_users':
|
|
// imagePath = require('../../static/images/discussionboard/mdi_users.png');
|
|
// break;
|
|
// case 'syringe':
|
|
// imagePath = require('../../static/images/discussionboard/syringe.png');
|
|
// break;
|
|
case 'solidStar':
|
|
imagePath = require(`../../static/images/discussionboard/star_solid.png`);
|
|
break;
|
|
case 'outlineStar':
|
|
imagePath = require(`../../static/images/discussionboard/star_outline.png`);
|
|
break;
|
|
case 'solidSave':
|
|
imagePath = require('../../static/images/discussionboard/save_solid.png');
|
|
break;
|
|
case 'outlineSave':
|
|
imagePath = require('../../static/images/discussionboard/save.png');
|
|
break;
|
|
case 'like':
|
|
imagePath = require('../../static/images/discussionboard/like.png');
|
|
break;
|
|
case 'comment':
|
|
imagePath = require('../../static/images/discussionboard/comment.png');
|
|
break;
|
|
case 'arrowRight':
|
|
imagePath = require('../../static/images/discussionboard/arrow_right.png');
|
|
break;
|
|
case 'arrowLeft':
|
|
imagePath = require('../../static/images/discussionboard/arrow_left.png');
|
|
break;
|
|
case 'discussionBoardIcon':
|
|
imagePath = require('../../static/images/discussion-solid.png');
|
|
break;
|
|
case 'arrowDown':
|
|
imagePath = require('../../static/images/discussionboard/arrow_down.png');
|
|
break;
|
|
case 'selectImage':
|
|
imagePath = require('../../static/images/discussionboard/image_picker.png');
|
|
break;
|
|
case 'more':
|
|
imagePath = require('../../static/images/discussionboard/more.png');
|
|
break;
|
|
case 'send':
|
|
imagePath = require('../../static/images/discussionboard/send.png');
|
|
break;
|
|
|
|
default:
|
|
imagePath = require('../../static/images/discussionboard/image_picker.png');
|
|
break;
|
|
}
|
|
return imagePath;
|
|
};
|
|
|
|
export const handleStar = async (message: TAnyMessageModel, callback?: () => void) => {
|
|
try {
|
|
await Services.toggleStarMessage(message.id, message.starred as boolean); // TODO: reevaluate `message.starred` type on IMessage
|
|
if (callback) {
|
|
callback();
|
|
}
|
|
} catch (e) {
|
|
console.log('e', e);
|
|
}
|
|
};
|
|
|
|
export const handleSendMessage = async ({
|
|
message,
|
|
tshow,
|
|
rid,
|
|
callBack,
|
|
hasAttachment,
|
|
fileInfo,
|
|
server,
|
|
user
|
|
}: {
|
|
message: string;
|
|
tshow?: boolean;
|
|
rid: string;
|
|
callBack: () => void;
|
|
hasAttachment?: boolean;
|
|
fileInfo?: any;
|
|
server?: string;
|
|
user?: any;
|
|
}) => {
|
|
if (hasAttachment) {
|
|
await sendFileMessage(rid, fileInfo, undefined, server, user);
|
|
if (callBack) {
|
|
callBack();
|
|
}
|
|
} else {
|
|
sendMessage(rid, message, undefined, user, tshow).then(() => {
|
|
if (callBack) {
|
|
callBack();
|
|
}
|
|
});
|
|
}
|
|
};
|
|
|
|
export const getDate = (date: string, format?: string) => {
|
|
const formattedDate = moment(date).format(format ?? 'MMMM D, YYYY - h:MMa');
|
|
return moment(date) ? formattedDate : '';
|
|
};
|