* 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
* Squash, rebase, test fixes
* PR Feedback addressed
* fix snapshot tests with SafeAreaProvider
* Addresses feedback
* Adds Category & Channel error
* Tests fixed
* MyChannel count
* finalize DM and GM avatars and icon as well as other small fixes
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* 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>
* Fix post onPress handler to remove a deleted post
* Fix operator handlePost to remove fetched existing deleted posts and filter the ones that do not exist
* 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
* Add Channel Browser screen
* Fix tests
* Fix lint
* Address feedback
* Fix test
* Remove cancel and fix bottom sheet size
* Address feedback
* Address feedback
* Keep loading when not many items are visible.
* Separate search_handler from browse channels
* Search channels directly instead of filtering from the loaded
* Address feeback
* Reduce the size of search_handler.tsx
* Add title and closeButtonId to bottomSheet
* Let the default value be public and set it before the if
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* 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>
* Wip
* update name so it references changing the reaction on a post
* handleAddEmoji -> handleAddCustomEmoji
* add remove reaction logic
* sanitizeReactions
* use skipSync to return early if not deleting any records that are
not in the server db
* return the filtered delete results and have the handler destroy the
records
* fix lint
* use forEach instead of map.
* PR feedback
* PR feedback
* Update app/actions/websocket/reactions.ts
* remove console.log
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