mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
#4257 Added functionality to create previews for post links using open graph data from those links. (#4890)
This commit is contained in:
36
webapp/utils/commons.jsx
Normal file
36
webapp/utils/commons.jsx
Normal file
@@ -0,0 +1,36 @@
|
||||
export function getDistanceBW2Points(point1, point2, xAttr = 'x', yAttr = 'y') {
|
||||
return Math.sqrt(Math.pow(point1[xAttr] - point2[xAttr], 2) + Math.pow(point1[yAttr] - point2[yAttr], 2));
|
||||
}
|
||||
|
||||
/**
|
||||
* Funtion to return nearest point of given pivot point.
|
||||
* It return two points one nearest and other nearest but having both coorditanes smaller than the given point's coordinates.
|
||||
*/
|
||||
export function getNearestPoint(pivotPoint, points, xAttr = 'x', yAttr = 'y') {
|
||||
var nearestPoint = {};
|
||||
var nearestPointLte = {}; // Nearest point smaller than or equal to point
|
||||
for (const point of points) {
|
||||
if (typeof nearestPoint[xAttr] === 'undefined' || typeof nearestPoint[yAttr] === 'undefined') {
|
||||
nearestPoint = point;
|
||||
} else if (getDistanceBW2Points(point, pivotPoint, xAttr, yAttr) < getDistanceBW2Points(nearestPoint, pivotPoint, xAttr, yAttr)) {
|
||||
// Check for bestImage
|
||||
nearestPoint = point;
|
||||
}
|
||||
|
||||
if (typeof nearestPointLte[xAttr] === 'undefined' || typeof nearestPointLte[yAttr] === 'undefined') {
|
||||
if (point[xAttr] <= pivotPoint[xAttr] && point[yAttr] <= pivotPoint[yAttr]) {
|
||||
nearestPointLte = point;
|
||||
}
|
||||
} else if (
|
||||
// Check for bestImageLte
|
||||
getDistanceBW2Points(point, pivotPoint, xAttr, yAttr) < getDistanceBW2Points(nearestPointLte, pivotPoint, xAttr, yAttr) &&
|
||||
point[xAttr] <= pivotPoint[xAttr] && point[yAttr] <= pivotPoint[yAttr]
|
||||
) {
|
||||
nearestPointLte = point;
|
||||
}
|
||||
}
|
||||
return {
|
||||
nearestPoint,
|
||||
nearestPointLte
|
||||
};
|
||||
}
|
||||
@@ -146,6 +146,9 @@ export const ActionTypes = keyMirror({
|
||||
|
||||
RECEIVED_LOCALE: null,
|
||||
|
||||
UPDATE_OPEN_GRAPH_METADATA: null,
|
||||
RECIVED_OPEN_GRAPH_METADATA: null,
|
||||
|
||||
SHOW_SEARCH: null,
|
||||
|
||||
USER_TYPING: null,
|
||||
|
||||
@@ -1324,3 +1324,15 @@ export function handleFormattedTextClick(e) {
|
||||
browserHistory.push('/' + TeamStore.getCurrent().name + '/channels/' + channelMentionAttribute.value);
|
||||
}
|
||||
}
|
||||
|
||||
export function isEmptyObject(object) {
|
||||
if (!object) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (Object.keys(object).length === 0) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user