* Group autocomplete -
* Styling fixes
* Loading indicator
* Displays group name and display name
* PR Feedback
* Cleans up styling
* Adds constraints to group searches
* Channel Team before current team
* PR Feedback; displayName > name, model observable
* PR Feedback; rename fetch + model observable
* PR Feedback: return {error}, spelling fix
* PR Feedback: Add forceLogoutIfNecessary to fetch calls
* Remove doubled up logout
* Improve loading display name of direct channels
* Improve team switching
* Improve perceived performance when opening the app with an active session
* Fix upgrade path from v1
* Set moment locale while formatting date
* feedback review
* Add try again functionality to failed posts
* Fix attach files on Android
* feedback review
* Prevent android crash when uploading files for the first time
* Update the timestamp for updateAt when retrying to post
* Add POST TIME TO FAIL
* use function isPostFailed
* CRT fixes for MM-44210 & MM-44156
* Covered other conditions and renamed variables to be consistent
Co-authored-by: Anurag Shivarathri <anurag6713@gmail.com>
* Unify entry functions
* Handle switched to channel on websocket reconnect
* Simplify global threads by moving it to switchByChannelId
* Keep in mind team when changing to global threads view
* Avoid unneeded channel switches on notification entry
* Fix effects on home screen
* Address feedback
Adds pull to refresh functionality in global threads lists, both in all
and unread threads.
Refreshing fetches either all newer threads, or in the case we have no
threads in store, the first page of threads.
* Improvements on channel switch performance
* Revert removal from channel observables
* Fix team switch dependancies
* Fix lint
* Use events to signal channel switch
* Add check for hasMembership
* Address feedback
* add useTeamSwitch hook
* Fix team switch perceived performance on tablets
* align custom status in channel list
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Preparing thread data as well with prepareDeletePost
* observing the post directly to prevent the crash until the data issue is found
* mark as read, delete threeds fix
* Update thread.ts
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
* Add verification for push proxy and related interface
* Fix lint and extract i18n
* Be specific about undefined equalities.
* Fix test
* Address feedback
* Fix long server names styles
* Fix tests and typo
* Fixes
* Updated snapshot
* Excluding current user from getting updated
* Doesn't handle users if it's empty
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>
* Display local results
* Fix queryPreferencesByCategoryAndName to observeWithColumns value
* Find channels (remote)
* ux feedback review
* dev review
* dev review 2
* Fetch deleted channels from other teams
* Add AppsForm and Interactive Dialogs
* Add the missing plumbing for Interactive Dialogs and minor fixes
* Remove widgets subfolder
* Fix paths
* Address feedback
* Address feedback
* i18n extract
* Only set the dialog if we are in the same server
* Global threads
* Added translations
* User avatar stack
* In-Channel experience
* Misc Fixes
* Fixed fetchPostThread & added observer
* using the observable for participants & check fix
* Test case fix
* Fix tablet view thread screen switching
* No back button for tablets
* folders for thread options only if needed
* Using the existing observable
* Users stack refactor fix
* Reusing the user component
* Refactor fix
* Fixes double loaders when empty threads
* Feedback
* Moved some post options to common post options
* Combined follow/unfollow functions
* Feedback fixes
* Addressing Feedback
* Merge fix
* Threads button component moved
* Addressing feedbackk
* Not rendering message when it's empty, removed unwanted Props exports
* Addressing feedbac
* Updated snapshot
* Added emoji to removemarkdown component
* Moved MD rendering into the component
Co-authored-by: Mattermod <mattermod@users.noreply.github.com>
Co-authored-by: koox00 <3829551+koox00@users.noreply.github.com>
* Unreads on top
* Feedback addressed
* WIP: Using a lastUnreadChannelId to maintain an Active State on selected channel
* Pair programming session
* Pair programming #2
* Pair programming #3
* Test fix
* MM-40093: adds remote action to sync threads
Syncing threads fetches all unread threads if there are no threads in
the DB.
If there are threads in the DB it fetches all threads newest than the
newest one we have stored.
Fetching happens in batches of 60 threads at a time.
* Fixes querying for all threads list
* Syncs threads on WS reconnection
* Addresses review comments
* Addresses review comments
* Sets values on my_channel according to CRT
* Team counts with regard to CRT
* Fixes myChannel.is_unread with regard to CRT
* Include DM/GMs for thread counts on demand
* Incorporate thread mention counts in server/channel
* Channel updates in regard to CRT
* Fix add DM screen and some other database related issues
* Minor style fixes
* Handle create DM/GM websocket by using the teammate ids
* Address feedback
* [Gekidou HOTFIX] fixes saving threads in the DB
`loadedInGlobalThreads` cannot be a property of the thread, the DB will
fail with unknown column upon saving.
This commit makes it an argument of handleThreads and
handleThreadInTeam.
Fixes wrong foreignKey in THREAD table associations.
* Fixes errors
* Fixes error
* Fix search bar style
* MM-42983 Align mention badge on channel list item
* MM-42985 polish channel intro UI
* MM-42984 update fonts on 'Show' bottom sheet
* MM-42982 Increase tap area of back button on channel view
* Set StatusBar style based on theme sidebarBg
* Reconnect other WS after 20 seconds insted of 5
* Only fetch missing profiles for DM/GMs
* Database prepare records optimization
* Do not use fallbackUsername for storing GM/DM in the database
* fix filter for fetching missing dm/gm
* remove use of indexOf inside another loop
* remove use of includes inside another loop
* remove use of find inside another loop
* Add missing translations
* disable Flipper on iOS
* Remove Flipper code from AppDelegate
* feedback review
* trim DM display name to make sure is not empty
* fixing missing direct channels display name
* UI/UX feedback
* fix WS channel viewed and mark as unread
* Remove duplicate emojis from reaction bar
* wip checkin
* wip checkin because my system is messed up again
* correct the add user and remove user from channel functions. THe user and channel ids sometimes come from the broudcast field, not the data object
* remove old comments
* remove old comments
* remove old comments
* add back in unarchive handler. handleChannelUpdateEvent will also update the deleteAt value for a channel, but does not get called when unarchive from the channel view, only through the system console.
* nit remove empty line
* wip
* wip
* remove handleChannelConvertedEvent
* remove handleChannelDirectAddedEvent
* wip
* wip
* wip
* Fix websockets events
* Address feedback
* Ensure categories and some refactoring
* Self review fixes
* Fix category creation bug
* Address feedback and minor improvements
* Address feedback
* Fix lint
Co-authored-by: Daniel Espino García <larkox@gmail.com>
* WS Events, Actions, Queries, Thread Follow, Post Query
* i18n changes
* Misc
* Only unread threads are marked as read
* Mark threads from WS even as visible in Global threads
* Merge fixes
* Update thread_post_list.tsx
* Merge fix
* Feedback fix
* Make teamId in handleThreads optional for unfollowed threads
* Removed unwated type and return
* Review changes
* Removing unused model
* Merge fix
* Misc fixes
* Following button query change
* copy directly from v1. will get working and then convert class to functional components
* screen showing up correctly. Need to convert lifestyle methods
* create channel button working
* save before refactor in prep for bringing in edit_channel functionality
* change function naming
* clean up lint
* clean up for PR review
* clean up for PR review
* remove hoardcoded styles
* add edit_channel screen
* add handlePatchChannel
* add custom useFormInput hook. use edit screen for both create and edit screens. edit or create screen mode determined by channel prop passed in as a channel or null
* rename edit_channel to create_or_edit_channel
* displayname, header, and purpose are now an object with value and onChange props, created from the useFormInput hook. Now only need to pass this new FormInput Prop to the edit_channel_info component and deconstruct there to get the onChange and value
* fix some lint errors
* fix some lint errors
* remove empty line
* pass intl into utils validate functions because they are not Hooks. add validation for displayName including translations.
* Move useFormInput hook to its own hooks file and import
* simplify
* remove editing prop. Was used to determine if the right button was enabled. It was always true for edit_channel screen and always false for create channel screen. The enableRightButton prop call back is was also used for the same reason.
* remove channeUrl editing references. This was not implemented on v1
* pass editing prop back into component and add back logic. When editing one field must change. when creating, just need to check that name is provided
* lint fixes
* fix typing issue for channel types
* scrolling ref should be fixed. Linting should pass now
* Linting should pass now
* require id field in partial Channel. fixes tsc
* remove everything related to renaming the channel URL. This has never been requred for mobile
* manage state with useReducer so that all actions/state in one location. This also removes the number of onXXX functions and reduces the number of functions in the component
* reorganize code. useEffects are at top. Move type and interfaces outside of function component
* Fix lint
* nit: invert if statement checking a negative
* use cneterChannelColor. in figma this is center channel text, but I verified theme color by comparing to SSO login text color
* Simple snapshot tests as a start
* Add more tests
* update snapshot
* add snapshot tests. Add tests for button enabling and disabling
* simplify test with destructuring.
* PR feedback. formatting changes. get user and teamid from one call
* remove FormInput hook and use value/setvalue convention for controlled components
* no need to setChannelDisplayName after creating/updating channel
* Just pass the setXXX function. Don't need to create as separate callback
* modify floatingTextInput component to allow placeholder text
* remove InteractionManager. PR nits
* mv EditChannelComponent into create_or_edit screen. Rename component from EditChannelInfo to ChannelInfoForm
* correct import path
* add IntlShape Type to function input. Wrap screen with withServerDatabase, not withIntl
* remove state setting function calls from inside the reducer. move close function outside of the component. remove setRightButton and rightButton and place rightbutton in initial appState
* move editing const after useX oneliners and before useCallback, useEffect, and useReducers
* rightButton
- useMemo to memoize an object with dependencies
- move out of the appState
emitCanSaveChannel
- wrap with useCallback
onCreateChannel
- wrap with useCallback
onUpdateChannel
- wrap with useCallback
useEffect Navigation
- use the callbacks as dependencies in stead of the depencies of those
callbacks.
* wrap all formatted message with useMemo()
wrap all onXXXChangeText with useCallback and add deps
move all oneliner derived constants directly after useState useMemo
* remove useMemo from formatted text
* switchToCHannel is still not working. failing at
const channel: ChannelModel = await member.channel.fetch();
* use prepareMyChannelsForTeam to update db tables for new channel
* add placeholder text color
* Attach open edit channel screen to `Set Header` button in channel intro view
port SectionItem from V1 and us to add a Switch for setting private/public channel
hook up the plus icon in the channel list header to create a channel (temporary fix to allow debugging)
add new queryChannelsInfoById and queryCurrentChannelInfo query functions
update text for create screen text inputs
* Fix styles and fix actions
* Add autocomplete, fix patch, and address design feedback
* Address feedback
* Add margin between icon and label on Make Private
* Address feedback
* Address feedback
* Address feedback and fix channel list not updating when the channel gets created
* Address feedback and directly add the channel to the default category
* Render at-mentions as Members if no channelId is set
* Display autocomplete on iOS
Co-authored-by: Jason Frerich <jason.frerich@mattermost.com>
Co-authored-by: Elias Nahum <nahumhbl@gmail.com>