* Add more messages button * Update existing tests * Various fixes: * Use viewAreaCoveragePercentThreshold over itemVisiblePercentThreshold * Remove currentUserId check when adding New Message line to postIds and instead update the channel last viewed time when an own post is received * Update snapshots * Add showMoreMessagesButton prop and default to false * Android fixes * Add tests * Localize more messages text * Use FormattedText * i18 extract * Style fixes * Account for network indicator * Fix for failing tests * Various fixes: * Set the unreadMessageCount when POST_UNREAD_SUCCESS is dispatched with a positive deltaMsgs * Hide the more messages button when the unread count decreases or when the new message line is removed shortly after loading the channel * No need for POST_UNREAD_SUCCESS if we manually call onViewableItemsChanged * Reset unread count if current channel on channel mount * Animate text opacity * Compare indeces to determine when scrolling has ended * Fix opacity animation trigger * try with scrolling to the last rendered item * Add onScrollEndIndex * Improve animations * Don't track moreCount in state * Use moreText over prevNewMessageLineIndex to determine firstPage * Update intl message format and call cancel in componentDidUpdate when needed * Fix intl format * Remove opacity animation and countText * Fix pressed not being reset * No need to separate intl func * Return after resetting * Fix accidental removal of setState call * Reset pressed when newLineMessageIndex changes * Use default windowSize and lower POST_CHUNK_SIZE and delays * Queue a cancel timer that gets cleared only when the newMessageLineIndex changes * Define uncancel func * Increase cancelTimer delay * Subtract read posts from unread count and account for retry indicator * Add retry bar indicator tests * Use props.unreadCount * Fix handling of newMessageLineIndex change * Fix handling of newMessageLineIndex change take 2 * Fix handling of newMessageLineIndex change take 3 * Use 'native' TouchableWithFeedback with dark overlay * Fix handling of manually unread * Update chunk and window sizes * Fix hsl * Update text only when newMessageLineIndex/endIndex is reached * Don't delay cancel if when no more unreads * Fixes for when opening the app * No need to process viewableItems when unreadCount is 0 * Remove line * Don't show if unreadCount is 0 Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
132 lines
3.2 KiB
JavaScript
132 lines
3.2 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {Platform} from 'react-native';
|
|
import DeviceInfo from 'react-native-device-info';
|
|
|
|
import keyMirror from '@mm-redux/utils/key_mirror';
|
|
|
|
// The iPhone 11 and iPhone 11 Pro Max have a navbar height of 44 and iPhone 11 Pro has 32
|
|
const IPHONE_11_LANDSCAPE_HEIGHT = ['iPhone 11', 'iPhone 11 Pro Max'];
|
|
|
|
export const UpgradeTypes = {
|
|
CAN_UPGRADE: 'can_upgrade',
|
|
MUST_UPGRADE: 'must_upgrade',
|
|
NO_UPGRADE: 'no_upgrade',
|
|
IS_BETA: 'is_beta',
|
|
};
|
|
|
|
export const SidebarSectionTypes = {
|
|
UNREADS: 'unreads',
|
|
FAVORITE: 'favorite',
|
|
PUBLIC: 'public',
|
|
PRIVATE: 'private',
|
|
DIRECT: 'direct',
|
|
RECENT_ACTIVITY: 'recent',
|
|
ALPHA: 'alpha',
|
|
};
|
|
|
|
export const NotificationLevels = {
|
|
DEFAULT: 'default',
|
|
ALL: 'all',
|
|
MENTION: 'mention',
|
|
NONE: 'none',
|
|
};
|
|
|
|
export const NOTIFY_ALL_MEMBERS = 5;
|
|
export const INDICATOR_BAR_HEIGHT = 38;
|
|
|
|
const ViewTypes = keyMirror({
|
|
DATA_CLEANUP: null,
|
|
SERVER_URL_CHANGED: null,
|
|
|
|
POST_DRAFT_CHANGED: null,
|
|
COMMENT_DRAFT_CHANGED: null,
|
|
SEARCH_DRAFT_CHANGED: null,
|
|
|
|
POST_DRAFT_SELECTION_CHANGED: null,
|
|
COMMENT_DRAFT_SELECTION_CHANGED: null,
|
|
|
|
NOTIFICATION_IN_APP: null,
|
|
|
|
SET_POST_DRAFT: null,
|
|
SET_COMMENT_DRAFT: null,
|
|
|
|
SET_TEMP_UPLOAD_FILES_FOR_POST_DRAFT: null,
|
|
RETRY_UPLOAD_FILE_FOR_POST: null,
|
|
|
|
CLEAR_FILES_FOR_POST_DRAFT: null,
|
|
CLEAR_FAILED_FILES_FOR_POST_DRAFT: null,
|
|
|
|
REMOVE_FILE_FROM_POST_DRAFT: null,
|
|
REMOVE_LAST_FILE_FROM_POST_DRAFT: null,
|
|
|
|
SET_CHANNEL_LOADER: null,
|
|
SET_CHANNEL_REFRESHING: null,
|
|
SET_CHANNEL_RETRY_FAILED: null,
|
|
SET_CHANNEL_DISPLAY_NAME: null,
|
|
|
|
REMOVE_LAST_CHANNEL_FOR_TEAM: null,
|
|
|
|
GITLAB: null,
|
|
OFFICE365: null,
|
|
SAML: null,
|
|
|
|
SET_INITIAL_POST_VISIBILITY: null,
|
|
RECEIVED_FOCUSED_POST: null,
|
|
LOADING_POSTS: null,
|
|
SET_LOAD_MORE_POSTS_VISIBLE: null,
|
|
|
|
RECEIVED_POSTS_FOR_CHANNEL_AT_TIME: null,
|
|
|
|
SET_LAST_UPGRADE_CHECK: null,
|
|
|
|
ADD_RECENT_EMOJI: null,
|
|
EXTENSION_SELECTED_TEAM_ID: null,
|
|
ANNOUNCEMENT_BANNER: null,
|
|
|
|
INCREMENT_EMOJI_PICKER_PAGE: null,
|
|
|
|
SET_DEEP_LINK_URL: null,
|
|
|
|
SET_PROFILE_IMAGE_URI: null,
|
|
|
|
SELECTED_ACTION_MENU: null,
|
|
SUBMIT_ATTACHMENT_MENU_ACTION: null,
|
|
|
|
PORTRAIT: null,
|
|
LANDSCAPE: null,
|
|
|
|
INDICATOR_BAR_VISIBLE: null,
|
|
});
|
|
|
|
const RequiredServer = {
|
|
FULL_VERSION: 5.19,
|
|
MAJOR_VERSION: 5,
|
|
MIN_VERSION: 19,
|
|
PATCH_VERSION: 0,
|
|
};
|
|
|
|
export default {
|
|
...ViewTypes,
|
|
RequiredServer,
|
|
POST_VISIBILITY_CHUNK_SIZE: Platform.OS === 'android' ? 15 : 60,
|
|
FEATURE_TOGGLE_PREFIX: 'feature_enabled_',
|
|
EMBED_PREVIEW: 'embed_preview',
|
|
LINK_PREVIEW_DISPLAY: 'link_previews',
|
|
MIN_CHANNELNAME_LENGTH: 2,
|
|
MAX_CHANNELNAME_LENGTH: 64,
|
|
ANDROID_TOP_LANDSCAPE: 46,
|
|
ANDROID_TOP_PORTRAIT: 56,
|
|
IOS_TOP_LANDSCAPE: IPHONE_11_LANDSCAPE_HEIGHT.includes(DeviceInfo.getModel()) ? 44 : 32,
|
|
IOS_TOP_PORTRAIT: 64,
|
|
IOS_INSETS_TOP_PORTRAIT: 88,
|
|
STATUS_BAR_HEIGHT: 20,
|
|
PROFILE_PICTURE_SIZE: 32,
|
|
PROFILE_PICTURE_EMOJI_SIZE: 28,
|
|
DATA_SOURCE_USERS: 'users',
|
|
DATA_SOURCE_CHANNELS: 'channels',
|
|
NotificationLevels,
|
|
SidebarSectionTypes,
|
|
IOS_HORIZONTAL_LANDSCAPE: 44,
|
|
};
|