* rename CallAgainActionSheet to StartACallActionSheet
* remove useVideoConf and use videoConfJoin directly
* consider phone on calls
* fix text shrink
* fix mic audio
* change the behavior of call icon on header and RoomInfo
* update types
* update types and variables names
* revert old type
* fix issue on old servers
* rename to a correct naming
* fix translation
* revamp call icon
* add error handling to videoconf capabilities
* lint
* fix role logic
* change const name
* rename comp
* remove commented code
* fix types and apply correct logic
* fix naming
* correct the import
* update icon size
* create timer function for videoConf bellow 5.0
* add subscription to useVideoConf hook
---------
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Omnichannel's icon svg fallback when the link returns an error
* add activity indicator
* switch between activity indicator to custom icon
* reuse the same component as const
* [FIX] "Allow Reaction" does not work properly on "Read Only" rooms
* fix the handle of message box
---------
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* fix regression on plain text
* update stories
* fix where to add the color
* fit content taskList
---------
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
* [FIX] Quote rendering with leading empty space on mobile only
* update the message storyshot
* compareServerVersion to connection string
* fix time
* fix lint
* update to servers greater or equal than 6.0
* refactor tests
* minor tweak
---------
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
* Language update from LingoHub 🤖
Project Name: Rocket.Chat.ReactNative
Project Link: https://translate.lingohub.com/rocketchat/dashboard/rocket-dot-chat-dot-reactnative
User: Diego Mello
Easy language translations with LingoHub 🚀
* Add sv and fi
* Add missing locales to util
* Reorder languages
Co-authored-by: Diego Mello <diego.mello@rocket.chat>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* update style to match other spaces
* fix sending the same file in different rooms and add the limit for sending the same file
* remove when error happens and cant finish the upload
* use the same variable as rocket.chat
* minor tweak upload path and removed _raw
* change from 2 to 4
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
Co-authored-by: Reinaldo Neto <47038980+reinaldonetof@users.noreply.github.com>
* [FIX] Cannot read property 'fetch' of undefined on ThreadMessagesView
* added e2e test
* change from _raw to _id
* test thread messages view with a thread created
* reset from room to room
* jump from room to room it's fine
* threads ipad
* fix ts roomslistview
* remove params
* fix the ipad highlight
* jump to a message from a thread to main room
* the reset within the goRoom
* create channel
* changes in canned response
* fix discussion navigation
* navigation newmessageview to users
* fix go room from room info view
* inappnotification, deeplinking, room.js
* change from room.rooms to room.subscribed
* minor tweak jumptomessage
* fix add existing channel to team and fixing test 02 of teams
* keep the same behavior after add existing channel
* keep the same behavior after add existing channel
* clean cosole
* changes requested about the name
* inapp redux to hooks
* added a comment to addexistingchanneltoteam
* minor tweak jumptomessage
* refactor goRoom to add the param popToRoot, also refactor the navigate in deeplinking too
* refactor other places that exist goRoom
* fix the didUpdate
* added in app notification test
* clean js
* minor tweak test
* [FIX] Non primitive dependency on useSubscriptionRoles
* removed sort
* Remove JSON.parse and order by array
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* border radius complete
* increase to chip
* Apply in missing places
* tweak slash command and update test
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [NEW] Emphasis Elements (italic, strike and bold) in Message Parser Components
* update storyshot
* minor tweak and remove of isLink
* Add theme provider to new md stories
* Cleanup
* Update tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVE] Spotlight users order
* minor tweak query
* minor tweak removing query and using regex
* minor tweak
* minor tweak, make ts happy
* fix the ts
* fix lint and type TSearch
* button ignore and pased the param
* load room from database and check is is ignored
* move handleIgnore to lib/method/helpers
* Ignore and Unignore, also reactivity
* block and unblock user
* pass fromRid from actionView to InfoView too
* remove console.log
* unsubscribe subscriptionFrom
* block and unblock user from dm
* test to block user and ignore user
* minor tweak
* tweak data
* minor tweak
* add test before tapBack
* refactor names
* [FIX] Apply thicker border width and remove fixed height on TextInput
* changed the last input border from hairline to 2
* update formtextinput storyshot test
* [FIX] Decrease space between sections on List
* minor tweak listcontainer
* update test
* Small fixes for header/info
* Update tests
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Chore: Hooks app/views/ForgotPasswordView
* validating email and using hook forms
* using mode onCHange
* add return
* fix theme
Co-authored-by: Gleidson Daniel <gleidson10daniel@hotmail.com>
* [IMPROVE] Remove show message in main thread preference
* default settings
* created the get
* fix compare server version
* fix E2E tests
* settings to logged user
* remove constant and get alsosendtochannel from user
* fix send to channel first message
* fix when the alsoSendThreadToChannel is checked
* added list picker user preference
* tweaks in messagebox tmid and detox
* added pt-br and deleted expectToBeVisible id
* reactive alsoSendThreadTOChannel
* fix the behavior when press or long press threads messages
* remove reply in thread from threads
* clean helpers detox
* tweak onMessageLongPress and onSubmit
* Remove unnecessary calculations inside ListPicker
* Fix long press logic
* Fix onReplyInit logic
* fix data_setup at detox for servers greater than 5.0
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Duplicate members in a Room's member's list
* fix search and pagination
* fix the pagination for server lower than 3.16
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* remove navigation obligatory
* remove the obliglatory to use theme with the withTheme HOC
* migrate E2EHowItWorksView to hooks
* remove navigate options
* adds non-null assertion because theme is injected
* create basic useEndpointData for call endpoints using hooks
* remove cache
* create base for useEndpointData test
* create basic useEndpointData for call endpoints using hooks
* remove cache
* create base for useEndpointData test
* fix preset
* update tests
* change order
* create ErrorResult and add error to return
* update tests
* [IMPROVE] Add emoji picker to iOS
* clean left and right buttons
* fix the redux in emojipicker
* fix behavior when emoji keyboard is openning
* added isIOS
* fix show reactions when emoji is open
* minor tweak
* add provider
* fix baseurl
* minor tweak
* create closeEmojiAndAction and added to record
* fix actionsheet for omnichannel
* fix action sheet
* fix close emoji when navigate to other screen
* added iactionsheetprovider to roomview
* clean variables
* fix theme
* close the emojikeyboard when click on message
* apoint package.json to new pr
* fix branch
* fix package.json
* [IMPROVE] Support for tag request close
* clean up
* refactor isObrigatory and value
* fix obligatory
* removed onSubmitEditing
* create closelivechatview
* Refactor Close Omnichannel from ActionSheet to a new Screen
* Fix navigation
* fix screen title
* back to before actionsheetwithinput
* added string in pt-br
* refactor canSubmit
* fix the method closeRoom
* comment of server's version
* some tweaks
* Update app/lib/services/restApi.ts
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* Migrate UIKit/MultiSelect to ActionSheet
* Fix no options initially on CreateDiscussion view
* Change backgroundColor and use colors from useTheme
* Define missing types
* onSearch function for the ActionSheet
* Add onClose function to the ActionSheet and use colors from useTheme
* fix theme and bottomSheet
* fix actionSheet
* fix style
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
* chore: migrate TextInput from class to functional
* changing from themes[theme] to colors
* removing markdown theme props from other files
* adding a force update and fix a stories
* adding testID and tests for markdown
* fixing some interfaces
* minor tweak
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
* chore: migrate TextInput from class to functional
* removing the theme props
* adding tests for the FormTextInput
* minor tweak
* applying changes requested
* changing the way we import/export the FormTextInput and TextInput
* removing left comments
* minor tweak
* fix import
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
* chore: upgrade `react-native-vector-icons` from 8.1.0 to 9.1.0
* all this storyshot added this `selectable: false`
* reversing file committed by mistake
* reverting the `cocoapods` version to the develop version.
* updating some snaps after merge with develop
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* create livechat video conf feature
* add handler to call url
* remove webview and change to openUrl
* Checking settings
* stash
* add action sheet on click init and ad more handlers
* fix logic and call to create a video conf
* change JitsiMeetView from InsideStack to ChatStack to remove modal animation
* fix error logic
* fix stack
* fix comma
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Update ImageViewer to reanimated and RNGH v2 API
* Move styles outside the component
* Fix issues with pinch gesture
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* create iTotp enum
* migrate change user profile to method
* Fix minor i18n issues
* Use saveUserProfileMethod from Services
* Catch cancel event from TwoFactor modal
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* create new delete account button
Co-Authored-By: Danish Ahmed Mirza <danishmirza30602@gmail.com>
* change modal to action sheet
* better naming
* remove ? from translation
* update translations
* change to new figma layout
* fix export
* remove unused state
* add new text input to base input
* clean up
* update bottom sheet and create a mock
* remove unecessary bracket and fix type
* fix header
* migrate buttons to action sheet
* fix imports
* update yarn.lock
* add separator to styles
* add ternary verification
* minor tweaks: keyboard for landscape android tablet, interface IactionSheetProvider and remove navigation options to get ismasterdetail from redux, fix jest setup
* fix colors
* disconnect from sdk when delete the account
* update snapshot
Co-authored-by: Danish Ahmed Mirza <danishmirza30602@gmail.com>
Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
* Chore: Hooks - create custom hook usePermissions
* minor tweak
* Change usage of usePermissiosn on LivechatEditView
* Create getPermissionsSelector
* Simplify selector
* Simplify userRoles
* First render with permissions array length of false
* Move roles state closer to each other
* useSubscription (not working, but looking cool)
* at least it's working now
* working
* cleanup
* solve ts return
* Change it to useSubscriptionRoles only and check for diff on the state
* Remove IAppState
* Minor tweak to work properly useSubscriptionRoles
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [IMPROVE] Option to show mentions badge
* fix the local database and mergeSubscriptions, missing the state in notificationPrefView
* finished the hideMentions
* fix the string version
* [NEW] Go to RoomView if the mentioned #channel is already joined
* Update stories and fix lint errors
* Use getSubscriptionByRoomId
* Fix channel name issue
* Use goRoom
* add jest-expo to jest preset
* update snapshot
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
* Migrate containers/Avatar to hooks
* Migrate to `useSelector` hook and `useRef`
* Change user object prop to primitive type
* fix re-render and update snapshot
* fix lint
* update pods
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
* [FIX] Navigate to MarkdownTableView using tablets
* [FIX] Navigate to MarkdownTableView using tablets
* fix lint
* update yarn.lock
Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
* [FIX] Redirect not logged users to WithoutServersView
* minor tweak
* [FIX] Redirect not logged users to WithoutServersView
* minor tweak
* fix the init
* update yarn.lock
Co-authored-by: Alex Junior <alexalexandrejr@gmail.com>
* changing from `containers/TextInput` to `containers/TexInput/FormTextInput`
* changing from `presentation/TextInput` to `containers/TexInput/index`
* update storybook
* update status view after merge with develop
* removing `app/containers/__snapshots__/TextInput.stories.storyshot` in favor from `app/containers/TextInput/__snapshots`
* move statusview to your specific folder
* create showToast helper
* migrate StatusView to hooks
* fix type
* add peer deep to useEffect
* fix lint
* fix error message
* remove deviceToken from constructor
* remove old patch to verify if is running on shareExtension
* add share extension verification
* Remove imports from `/notifications/` just to test the share extension
* Revert "Remove imports from `/notifications/` just to test the share extension"
This reverts commit b3492abad413a5a8a6cf3cd027e33044c437c627.
* changes from constructor to a plain function
* update pods
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* move auth to handleLocalAuthentication function
* add support to close ScreenLockedView
* create useServer hook
* add check to verify if you have a password before entering the screen
* fix import
* Chore : Clean `Loading` component and migrate to reanimated v2
* Remove theme prop
* Use colors from useTheme and PixelRatio for image
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* using database query instead of Rocketchat search api to get message search results
* getting search data from server then converting it into the format as required for message rendering
* fixing some redundant changes
* remove ts-ignore
* removing redundant statements
* url preview is visible when we see messages in pinned, mentions and starred messages
Co-authored-by: Gerzon Z <gerzonzcanario@gmail.com>
* chore: unsupported system messages
* add: Livechat's ignored system messages
* add: `IGNORED_LIVECHAT_SYSTEM_MESSAGES`
* add: support for Livechat's system messages
* remove: `console.log`
* Chore: Evaluate RoomView - TypeScript
* fix messagebox and list refs
* fix the refs
* refactor other refs
* remove any from privates
* storyshot tweak
* reinstall react native and pods
* anotation of the react native package to the branch fix-ios-connections
* fix makes the correct point to the address of the lib
* [NEW] Implementing On-Hold Livechat for Omnichannel
* added onHold to database
* list header title open livechats
* update rooms list view
* remove placeOnHold after clicked
* fix mesasgebox reactive to on hold
* navigate to roomslistview
* minor tweaks
* for grouping too
* fix chat on-hold when the agent is fully
* show on hold system messages
* [IMPROVE] Visibility of the “incoming chats” in queue
* fix the custom icon for rtl
* fix thumb colors
* clean queue empty
* added alert to confirm enable omnichannel
* switch to normal
* fix storyshot because was added a new props to list item
* fix height container
* minor tweak
* minor tweak
* fix title
* Chore: Migrate i18n to Typescript and fix the Left and Right actions in RoomItem
* remove fix to roomItem
* update storyshot
* Chore: Migrate i18n to Typescript and fix the Left and Right actions in RoomItem
* remove fix to roomItem
* update storyshot
* fix removed itens
* fix changes requested
* interface for i18n, added resolveJsonModule to tsconfig.json
* tweak at error alert
* fix storyshot
* refactor comments
* create function isTranslated
* fix accessibilityLabel
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Chore: Upgrade @types/react-native to 0.64.2
* minor tweak in comment
* minor tweak
* Chore: Upgrade @types/react-native to 0.64.2
* minor tweak in comment
* minor tweak
* fix accessibility within bordelessbutton
* update: type for user
* update: LanguageView's user type
* update: UserNotificationPreferencesView's user
* chore: set `enableMessageParserEarlyAdoption` as non-optional
* change Navigation to appNavigation and move to navigation folder
* change ShareNavigation to shareNavigation and move to navigation folder
* fix navigation import
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* create TSubscription type
* move logoutOtherLocations to restApis
* mvoe getUserInfo to restApi
* move constants to lib folder
* change Rocketchat methods to sdk methods
* move toggleFavorite to restApis
* move functions to rocketchat folder
* delete old rocketchat file :)
* fix imports
* fix lint and return types
* Fix subscribe to rooms not getting called
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* add: @react-native-clipboard/clipboard
* create jest.setup.js file and centralizes all mocks on these folder for jest
Co-authored-by: GleidsonDaniel <gleidson10daniel@hotmail.com>
* Chore: Migrate containers: List to Typescript
* minor tweak
* fix storyshot List - item flatlist
* fix IListContainer
* fix type of childrens
* minor tweak
* [FIX] Display added user to team
* tweak when remove members from team too
* update storyshot
Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
* update: `BackgroundContainer` and `ActivityIndicator`
* update: return type for `RCActivityIndicator`
* update: return type for `BackgroundContainer`
* Chore: Migrate methods/actions to Typescript
* tweak in actions
* Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* refactor sdk.current
* interface and uikit done
* refactor interface, index and utils from UiKit
* minor tweak
* minor tweak
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* [FIX] Mention suggestion concatenate to query string
* Add function to get regexp and its tests in separate files
* Update getRegexp.ts
* Update file names
* Try new regex
* One regex for all mention types
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* Chore: Migrate REST API - createGroupChat to Typescript
* Update app/lib/rocketchat/services/restApi.ts
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* minor tweak
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* Chore: Migrate REST API - addUsersToRoom to Typescript
* Update app/lib/rocketchat/services/restApi.ts
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* minor tweak
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
When a subscription is removed from the server via another client, when the
mobile app is relaunched the subscriptions were not being removed properly.
Changed the logic to use the subscriptionResult.remove array from the server
and the _id property to fix.
Co-authored-by: Christian King <cking@vonix.io>
* chore: updating mmkv library
* feat: updating android ejson to use the getSecureKey new version
* feat: updating IOS files to use the getSecureKey new version
* feat: changing all mmkv methods to use sync calls
* feat: changing mmkv methods from Screen lock
* feat: changing all mmkv methods from login, ssl certificate and change/add server
* feat: changing all mmkv methods from login, ssl certificate and change/add server
* feat: changing all mmkv methods from logout
* feat: changing all mmkv methods from e2e
* fix: small fix at encryption and server drop down
* feat: changing all mmkv methods from set theme
* feat: changing all mmkv methods from openLink
* fix: setting up mmkv to works property on Android
* fix: fix an error to set the theme when open the app
* refactor: change the react-native branch (temporary)
* refactor: removing all `Async` from mmkv functions name
* refactor: removing await from unnecessary functions, removing console.log and update cocoapods
* refactor: removing unnecessary undefined from methods
* feat: creating a custom hook for mmkv
* refactor: changing the fetchPasscode to use the useUserPreferences hook
* refactor: changing setTheme from app/index
* refactor: small fix on setTheme
* chore: update mmkv to 0.6.11
* chore: update mmkv to 0.6.11
* chore: minor tweak
* chore: update mmkv to 0.6.12
* chore: mock NativeModules
* chore: fix test mmkv
* chore: removing custom MMKV JSI module, since is no more necessary after 0.6.11 version
* feat: removing some async calls from mmkv after update from develop
* feat: creating a function to get the initialTheme
* feat: removing unnecessary try/catch
* fix: fixing the blink white when open the app
* feat: changing useMMKVStorage to create from mmkv lib
* test: creating a mock for mmkv create function
* chore: fix errors on tablet
* minor tweak
* chore: implementing type for test api - getDiscussions
* Fix DiscussionDetails count usage
* chore: update getDiscussions to use IMessageFromServer
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Removed account from E2E Data and create a file responsible for this account
* Updated e2e/README.md
* minor tweak
* Update e2e/README.md
Co-authored-by: Gerzon Z. <gerzonzcanario@gmail.com>
Co-authored-by: Gerzon Z. <gerzonzcanario@gmail.com>
* Chore: Migrate ee/omnichannel folder to Typescript
* omnichannelstatus and queue list
* boolean searching and react.ref
* test initi
* test and refactor interfaces
* minor tweak
* minor tweaks
* chore: migrate subscriptions rooms to ts
* chore: adding a TODO to remember this problem
* chore: removing unnecessary todos
* chore: minor tweak after develop updates
* chore: migrate message service to ts
* chore: minor tweaks
* chore: minor tweak
* chore: minor tweak after merge develop into this branch
* chore: minor tweak after merge with dev
* minor tweak
* Chore: Migrate methods/loadSurroundingMessages to Typescript
* tweaks
* tweak
* tweak
* tweaks to make ts happy
* instead as IMessage is optional u
* enum to MessageTypeLoad
* minor tweaks
* migrate REST API `teams.listRoomsOfUser` to TypeScript
* update: `rooms` type on `teams.listRoomsOfUser`
* update: if-conditionals on `RoomActionsView`
* create interface and implements base types
* fix some types
* Update app/lib/methods/updateMessages.ts
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* fix date type
* apply types changes
* fix type
* fix date value
* fix types
* typescript things...
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Differ to Last Session Authenticated
* Added timesync
* [FIX] Differ to Last Session Authenticated
* Added timesync
* timesync tweaks
* refactor diffLastLocalSession and saveLastLocalAuthentication
* did a race
* Update comment in app/utils/localAuthentication.ts
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* refactor getServerTimeSync and when use this route
* tweak
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* chore: start the migration
* chore: update sendFileMessage to ts
* chore: removing an `any` from uploadQueue
* chore: minor tweak
* chore: minor tweak
* chore: minor tweaks after merge with developer
* chore: minor tweak after merge develop into current
* chore: change loadMessagesForRoom to typescript
* minor tweak
* chore: minor tweaks after merge with developer
* chore: minor tweaks after merge with developer
* chore: minor tweak
* chore: minor tweaks
* Fix return
Co-authored-by: Diego Mello <diegolmello@gmail.com>
Co-authored-by: Gleidson Daniel Silva <gleidson10daniel@hotmail.com>
* migrate getSlashCommands to TS
* use sdk and update getSlashCommands
* minor tweak
* Remove implicit anys
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* chore: migrate redux module login to typescript
chore: update redux module login tests
* update workers
* wip
* fix type
* remove partial
* add more status
* migrate the rest of the stuff to typescript
* fix tests and types
* fix types and tests
* chore: migrate redux module room to typescript and remove dispatch on dependencies
* chore: add tests to redux module room
* chore: create ERoomType and use on implemention
* chore: update enum name
* fix test id
* Chore: Migrate Markdown to TS
* Chore: Migrate Markdown to TS
* minor tweak
* added preview where markdown was preview and fixed params within markdown
* removed ts-ignore
* fix lint
* removed numbersofline={0} and default value to numberOfLines=1
* change how to import markdown preview and remove numberOfLines
* using useTheme inside markdownPreview and remove theme from components
* minor tweak on interfaces
* isNewMarkdown return as boolean
* minor tweaks
* minor tweaks
* removed unused component
* fixed markdown stories
* updated snapshot because removed numberOfLines={0} from message/content
* create IEmoji.ts in definitions and refactor all places where getCustomEmoji was called
* onLinkPress typed
* todo: refactor navtoroominfo
* formatText.test.ts
* markdown stories to typescript too
* minor tweak
* IMessage definition
* refactor: update new types and interfaces for use ISubscription
* refactor: update threadItem for use new MarkdownPreview
* refactor: rollback wrong file commited
* formatHyperlink
* fix lint
* updated item story shot
* refactor and refactor some types
* Remove non-null assertion
* Minor change on useRealName
* tweak
Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* [FIX] Search and pagination for omnichannels departments
* pagination complete
* minor tweak
* renamed a param and workaround for a ux bug
* fix style of flatlist and search as header scrollable
* stick the header
* Merge branch 'fix.forward-department-list' of https://github.com/RocketChat/Rocket.Chat.ReactNative into fix.forward-department-list
* refactor pagination
* fix value type
* refactor render search
* refactor layout
* make ts happy
* Initial commit
* add types/bytebuffer, add type definitions to params and update interfaces
* add more types and type assertions
* update types
* change bang operator by type assertion and update class variables definitions
* add types for deferred class
* minor tweaks on types definitions
* add ts-ignore
* Update encryption.ts
* update deferred and encryption
* update encryption.ts
* Update room.ts
* update toDecrypt type
* initialize sessionKeyExportedString
* remove return types
* migrate getRooms to TS
* add sdk and set any types
* Moved the new variable around and added ts-ignore to follow the pattern from /services/restApi.ts
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Fix PK error on subscriptions/room
* Instead of checking for pending update, wrap the call on a try catch and return null in case of error
* Generate delete operations before create/update to prevent errors
* Apply same logic on encryption
* Fix database operations on getRoles
* Fix a few database issues found on Bugsnag on ThreadMessagesView
* Run prettier :(
* [FIX] Regression: Prevent duplicated .jpg on file upload
* refactor to all files typed as image/jpeg
* isolate regexp to function
* refactor forceJpgExtension
* clean
* minor tweak
* [FIX] Regression: Prevent duplicated .jpg on file upload
* refactor to all files typed as image/jpeg
* isolate regexp to function
* refactor forceJpgExtension
* clean
* minor tweak
* refactored comment
* Chore: Migrate LivechatEditView to Typescript
* refactor: minor tweak
* refactor: fix the interfaces for input
* refactor: fix lint erros
* minor tweak with new navigation types
* function
* iroom tweak
* livechateditview tweak
* TextInput tweak
* refactor: update new types and interfaces for use ISubscription
* refactor to default useState type
* change the component name in SearchBox
* changed state type
Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Gerzon Z <gerzonc@icloud.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Chore: Migrate CannedResponsesListView to TS
* Moved IcannedResponse to definitions and fixed the index
* Chore: Migrate CannedResponseDetail to TS
* minor tweaks
* refactor: update new types and interfaces for use ISubscription
* fix lint error and canned responses's dropdown
Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* chore: migrate activeUsers reducer and action to TS
* chore: init types folder and set redux and BaseScreen interface
* chore: remove mapDispatchToProps to use dispatch prop and clear some types
* chore: type selectedUsers action and reducer and improvement in the code of other files
* chore: move IUser to base types
* chore: move state props to ISelectedUsersViewProps
* chore: create mocketStore
* chore: remove applyAppStateMiddleware
* test: create activeUser and selectedUser tests
* test: add more selectedUsers tests
* chore: fix action type
* chore: move types to definition folder and fix imports
* chore: remove unused const
* chore: migrate redux tests to reducer folder and add eslint jest plugin
* chore: exprot initial state and then import on tests
* chore: move interfaces to reducer and import on screen
* chore: set eslint-plugin-jest version to 24.7.0
* chore: fix IUser import
* chore: update interfaces and types names
* chore: update definitions
* chore: update IBaseScreen definitions
* chore: init reducer/app migration to ts
* chore: add tests and migrate RootEnum
* wip: migrate fixed consts to RootEnum
* chore: remove redux action inferences
* fix types
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* chore: migrate createChannel to ts and add tests
* chore: fix naming
* chore: add more types and remove mapDispatchToProps from components
* remove todo
* update tests
* chore: migrate interface to reducer and fix errors on return
* chore: insert IApplicationState to mapStateToProps state type
* Remove spread
* fix type
* fix import and state type
Co-authored-by: Diego Mello <diegolmello@gmail.com>
* Chore: Migrate ModalBlockView to Typescript
* minor tweaks
* update the navigator
Co-authored-by: AlexAlexandre <alexalexandrejr@gmail.com>
Co-authored-by: Diego Mello <diegolmello@gmail.com>
exports[`Storyshots Avatar With E Tag 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/djorkaeff.alexandre?format=png&size=112&etag=5ag8KffJcZj9m5rCv\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots Avatar Without E Tag 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4},null],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":56,\\"height\\":56,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/djorkaeff.alexandre?format=png&size=112\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]}"`;
exports[`Storyshots BackgroundContainer Black Theme Loading 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_black\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"ActivityIndicator\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},\\"color\\":\\"#f9f9f9\\"},\\"children\\":null}]}"`;
exports[`Storyshots BackgroundContainer Black Theme Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_black\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#f9f9f9\\"}]},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}"`;
exports[`Storyshots BackgroundContainer Dark Theme Loading 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_dark\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"ActivityIndicator\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},\\"color\\":\\"#f9f9f9\\"},\\"children\\":null}]}"`;
exports[`Storyshots BackgroundContainer Dark Theme Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_dark\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#f9f9f9\\"}]},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}"`;
exports[`Storyshots BackgroundContainer Long Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_light\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#6C727A\\"}]},\\"children\\":[\\"Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries\\"]}]}"`;
exports[`Storyshots BackgroundContainer Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessibilityIgnoresInvertColors\\":true,\\"style\\":{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\",\\"position\\":\\"absolute\\"}},\\"children\\":[{\\"type\\":\\"Image\\",\\"props\\":{\\"source\\":{\\"uri\\":\\"message_empty_light\\"},\\"style\\":[{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},{\\"width\\":\\"100%\\",\\"height\\":\\"100%\\"},null]},\\"children\\":null}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"position\\":\\"absolute\\",\\"top\\":60,\\"left\\":0,\\"right\\":0,\\"fontSize\\":16,\\"paddingHorizontal\\":24,\\"textAlign\\":\\"center\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#6C727A\\"}]},\\"children\\":[\\"Text here\\"]}]}"`;
exports[`Storyshots Chip Chip With Short Text 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":false},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4},{\\"marginRight\\":8,\\"marginVertical\\":8}],\\"testID\\":\\"avatar\\"},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"overflow\\":\\"hidden\\"},{\\"width\\":28,\\"height\\":28,\\"borderRadius\\":4}]},\\"children\\":[{\\"type\\":\\"FastImageView\\",\\"props\\":{\\"style\\":{\\"position\\":\\"absolute\\",\\"left\\":0,\\"right\\":0,\\"top\\":0,\\"bottom\\":0},\\"source\\":{\\"uri\\":\\"https://open.rocket.chat/avatar/rocket.cat?format=png&size=56\\",\\"headers\\":{\\"User-Agent\\":\\"RC Mobile; ios unknown; vunknown (unknown)\\"},\\"priority\\":\\"high\\"},\\"resizeMode\\":\\"cover\\"},\\"children\\":null}]}]},{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Short\\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":16,\\"color\\":\\"#6C727A\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]}"`;
exports[`Storyshots Chip Chip Without Avatar 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":false},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Without Avatar\\"]}]},{\\"type\\":\\"Text\\",\\"props\\":{\\"selectable\\":false,\\"allowFontScaling\\":false,\\"style\\":[{\\"fontSize\\":16,\\"color\\":\\"#6C727A\\"},null,{\\"fontFamily\\":\\"custom\\",\\"fontWeight\\":\\"normal\\",\\"fontStyle\\":\\"normal\\"},{}]},\\"children\\":[\\"\\"]}]}]}]}"`;
exports[`Storyshots Chip Chip Without Avatar And Icon 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"accessible\\":true,\\"accessibilityState\\":{\\"disabled\\":true},\\"focusable\\":true,\\"style\\":[{\\"paddingHorizontal\\":8,\\"marginRight\\":8,\\"borderRadius\\":4,\\"justifyContent\\":\\"center\\",\\"maxWidth\\":192},{\\"backgroundColor\\":\\"#efeff4\\"},null],\\"collapsable\\":false},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flexDirection\\":\\"row\\",\\"alignItems\\":\\"center\\"}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"marginRight\\":8,\\"maxWidth\\":120}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":16,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#2f343d\\"}],\\"numberOfLines\\":1},\\"children\\":[\\"Without Avatar and Icon\\"]}]}]}]}]}"`;
exports[`Storyshots SwitchItem Switch 1`] = `"{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"alignItems\\":\\"flex-start\\",\\"padding\\":16}},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":[{\\"minHeight\\":54,\\"alignItems\\":\\"center\\",\\"justifyContent\\":\\"space-between\\",\\"flexDirection\\":\\"row\\",\\"maxHeight\\":80,\\"marginBottom\\":12},{\\"backgroundColor\\":\\"#ffffff\\"}]},\\"children\\":[{\\"type\\":\\"View\\",\\"props\\":{\\"style\\":{\\"flex\\":1,\\"marginRight\\":8}},\\"children\\":[{\\"type\\":\\"Text\\",\\"props\\":{\\"style\\":[{\\"fontSize\\":14,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"500\\"},{\\"color\\":\\"#0d0e12\\"}]},\\"children\\":[\\"Welcome to Rocket.Chat\\"]},{\\"type\\":\\"Text\\",\\"props\\":{\\"testID\\":\\"create-channel-switch-id-hint\\",\\"style\\":[{\\"fontSize\\":14,\\"textAlign\\":\\"left\\",\\"backgroundColor\\":\\"transparent\\",\\"fontFamily\\":\\"Inter\\",\\"fontWeight\\":\\"400\\"},{\\"color\\":\\"#9ca2a8\\"}]},\\"children\\":[\\"Only authorized users can write new messages\\"]}]},{\\"type\\":\\"RCTSwitch\\",\\"props\\":{\\"testID\\":\\"create-channel-switch-id\\",\\"disabled\\":false,\\"onTintColor\\":\\"#2de0a5\\",\\"style\\":{\\"height\\":31,\\"width\\":51},\\"tintColor\\":\\"#f5455c\\",\\"value\\":false,\\"accessibilityRole\\":\\"switch\\"},\\"children\\":null}]}]}"`;