* Fix markdown formatting and touchable interaction
* open gallery as overlay instead of modal
* update snapshots
* Add missing dependencies to useMemo
* MM-39710: saved posts screen and DB
- Adds ids of saved posts to the systems table, as we do with recent
mentions.
- Adds a new remote action to fetch saved posts (getFlaggedPosts).
- Adds a new screen to display those in a mobile.
- Displays saved posts in the tablet view next to profile card.
* Uses Preferences instead of System table
Renames to saved posts wherever possible
* Adds text to localization file
* Fixes fetching/saving saved posts
* Refactor mini post to components folder
* Fixes hooks dependencies according to review
* Removes unnecessary 'withObservables'
* Small refactor
* Satisfies linter
* Adds empty state
And fixes empty state icon to be theme sensitive.
Both recent_mentions and saved_posts.
* Fixes empty screen's alignment
* Add missing preference
* add missing translation strings
* remove unused database type definition
* Fetch newly saved post
* Fix return type for client.getSavedPosts
* Remove usage of lodash compose
* Rename get remote actions to fetch
* Include close button for savedPost modal
* fix tablet view for SavePosts and use lottie loading indicator
* Render post with content for save posts and recent mentions
* post list viewable items type definition
* Add layout width to post content for saved post screen
* Use PostWithChannel and viewableItems for saved posts and recent mentions
* Layout margin of 20
* openGraphImage margin
* Fix openGraphImage display
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Add Create DM screen
* Add channel toggle and minor improvements
* Fix tests and apply new UI
* Address feedback UX feedback and fix missing menu item by adding another item height
* Add display name to channels and piggyback improvement on fetchUserByIds action and translations fix
* Address feedback
* Fix hardcoded colors
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Thread screen
* misc
* Added snapshot for ThreadOverview
* Updated snapshot
* Misc
* Updated snapshot and ts fixes
* Made thread as a modal, fixes post list not closing on tablet
* Removed unsued variables
* Putting back the empty space before the root post (inverse list footer)
* Changed input text
* Removed empty footer space
* Misc fixes
* Disables new messages line for thread
* Loading threads before opening modal & BottomSheet componentId fix
* Moved merge navigation options to switchToThread
* Moved LeftButton to switch to thread
* Removed Q.and
* Misc fixes
* Added task id for pagination
* Removed useMemo, Q.and
* move thread close button as a prop
* Remove title font styles to use default
* Misc changes
* Misc fix
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Support Markdown svg and custom size inline images
* remove commonmark patches
* move getMarkdownImageSize to @utils/markdown
* Fix worklet not present while running unit tests that use calculateDimensions
* Set max size for SVG
* Set svg dimensions based on calculated size
* feedback review
* Database init
* Naming fix
* naming misc
* Fix test
* Added Thread Tab columns, Team Threads Count table and other changes
* Test case fix
* Test cases fix ...... AGAIN
* TS fix
* Removed loaded_in_all_threads_tab, loaded_in_unreads_tab
* Removed TeamThreadsCount table, mention & message root counts & added loadedInGlobalThreads flag
* Type changes, added delete thread with post
* Removed unused type
* Reverted relationshio of post with thread
* Calling thread destroyPermanently from post
* Removed unused table name variables
* added THREAD constant table in post model and fixed a few comments
* Misc typo fix and code clean up
* Added test case and related to participant in user model
* test cases fix
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Gallery screen (ground work)
* Open the gallery from posts
* Open the gallery from post draft
* feedback review
* Feedback review 2
* do not remove dm channel names and localization fix
* update to the latest network-client
* do not override file width, height and imageThumbail if received file does not have it set
* bring back ScrollView wrapper for message component
* Remove Text wrapper for markdown paragraph
* Fix YouTube play icon placeholder
* Make video file play button container round
* Add gif image placeholder
* Save images & videos to camera roll
* Feedback review 3
* load video thumbnail when post is in viewport
* simplify prefix
* Add autocomplete and emoji suggestion
* Address feedback and minor fixes
* Remove unneeded constants and fix max height to be aware of the header.
* Address feedback
* Refactor PostDraft and correctly position Autocomplete
* Set min char for emoji search at 2
* Replace searchCustomEmojis from setTimeout to debounce
* Remove comments
* simplify prop
* Change naming of certain variables
* remove unnecesary fragment
* Improve Autocomplete height calculation
* Address feedback
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Edit Server display name
* Lock iPhone to portrait and iPad to landscape
* Create actions for app global to store device token and multi server tutorial
* Add MutliServer tutorial on first use
* WebSocket reconnection priority
* have isRecordGlobalEqualToRaw to not check for value
* Return early on edit server if error is found
* Prepopulate server screen with last logged out server address and name
* Add CompassIcon to circleCI asset generation
* Adds actions, queries, db models and rest client
* Adds Websocket handling for categories
* fix merge
* small refactor for categories websocket events
* fix bad merge
* Category delete handled
* Handles deletion (prune on store)
* Resolves feedback, adds team handling for prune
* Minor fixes; param order and return, imports, type naming
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Servers logout and websocket state
* addNewServer uility and rename file
* add LaunchType for add new server
* added time to LaunchProps type
* Remove unnecessary props for launchToHome
* Fix local action updateLastPostAt
* Batch fetchProfilesPerChannels requests in chunks of 50
* WS handleUserAddedToChannelEvent to return early if no channelId is set
* WS handleNewPostEvent to batch update last_post_at
* add common actions to sync other servers
* Entry actions to sync other servers data
* Do not attempt to fetch notification data if payload does not contain a channelId
* Set database as default at the end of the login flow
* Handle logout when other servers remain
* Handle Server options
* Show alert when logging out from the account screen
* Add workaround to have Lottie animate the loading component
* Fix badge position in ServerIcon component
* Server screen to support adding new server
* Fix login screen to display error when credentials do not match
* add localization strings
* fix DatabaseProvider to update on server switch
* Fix home icon and server icon subscriptions and badge display
* Add dependencies to onLogout callback
* feedback
* Only updateLastPostAt if needed
* Specify the screen to be dismissed from the bottom sheet on tablets
* reposition unread badge on server icon
* Skip setNavigatorStyles and set correct theme for login flow screens
* Fetch current user status with fetchMe and when the WS connects
* switchToChannel skip setting current channel if id is the same
* ChannelMention component to use switchToChannelById instead of switchToChannel
* loginEntry only set initialChannel if isTablet
* deferredAppEntryActions mark channel as read and fetch channel stats if initialChannel is set
* feedback review
* feedback review
* Fix & small refactor to the app entry logic and WS reconnection
* Remove not needed log in MainActivity
* Replace async forEach with for await
* extract getClient to its own block
* replace double filter with reduce
* fix select channel on WS reconnect and user no longer belongs to current team
* feedback review on WS users actions
* Add windowFocusChanged for Android only
* on WS reconnection set team & channel if not member of current team
* reduce suggestion
* feedback review
* Initial commit post input
* Fix message posting, add create direct channel and minor fixes
* Fix "is typing" and "react to last post" behaviour
* Some reordering, better handling of upload error, properly clear draft on send message, and fix minor progress bar misbehavior
* Add keyboard listener for shift-enter, add selection between video or photo while attaching, add alert when trying to attach more than you are allowed, add paste functionality, minor fixes and reordering
* Add library patch
* Fix lint
* Address feedback
* Address feedback
* Add missing negation
* Check for group name and fix typo on draft comparisons
* Address feedback
* Address feedback
* Address feedback
* Address feedback
* Fix several bugs
* Remove @app imports
* Address feedback
* fix post list & post draft layout on iOS
* Fix post draft cursor position
* Fix file upload route
* Allow to pick multiple images using the image picker
* accurately get the channel member count
* remove android cursor workaround
* Remove local const INPUT_LINE_HEIGHT
* move getPlaceHolder out of the component
* use substring instead of legacy substr for hardward keyboard
* Move onAppStateChange above the effects
* Fix camera action bottom sheet
* no need to memo SendButton
* properly use memberCount in sender handler
* Refactor how to get memberCount
* Fix queryRecentPostsInThread
* Remove unused isDirectChannelVisible && isGroupChannelVisible util functions
* rename errorBadUser to errorUnkownUser
* extract localized strings
* use ClientErrorProps instead of ClientError
* Minor improvements
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* feature edit profile screen
* minor refactoring
* Apply suggestions from code review
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* ts fixes
* revert floatingTextInput label
This reverts commit a778e1f761.
* code clean up
* Apply suggestions from code review
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* code fix
* code fix
* Adding preventDoubleTap
* rename id to fieldKey
* Update edit_profile.tsx
* wip
* navigating through fields; partly done
* navigating through fields - partly done
* navigating through fields; partly done
* completed field navigation
* added theme into dependency array
* code clean up
* revert conditions for disabling fields
* Added colorFilters prop to Loading component
* Completed loading feature on Edit Profile screen
* code clean up
* Add profile_error
* renamed valid_mime_types to valid_image_mime_types
* added props isDisabled to email field
* refactored next field logic
* fix
* fix
* code clean up
* code clean up
* Updated ESLINT hook rules to warning instead of disabled
* code fix
* code fix
* new line within your_profile component
* added memo for Field component
* added canSave to dependency array
* update loading component - color filter
* Update app/screens/edit_profile/edit_profile.tsx
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* dependency fix
* fix to fetch my latest status
* fix to remove unnecessary user id for local action updateLocalUser
* prevents bouncing for iOS
* code revert
* Adding textInputStyle and animatedTextStyle to FloatingTextInput component
* correction after dev session
* adding changes as per new ux
* Update edit_profile.tsx
* corrections after ux review
* ux review
* ux review
* code clean up
* Adding userProfileFields into useMemo
* Add enableSaveButton to dependency of submitUser
* Added react-native-image-picker
* fix picker util
* Added action for setDefaultProfileImage
* account outline on remove picture
* Update edit_profile.tsx
* fix image picker
* style fix
* fix image picker
* removed unused types
* mmjstool issue with integrity checksum
* perform camera permission check for Android
* fix to pull latest status
* updated ChangeProfilePicture to EditProfilePciture
* removed integrity key for mmjstool in package-lock.json
* corrections from pr review
* bumping react-native-image-picker to v4.7.1
* pod install
* update to hooks dependency
* fix profile picture component
* added event emitter from edit_profile_picture
* made hitslop a constant
* code clean up
* uploadProfilePicture as a remote action
* else if profileImage removed
* removed check on isBot
* update renderProfilePicture dependencies
* extractFileInfo with try catch
* updated snappoints
* Revert "updated snappoints"
This reverts commit 6d16d480a1.
* profile picture size
* refactored renderProfilePicture into its own component
* change to if else
* platform select for hasPermissions
* unneeded comment removed
* else if on prefix in edit profile picture
* track has update user info now
* moved image_picker under edit_screen and increased actionSheets item height
* added preventDoubleTap for imagePicker
* multiple uploads
* switch the conditions
* added alert box as requested by Marina
* Revert "added alert box as requested by Marina"
This reverts commit 20735c17a8.
* Apply suggestions from code review
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* removed userInfos constant
* added useMemo for certain components on profile_picture
* converting account-outline into a constant
* added panelItem component
* adding return instead of making the function return
* eslint fix
* update i18n desc
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* hasPictureUrl transferred to file utils
* removing excess mediaType prop
* add USER_PROFILE_PICTURE_SIZE into constant/profile
* relocate hasPictureUrl method
* relocate hasPictureUrl
* rename ImagePicker to ProfileImagePicker
* removing isDestructive property from panelTypes.
* update sectionLimit for attachFileFromPhotoGallery
* Change animation for showModalOverCurrentContext to a quick alpha on iOS
* re-create PickerUtil if intl changes
* Combine styles in edit_profile_picture component
* Split profile image component into smaller components
* useCallback for showFileAttachmentOptions
* split comment into multiple lines
* edit_profile group refs
* remove unnecessary casting
* add new line to file.d.ts
* remove extra space for utils/index.d.ts
* allowMultiSelection for attachFilesFromFiles, default is false
* Split edit profile screen into smaller components
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Handle post related websocket events
* Address feedback and several fixes
* Fix lint
* Address feedback
* LastPostAt as latest post create_at, and lastViewedAt as date.now()
* Address feedback
* Change database for operator and add type imports
* Manage user websocket events
* Revert ChannelMembership -> MyChannelMembership
* Address feedback
* Update channel display name when the user changes
* Minor name and refactoring changes from feedback
* Address feedback
* Address feedback
* Add line breaks for readability
* [Gekidou]: MM-39757 - Recent mentions
* Refactor channel_info to a separate component
* Fixes schema tests
* Fixes channel_info theme color
* Removes RECEIVED_MENTIONS table and model
Removes RECEIVED_MENTIONS table and model and saves recent_mentions in
the SYSTEM table under the recentMentions ID.
* Cleanup recent_mentions handler
* Adds i18n in recent_mentions screen
* Observe changes on the post messages
* Addresses review comments
* Batches records
* Addresses review comments
* Addresses review comments
* Addresses review comments
* Addresses review comments
* Fetches channels and users needed for mentions
Fetching mentions from all teams might result in missing info like user
profiles, and channels missing from the DB.
This commit fetches all missing users and channels.
* Adds empty state for recent mentions
* Prepares all missing models for channels
* Addresses review comments
* Fixes mention keys for recent mentions
User mention keys when asking for mentions should not include general
purpose ones, like @channel, @all, @here.
Fixes ActivityIndicator color in recent mentions screen.
* Removes top margin of mention message
* Addresses review comments
* Fixes group.name undefined
* initial checkin
* all text is added
* add fonts
* wip
* get fonts from differnt site suggestion from matt
* use actual apostrophe
* add react-native-paper dependency
* wip
* add project info for metropolis fonts
* correct the display name help text alignment with stretch
use paper theme to color and make the the placeholder opaque
remove placeholder prop because spec wants the box to be empty on focus
* fix Metropolis font reference
* Add more styling. Clean up code later
* input box text theme color
* separate padding for two textinput boxes
share the input theme
* Use ActivityIndicator from react-native-paper
* wrap formatText components in a view so they scroll up inline with the
text inputs and button
* clean up styles section. no empty lines and no comments
* Use Colors library instead of harcoding #FFFFFF
* Move error message into helper directly under the server url input box
* need to handle the error so it can be presented in the modal
* set state for button is disabled or not
reset errors before every connect attempt
* when url is not valid show the error message and disable the connect
button until some text in display or the url input changes
* s/generic/default/
* group formatted messages together
* Add icon to the error message
fix clipped helper messages
* when urlError is not '', make the input border red
after connecting creates an error, typing in the input boxes will
* enable the connect button
* reset the error messages
* change outline from red to blue
* After connecting and the server url has an error, allow the user to
click the display input and keep the url border red. The only time the
red border and error reset is when the user types in that field again
* remove duplicate button component. only get the prop values and
construct after all values defined
* use correct icon and add spacing between icon and text
* fix styling for Android
New styling from figma
* initial add of background svg. RHS is off a bit
* sync with gekidou changes
* sync with gekidou
* sync with gekidou
* sync with gekidou
* sync with gekidou
* use new FloatingTextInput component
* Added widgets/text_settings
* wip
* wip
* Update index.tsx
* work in progress
* fix text settings component
* fix text settings component
* crash fix
* code clean up
* Update index.tsx
* Fix testSettings
* Wrap with View so the text moves with the text inputs when keyboard
appears
* update styling
when user starts typing in server url after a failed connect, dismiss
the error
* use utils/buttonStyles
* leave as it was to minimize irrelevant PR diffs
* nit
* Align all components
Add vertical margin to styles
Add subcontainer and container props to text_setting component
Use FormattedText for choosing a display name text instead of
text_setting helper text
* revert midnight change
* reset the connecing error when a user starts modifying the server url
* formatting
remove svg
repalce <Text> with <FormattedText>
* fix lint
* remove svg file
* Listening for appearance to set the theme for non connected screens
* Pass the theme as a prop for TextSettings
* Fix Server screen layout and pass the displayName for DB creation
* Tablet layout
* Persist keyboard on tap
* Change position & opacity for app version
* added background SVG
* Fix non theme control screens status bar color
* Split Server screen into smaller components
* fixed svg background layout for tablet
* Bring back form & header and remove some extra background color and styles
* Remove duplicate font reference in Info.plist
* Final UI tweaks
* Fix error display on url field
* margin bottom to app version
* Add ClientError utility to extract error
* update snapshot
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
Co-authored-by: Matthew Birtch <mattbirtch@gmail.com>
* Push notifications entry point
* Process android notification natively only if RN is not initialized
* Database changes to store local channel viewed_at
* EphemeralStore wait until screen removed
* Move schedule session notification to utility
* Fix channel remote & local actions + added actions for markChannelAsViewed & fetchMyChannel
* Add fetchMyTeam remote action
* Add dismissAllModalsAndPopToScreen to navigation
* Improve post list component & add app state to re-trigger queries
* Improve WS implementation
* Handle push notification events
* Fix postsInChannel since handler
* Handle in-app notifications
* Post list to listen to column changes
* Track selected bottom tab in ephemeral store
* add useIsTablet hook
* in-app notifications on tablets
* Started with bottom tabs layout
* code clean up
* Added animation to bottom tab bar
* returns null if not focused
* code clean up
* Updating layout
* Updated modal screen
* Updated animation
* Updated animation
* Fix SafeArea on Home
* A few clean ups
* code clean up
* Fix issue with navigation on Android
* Use React Navigation in combination of RNN & create bottom tab bar
* Set tab bar line separator height to 0.5
* Fix snapshot tests
* Add home tab mention badge
* Apply new themes
* Home Tab badge
* Remove unused constants
Co-authored-by: Avinash Lingaloo <>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Rename groups in channel/team to group channel/team
* Redefine groups schema
* Groups action and operator
* Add group at mentions
* fix uni test
* Update types/database/models/servers/group.d.ts
Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
Co-authored-by: Avinash Lingaloo <avinashlng1080@gmail.com>
* Login entry point
* feedback review
* sort imports
* Fix model relations
* Handle when no current team or current channel has been selected
* Fix MFA unit test
* update prepareCommonSystemValues arguments