PLT-2672 Refactored posts view with caching (#3054)
* Refactored posts view to use view controller design * Add post view caching * Required updates after rebase * Fixed bug where current channel not set yet was causing breakage
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
ca9f348be6
Коммит
6399a94ce2
@@ -161,6 +161,14 @@ export default {
|
||||
EPHEMERAL_MESSAGE: 'ephemeral_message'
|
||||
},
|
||||
|
||||
ScrollTypes: {
|
||||
FREE: 1,
|
||||
BOTTOM: 2,
|
||||
SIDEBBAR_OPEN: 3,
|
||||
NEW_MESSAGE: 4,
|
||||
POST: 5
|
||||
},
|
||||
|
||||
//SPECIAL_MENTIONS: ['all', 'channel'],
|
||||
SPECIAL_MENTIONS: ['channel'],
|
||||
CHARACTER_LIMIT: 4000,
|
||||
@@ -204,6 +212,9 @@ export default {
|
||||
WEB_VIDEO_HEIGHT: 480,
|
||||
MOBILE_VIDEO_WIDTH: 480,
|
||||
MOBILE_VIDEO_HEIGHT: 360,
|
||||
MOBILE_SCREEN_WIDTH: 768,
|
||||
SCROLL_DELAY: 2000,
|
||||
SCROLL_PAGE_FRACTION: 3,
|
||||
DEFAULT_CHANNEL: 'town-square',
|
||||
DEFAULT_CHANNEL_UI_NAME: 'Town Square',
|
||||
OFFTOPIC_CHANNEL: 'off-topic',
|
||||
@@ -738,5 +749,6 @@ export default {
|
||||
DEFAULT_WEBHOOK_LOGO: logoWebhook,
|
||||
MHPNS: 'https://push.mattermost.com',
|
||||
MTPNS: 'http://push-test.mattermost.com',
|
||||
BOT_NAME: 'BOT'
|
||||
BOT_NAME: 'BOT',
|
||||
POST_COLLAPSE_TIMEOUT: 1000 * 60 * 5 // five minutes
|
||||
};
|
||||
|
||||
32
webapp/utils/post_utils.jsx
Обычный файл
32
webapp/utils/post_utils.jsx
Обычный файл
@@ -0,0 +1,32 @@
|
||||
// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
|
||||
// See License.txt for license information.
|
||||
|
||||
import Client from 'utils/web_client.jsx';
|
||||
|
||||
import Constants from 'utils/constants.jsx';
|
||||
|
||||
export function isSystemMessage(post) {
|
||||
return post.type && (post.type.lastIndexOf(Constants.SYSTEM_MESSAGE_PREFIX) === 0);
|
||||
}
|
||||
|
||||
export function isComment(post) {
|
||||
if ('root_id' in post) {
|
||||
return post.root_id !== '' && post.root_id != null;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
export function getProfilePicSrcForPost(post, timestamp) {
|
||||
let src = Client.getUsersRoute() + '/' + post.user_id + '/image?time=' + timestamp;
|
||||
if (post.props && post.props.from_webhook && global.window.mm_config.EnablePostIconOverride === 'true') {
|
||||
if (post.props.override_icon_url) {
|
||||
src = post.props.override_icon_url;
|
||||
} else {
|
||||
src = Constants.DEFAULT_WEBHOOK_LOGO;
|
||||
}
|
||||
} else if (isSystemMessage(post)) {
|
||||
src = Constants.SYSTEM_MESSAGE_PROFILE_IMAGE;
|
||||
}
|
||||
|
||||
return src;
|
||||
}
|
||||
@@ -909,14 +909,7 @@ export function isValidUsername(name) {
|
||||
}
|
||||
|
||||
export function isMobile() {
|
||||
return window.innerWidth <= 768;
|
||||
}
|
||||
|
||||
export function isComment(post) {
|
||||
if ('root_id' in post) {
|
||||
return post.root_id !== '' && post.root_id != null;
|
||||
}
|
||||
return false;
|
||||
return window.innerWidth <= Constants.MOBILE_SCREEN_WIDTH;
|
||||
}
|
||||
|
||||
export function getDirectTeammate(channelId) {
|
||||
@@ -1315,10 +1308,6 @@ export function isFeatureEnabled(feature) {
|
||||
return PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, Constants.FeatureTogglePrefix + feature.label);
|
||||
}
|
||||
|
||||
export function isSystemMessage(post) {
|
||||
return post.type && (post.type.lastIndexOf(Constants.SYSTEM_MESSAGE_PREFIX) === 0);
|
||||
}
|
||||
|
||||
export function fillArray(value, length) {
|
||||
const arr = [];
|
||||
|
||||
@@ -1379,18 +1368,3 @@ export function localizeMessage(id, defaultMessage) {
|
||||
export function mod(a, b) {
|
||||
return ((a % b) + b) % b;
|
||||
}
|
||||
|
||||
export function getProfilePicSrcForPost(post, timestamp) {
|
||||
let src = Client.getUsersRoute() + '/' + post.user_id + '/image?time=' + timestamp;
|
||||
if (post.props && post.props.from_webhook && global.window.mm_config.EnablePostIconOverride === 'true') {
|
||||
if (post.props.override_icon_url) {
|
||||
src = post.props.override_icon_url;
|
||||
} else {
|
||||
src = Constants.DEFAULT_WEBHOOK_LOGO;
|
||||
}
|
||||
} else if (isSystemMessage(post)) {
|
||||
src = Constants.SYSTEM_MESSAGE_PROFILE_IMAGE;
|
||||
}
|
||||
|
||||
return src;
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user